編譯原理

編譯方式:將高級(jí)語言轉(zhuǎn)換成機(jī)器語言,再執(zhí)行
解釋方式:直接執(zhí)行,不產(chǎn)生中間語言(機(jī)器語言)

0型文法:對(duì)左部和右部沒有任何限制
1型文法(上下文有關(guān)文法):一個(gè)單詞是否可以出現(xiàn)在特定位置上要依賴于上下文
2型文法(上下文無關(guān)文法):左部是單個(gè)非終結(jié)符,右部是終結(jié)符和非終結(jié)符組成的符號(hào)串
3型文法(右線性文法/正規(guī)文法):對(duì)2型文法進(jìn)一步的限制,右部只能是單一終結(jié)符或單一終結(jié)符跟著一個(gè)單一非終結(jié)符

自上而下分析方法:從文法的識(shí)別符出發(fā),看能否推導(dǎo)出待檢查的符號(hào)串,若能,則說明該符號(hào)串是一個(gè)句子。
自下而上分析方法:從待檢查的符號(hào)串出發(fā),看最終能否歸約到文法的識(shí)別符號(hào)。

LL(k)是一種自上而下的語法分析方法,從文法出發(fā),生成句子的最左推導(dǎo)。從左向右,每次向前查看k個(gè)字符。
自下而上分析方法是一種“移進(jìn)-歸約”方法LR(k)。按從左至右掃描輸入串,并自下而上的歸約。至多查看k個(gè)輸入,判斷是移進(jìn)還是歸約。若是歸約,則能唯一地選中一個(gè)產(chǎn)生式去歸約已經(jīng)識(shí)別出的句柄。
比較:

  1. 復(fù)雜度
    LL更簡潔
  2. 普適性
    LR文法能夠支持更多上下文無關(guān)文法(LL文法需要消除左遞歸)
  3. 錯(cuò)誤恢復(fù)
    LL語法分析器有更好的上下文信息,更容易恢復(fù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 一、緒論 編譯程序 功能:高級(jí)pro轉(zhuǎn)低級(jí)目標(biāo)pro 形式編譯執(zhí)行轉(zhuǎn)obj在執(zhí)行,效率高跨平臺(tái)性差解釋執(zhí)行逐行解釋...
    rh_Jameson閱讀 3,628評(píng)論 0 10
  • P11.翻譯程序翻譯程序指的是這樣一個(gè)程序,它能夠把某一種語言程序(源語言程序)改造成另一種語言程序(目標(biāo)語言程序...
    wangchuang2017閱讀 1,415評(píng)論 0 0
  • 遞歸 - 詞法分析與語法分析的分界 一般來說,決定詞法分析和語法分析的界限是是否需要遞歸。詞法分析是將輸入的符號(hào)流...
    Jtag特工閱讀 3,176評(píng)論 1 11
  • ·1#第一章 編譯程序概論 學(xué)習(xí)目標(biāo) 編譯的各個(gè)階段 編譯程序的概念 解釋器,編譯程序的結(jié)構(gòu)和組合 編譯程序的概念...
    曾雁閱讀 943評(píng)論 0 4
  • 文|悶宋 將身邊所有“不需要、不適合、不舒服”的東西替換為“需要、適合、舒服”的東西,就能讓環(huán)境變得清爽,也會(huì)由此...
    悶宋FIT閱讀 1,028評(píng)論 0 7