free Grammar的編譯器設(shè)計(jì)和實(shí)現(xiàn)
本文關(guān)鍵詞:編譯器設(shè)計(jì),由筆耕文化傳播整理發(fā)布。
(注:可以下載本文的PDF版,我也上傳到了百度文庫,大家可以自己找一下。)
Context-free Grammar的編譯器設(shè)計(jì)和實(shí)現(xiàn)
摘要
本文要做的工作如下:
l 手動(dòng)寫Expression Grammar的詞法分析器、語法分析器和語義分析器。
l 設(shè)計(jì)Context-free Grammar的文法,制作能夠生成編譯器代碼的編譯器(即CGCompiler)。
l 用CGCompiler自動(dòng)生成Expression Grammar的詞法分析器代碼和語法分析器代碼。
1 引言 1.1 編譯器的工作流程編譯器的工作流程可以用圖 1.1表示。有人說這只是編譯器前端,后端還有生成中間結(jié)果、代碼優(yōu)化等等內(nèi)容。我認(rèn)為這些都是對(duì)語義分析的延續(xù),本文重點(diǎn)在于詞法分析和語法分析,語義分析部分雖然也有涉及,但并非重點(diǎn),請(qǐng)勿計(jì)較太多。
圖 1.1編譯器工作流程
Context-free Grammar即上下文無關(guān)文法,文法是用來描述編程語言的結(jié)構(gòu)的。有了文法,就可以制作對(duì)應(yīng)的編譯器。大部分編程語言都是用上下文無關(guān)文法描述的。
1.2 加減乘除表達(dá)式的文法舉個(gè)加減乘除運(yùn)算表達(dá)式(Expression Grammar)的文法的例子,如代碼段 1.1所示。
<Expression> ::= <Multiply>
本文關(guān)鍵詞:編譯器設(shè)計(jì),由筆耕文化傳播整理發(fā)布。
,本文編號(hào):45416
本文鏈接:http://sikaile.net/wenshubaike/mishujinen/45416.html