• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 70, 文章 - 0, 評論 - 9, 引用 - 0
            數(shù)據(jù)加載中……

            [轉(zhuǎn)載]編譯原理之詞法分析、語法分析

            詞法分析(Lexical analysis或Scanning)和詞法分析程序(Lexical analyzer或Scanner) 
              詞法分析階段是編譯過程的第一個階段。這個階段的任務(wù)是從左到右一個字符一個字符地讀入源程序,即對構(gòu)成源程序的字符流進(jìn)行掃描然后根據(jù)構(gòu)詞規(guī)則識別單詞(也稱單詞符號或符號)。詞法分析程序?qū)崿F(xiàn)這個任務(wù)。詞法分析程序可以使用lex等工具自動生成。

            語法分析(Syntax analysis或Parsing)和語法分析程序(Parser) 
              語法分析是編譯過程的一個邏輯階段。語法分析的任務(wù)是在詞法分析的基礎(chǔ)上將單詞序列組合成各類語法短語,如“程序”,“語句”,“表達(dá)式”等等.語法分析程序判斷源程序在結(jié)構(gòu)上是否正確.源程序的結(jié)構(gòu)由上下文無關(guān)文法描述.

            語義分析(Syntax analysis) 
              語義分析是編譯過程的一個邏輯階段. 語義分析的任務(wù)是對結(jié)構(gòu)上正確的源程序進(jìn)行上下文有關(guān)性質(zhì)的審查, 進(jìn)行類型審查.例如一個C程序片斷:
              int arr[2],b;
              b = arr * 10; 
              源程序的結(jié)構(gòu)是正確的. 
              語義分析將審查類型并報告錯誤:不能在表達(dá)式中使用一個數(shù)組變量,賦值語句的右端和左端的類型不匹配.

            Lex 
              一個詞法分析程序的自動生成工具。它輸入描述構(gòu)詞規(guī)則的一系列正規(guī)式,然后構(gòu)建有窮自動機(jī)和這個有窮自動機(jī)的一個驅(qū)動程序,進(jìn)而生成一個詞法分析程序.

            Yacc 
              一個語法分析程序的自動生成工具。它接受語言的文法,構(gòu)造一個LALR(1)分析程序.因為它采用語法制導(dǎo)翻譯的思想,還可以接受用C語言描述的語義動作,從而構(gòu)造一個編譯程序. Yacc 是 Yet another compiler compiler的縮寫.

            源語言(Source language)和源程序(Source program) 
              被編譯程序翻譯的程序稱為源程序,書寫該程序的語言稱為源語言.

            目標(biāo)語言(Object language or Target language)和目標(biāo)程序(Object program or Target program) 
              編譯程序翻譯源程序而得到的結(jié)果程序稱為目標(biāo)程序, 書寫該程序的語言稱為目標(biāo)語言.

            中間語言(中間表示)(Intermediate language(representation)) 
              在進(jìn)行了語法分析和語義分析階段的工作之后,有的編譯程序?qū)⒃闯绦蜃兂梢环N內(nèi)部表示形式,這種內(nèi)部表示形式叫做中間語言或中間表示或中間代碼。所謂“中間代碼”是一種結(jié)構(gòu)簡單、含義明確的記號系統(tǒng),這種記號系統(tǒng)復(fù)雜性介于源程序語言和機(jī)器語言之間,容易將它翻譯成目標(biāo)代碼。另外,還可以在中間代碼一級進(jìn)行與機(jī)器無關(guān)的優(yōu)化。

             

            文法(Grammars) 
              文法是用于描述語言的語法結(jié)構(gòu)的形式規(guī)則。文法G定義為四元組(,,,)。其中為非終結(jié)符號(或語法實體,或變量)集;為終結(jié)符號集;為產(chǎn)生式(也稱規(guī)則)的集合;產(chǎn)生式(規(guī)則)是形如或 a ::=b 的(a , b)有序?qū)?其中(∪)且至少含有一個非終結(jié)符,而(∪)。,和是非空有窮集。稱作識別符號或開始符號,它是一個非終結(jié)符,至少要在一條規(guī)則中作為左部出現(xiàn)。 
              一個文法的例子: G=(={A,R},={0,1} ,={A?0R,A?01,R?A1},=A) 
            文法分類(A hierarchy of Grammars) 
              著名語言學(xué)家Noam Chomsky定義了四類文法和四種形式語言類,文法的四種類型分別是0型、1型、2型和3型。幾類文法的差別在于對產(chǎn)生式施加不同的限制,分別是: 
              0型文法(短語結(jié)構(gòu)文法)(phrase structure grammars): 
              設(shè)G=(,,,),如果它的每個產(chǎn)生式是這樣一種結(jié)構(gòu): (∪)  且至少含有一個非終結(jié)符,而(∪),則G是一個0型文法。 
              1型文法(上下文有關(guān)文法)(context-sensitive grammars): 
              設(shè)G=(,,,)為一文法,若中的每一個產(chǎn)生式均滿足|,僅僅  除外,則文法G是1型或上下文有關(guān)的。 
              2型文法(上下文無關(guān)文法)(context-free grammars): 
              設(shè)G=(,,,),若P中的每一個產(chǎn)生式滿足:是一非終結(jié)符,(∪)  則此文法稱為2型的或上下文無關(guān)的。 
              3型文法(正規(guī)文法)(regular grammars): 
              設(shè)G=(,,,),若中的每一個產(chǎn)生式的形式都是A→aB或A→a,其中A和B都是非終結(jié),a是終結(jié)符,則G是3型文法或正規(guī)文法。 
              0型文法產(chǎn)生的語言稱為0型語言。 
              1型文法產(chǎn)生的語言稱為1型語言,也稱作上下文有關(guān)語言。 
              2型文法產(chǎn)生的語言稱為2型語言,也稱作上下文無關(guān)語言。 
              3型文法產(chǎn)生的語言稱為3型語言,也稱作正規(guī)語言。



            原文地址:http://leowzy.iteye.com/blog/800466

            posted on 2013-04-01 19:25 seahouse 閱讀(832) 評論(0)  編輯 收藏 引用 所屬分類: 編譯

            久久99精品久久久久久hb无码 | 国产精品免费久久久久久久久 | 久久久久香蕉视频| 三上悠亚久久精品| 2021国内久久精品| 亚洲国产精品久久久久婷婷软件| 18禁黄久久久AAA片| 久久精品国产一区| 国产成人精品免费久久久久| 久久天天躁夜夜躁狠狠| 人妻精品久久无码区| 国产色综合久久无码有码| 狠狠色噜噜色狠狠狠综合久久| 日日狠狠久久偷偷色综合96蜜桃| 亚洲日韩欧美一区久久久久我| 久久精品国产亚洲αv忘忧草| 久久亚洲AV成人出白浆无码国产| 国产高潮国产高潮久久久91| 2021国产精品久久精品| 久久99精品免费一区二区| 7777久久亚洲中文字幕| 国产精品久久久久久福利69堂| 久久婷婷五月综合97色| av午夜福利一片免费看久久| 精品国产乱码久久久久久郑州公司| 亚洲av日韩精品久久久久久a| 日产精品久久久久久久性色| 久久久久久久人妻无码中文字幕爆| 中文字幕亚洲综合久久菠萝蜜| 大香伊人久久精品一区二区| 久久久久久久久久久久中文字幕| 91精品国产高清91久久久久久| 久久综合视频网站| 亚洲精品无码久久久久久| 大伊人青草狠狠久久| 亚洲美日韩Av中文字幕无码久久久妻妇 | 国产精品禁18久久久夂久| 久久精品国产亚洲AV影院| 国内精品人妻无码久久久影院| 久久一区二区三区免费| 老司机国内精品久久久久|