编译原理中词法分析的递归下降分析法实例--能被5整除的二进制数---c语言实现
一.前言
又到了一周一度的編譯原理實驗課,一次實驗課上完了,又是大學生必備技能—寫實驗報告。行了,廢話不多說,我直接展現,如何實現編譯原理中詞法分析的遞歸下降分析法實例–能被5整除的二進制數的思路。作為信奉“less is more”的人來說,說明能簡單就簡單啦!!大家湊合著看看。
二.實驗要求/題目說明
一、授課內容:
(一) 授課科目:編譯原理
(二) 授課內容:實驗二 遞歸下降分析程序設計
(三) 授課類型:實 驗
二、教學目的要求:
1.目的:通過設計、編制、調試一個典型的語法分析程序,實現對詞法分析程序所提供的單詞序列進行語法檢查和結構分析,進一步掌握常用的語法分析方法。
2.要求:
(1) 選擇最有代表性的語法分析方法,算符優先法、遞歸子程序法和狀態矩陣法之一進行實驗。
(2) 選擇對各種常見的程序語言都通用的語法結構,如賦值語句(尤其指表達式)作為分析對象,并且與所選語法分析方法要比較貼切。
三、教學設想:
1.教學方法設想:先以例子講解,然后學生動手實驗,實驗為主。
2.教具運用設想:多媒體。
四、教學過程:
題目
編寫一個遞歸下降子程序,實現能被5整除的二進制數的判斷。若能整除則輸出yes,否則輸出no。 試采用具有遞歸功能的高級語言編制遞歸下降法的語法分析程序。分析過程不嵌入任何語義動作。
三.理論分析
為了省事,我直接附圖。展現DFA和文法。((> <)有點小糊,大家湊合著看吧)
四.用代碼實現
功能列表:
(1)輸入二進制數,能判斷是或否二進制數。是,輸出YES; 否,輸出NO。
(2)當輸入不是0或1或#結束標志位的話,報錯,并表明出錯位置,由于哪一個字符產生的錯誤。
(3)#結束程序
效果圖:
代碼:
總結
以上是生活随笔為你收集整理的编译原理中词法分析的递归下降分析法实例--能被5整除的二进制数---c语言实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【python】self cls
- 下一篇: 形态形成场(矩阵乘法优化dp)