亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        編譯技術(shù)——SIMPLE語言的語法制導(dǎo)翻譯程序的設(shè)計(jì)

        2009-04-29 07:17:36賈燕梅
        管理觀察 2009年10期
        關(guān)鍵詞:編譯原理解釋

        賈燕梅

        摘 要:近年來,信息技術(shù)的迅猛發(fā)展,對(duì)軟件技術(shù)和軟件工具的需求急劇增加,編譯技術(shù)已大量應(yīng)用于各種各樣軟件工具的研制和開發(fā)中。本課程設(shè)計(jì)從最初語言的定義開始,終結(jié)符號(hào)的說明,到驗(yàn)證詞法分析器、語法分析器功能和語義分析功能的實(shí)現(xiàn),為后續(xù)內(nèi)容中間代碼、目標(biāo)代碼的生成打下更為堅(jiān)實(shí)的理論和實(shí)踐基礎(chǔ)。

        關(guān)鍵詞:編譯原理 編譯程序 解釋 詞法分析器 語法分析器

        一、語言定義

        (一) 字符集的定義:

        1.<字符集>:= <字母> | <數(shù)字> | <單界符>

        2.<字 母> := A | B…….| Z | a | b | ……….| z

        3. <數(shù)字> := 0 | 1 | 2 |……| 9

        4.<單界符> := ' | ( | ) | * | + | , | - | . | / | : | ; | < | = | > | [ | ] _ //15-31

        (二) 單詞集的定義:

        <單詞集>:= <保留字> | <雙界符> | <標(biāo)識(shí)符> | <常數(shù)> | <單界符>

        6.<保留字> := and | array | begin | bool | call | case | char | constant | do | else | end | false | for | if | input | integer | not | of | or | output | read | real | repeat | return |set | then | to | true | until | main | void | while | write//32-64

        7. <雙界符> := <> | <= | >= | := | /* | */ | ..// 1-7

        8.<標(biāo)識(shí)符> := 〈字母〉| 〈標(biāo)識(shí)符〉〈數(shù)字〉| 〈標(biāo)識(shí)符〉〈字母〉

        9.〈常數(shù)〉:= 〈整數(shù)〉|〈布爾常數(shù)〉|〈字符常數(shù)〉|〈常數(shù)標(biāo)識(shí)符〉|〈實(shí)數(shù)〉

        10.<整數(shù)〉:=〈數(shù)字〉|〈整常數(shù)〉〈數(shù)字〉

        (三) 表達(dá)式的定義

        11. <表達(dá)式>:=<算術(shù)表達(dá)式>|<布爾表達(dá)式>|<字符表達(dá)式>

        12.<算術(shù)表達(dá)式>:=<算術(shù)表達(dá)式>+-<項(xiàng)>|+-<項(xiàng)>|<項(xiàng)>

        13. <項(xiàng)>:=<項(xiàng)>* <因子>|<項(xiàng)>/<因子> | <因子>

        14. <因子>:=<算術(shù)量> | (<算術(shù)表達(dá)式>)

        15.<算術(shù)量>:=<整數(shù)標(biāo)識(shí)符>|<實(shí)數(shù)標(biāo)識(shí)符> | <正整數(shù)常數(shù)> | <正實(shí)數(shù)常數(shù)>

        (四) 語句定義

        16. <語句>:=<變量聲明語句>|<函數(shù)聲明語句>|<賦值語句>|<布爾表達(dá)語句>|

        <函數(shù)調(diào)用語句>|<輸入語句>|<輸出語句>|<return語句>|<復(fù)合語句>

        17.<類型>:= integer | char | real | bool

        18. <變量聲明語句>=<類型><賦值表達(dá)式>;|<類型><賦值表達(dá)式>,<賦值表達(dá)式>;

        19. <輸入語句>:=input:<變量表>;

        二、各終結(jié)符說明

        (一)單終結(jié)符

        三、各功能模塊的實(shí)現(xiàn)

        (一)詞法分析器的實(shí)現(xiàn)

        其基本思路是每次從源文件中讀一行放入緩沖區(qū)。再從緩沖區(qū)中每次讀取一個(gè)字符進(jìn)行判斷,為方便判斷,每次多讀一個(gè)字符,根據(jù)不同的字符進(jìn)入不同的處理過程。將識(shí)別出的每一個(gè)單詞(標(biāo)識(shí)符,立即數(shù))都填入符號(hào)表中,并返回符號(hào)表的入口以作為TOKEN的第二個(gè)分量。這樣構(gòu)成的TOKEN的第一個(gè)分量是種別碼,如果是關(guān)鍵字,第二個(gè)分量為空,否則,TOKEN的第二分量為該單詞在符號(hào)表中的入口地址。

        (二)語法分析器的實(shí)現(xiàn)

        本編譯器采用語法語義分析在同一遍中完成。所用中間代碼為四元式序列。語法分析階段采用LL(1)分析法,采用算符優(yōu)先的至頂向下分析法,但是不使用堆棧保存各種狀態(tài),而是設(shè)置一個(gè)字符變量表示當(dāng)前狀態(tài),再根據(jù)所出現(xiàn)的符號(hào),判斷是否規(guī)約和執(zhí)行各種語義動(dòng)作,直到出現(xiàn)終結(jié)狀態(tài)。在識(shí)別出合法的語義后,如果有四元式產(chǎn)生,則寫入中間代碼文件parser.txt中。

        (三)四元式解釋器的實(shí)現(xiàn)

        本編譯器直接將中間代碼四元式解釋執(zhí)行。四元式的結(jié)構(gòu)為:(運(yùn)算符,direction,source1,source2)。

        解釋程序?qū)懺趀xceut.h中,其就為一個(gè)switch語句,根據(jù)不同的四元式操作而執(zhí)行相應(yīng)的操作。源程序的執(zhí)行結(jié)果直接在標(biāo)準(zhǔn)輸出上輸出。解釋程序結(jié)束后,對(duì)資源進(jìn)行回收。

        四、測(cè)試數(shù)據(jù)及結(jié)果

        由于系統(tǒng)龐大,受篇幅的限制,僅選取了比較有代表性的幾個(gè)測(cè)試結(jié)果作為說明。

        輸入源程序所在文件:我們選擇soure.txt內(nèi)容為

        {函數(shù)調(diào)用}

        Procedure add(x,y);

        Begin

        x:=x+y;

        end;

        {主函數(shù)}

        Program exp;

        Var a,b:integer;

        begin

        a:=4*(2-3)/2;{測(cè)試優(yōu)先級(jí)}

        b:=10;

        b:=a+b;

        write(b);{測(cè)試輸出語句}

        if a>b then{測(cè)試if-then-else}

        a:=b;

        else

        b:=a;

        write(b);

        call add(a,b);{調(diào)用函數(shù)}

        write(a);

        While a<b do{測(cè)試while-do}

        a:=b-a*2;

        write(a);

        end.

        開始?xì)g迎界面,輸入1,我們看見符號(hào)表已近生成。當(dāng)然由于屏幕的原因,顯示不全。輸入2, 輸入1, 繼續(xù)執(zhí)行結(jié)果,我們發(fā)現(xiàn)實(shí)現(xiàn)正確的結(jié)果?!?/p>

        參考文獻(xiàn):

        [1] 賀汛.《編譯方法學(xué)習(xí)指導(dǎo)與實(shí)踐》,機(jī)械工業(yè)出版社

        猜你喜歡
        編譯原理解釋
        《編譯原理》教學(xué)方法初探
        基于專業(yè)規(guī)范的編譯原理混合式教學(xué)改革
        軟件學(xué)院編譯原理實(shí)踐課程的教學(xué)探索
        基于MOOC的編譯原理分階段課程教學(xué)研究
        馬克·吐溫的墓中回憶錄:《戲謔人生》
        侵犯商業(yè)秘密罪的無罪辯護(hù)
        人間(2016年30期)2016-12-03 20:42:06
        關(guān)于民事訴訟法司法解釋重點(diǎn)問題的思考
        營(yíng)造興趣啟蒙式學(xué)習(xí)氛圍的編譯原理首課設(shè)計(jì)
        大學(xué)英語閱課教學(xué)中的3+1
        科技視界(2016年24期)2016-10-11 08:36:05
        關(guān)于近地天體撞擊地球原理的猜想
        科技視界(2016年16期)2016-06-29 20:44:35
        国产在线观看一区二区三区av| 91精品视品在线播放| 爆乳日韩尤物无码一区| 成年男女免费视频网站点播| 少妇激情av一区二区三区| 在线观看国产一区二区av| 少妇真人直播免费视频| 亚洲丁香五月天缴情综合| 99国产精品久久久蜜芽| 蜜桃av一区二区三区| 老鲁夜夜老鲁| 国产精品无码av一区二区三区| 中文字幕久久久久人妻无码 | 日本高清人妻一区二区| 伊人情人色综合网站| 国产美女自慰在线观看| 欧美日本道免费二区三区| 日韩视频午夜在线观看| 亚洲爆乳无码精品aaa片蜜桃| 中国丰满熟妇xxxx| 国产在线精品福利大全| 丝袜美腿在线播放一区二区| 大地资源高清在线视频播放| 疯狂做受xxxx高潮欧美日本| 久久青草国产免费观看| 亚洲国产一区二区中文字幕| 国产超碰人人做人人爽av大片| 国产精品熟妇视频国产偷人 | 粉嫩极品国产在线观看免费一区| 丁香六月久久婷婷开心| 91av视频在线| 女同欲望一区二区三区| 亚洲av综合一区二区在线观看| 7777精品伊人久久久大香线蕉| 国产精品欧美视频另类专区| 久久亚洲中文字幕精品二区| 中文无码精品a∨在线观看不卡| 久久精品国产丝袜| 日韩中文字幕一区在线| 隔壁老王国产在线精品| 精品一区二区三区在线观看|