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