程式語言 編譯原理 總結

2021-08-20 17:47:24 字數 1151 閱讀 6737

編譯原理介紹編譯程式構造的原理與方法,了解編譯程式是如何執行。我們將程式用高階語言寫出來通過編譯程式將其翻譯為機器能識別的語言從而執行。我主要學了前七章。編譯原理可由一張圖可以概括。

高階語言如何轉換為機器能識別的機器語言大致要經過五個過程。以下是我個人的理解,有錯誤請見諒。

1.**要起到什麼作用,可以通過分析其成分來得出其作用。於是第一階段就是識別單詞,將單詞分類以便後續處理。但高階語言有多種,每種有其自己的特色,也不盡相同。我覺得這也是文法的由來。文法用來描述語言,但語言的又有區分,從而有文法的分類與不同。最好的是0型文法。但符合這樣文法的語言不多,這也是不同編譯程式產生的原因。有了文法就可以識別單詞是否符合該文法。理解編譯程式如何執行就可通過語法分析樹。

2.詞法分析是將句子裡的單詞識別並判斷其組合是否符合文法結構。主要介紹了詞法分析器的設計,介紹了正規式與正規文法,有限狀態自動機,有限狀態自動機之間的轉換,正規文法與有限狀態自動機之間的轉換。

3.語法分析是將有詞法分析傳遞過來的結果進行處理分析,判斷是否符合語法要求。分為自上而下分析與自下而上分析,自上而下分析主要講了ll(1)分析法。運用消除左遞迴,first集,follow集,**分析表。自下而上分析講了兩種方法——算符優先與lr分析法。算符優先介紹了算符優先文法,及其判定,演算法優先表。lr分析法介紹lr(0)專案族集,與分析表的構造。slr分析表與lr(1)分析表。

4.當句子符合語法後,還要判斷其語義問題。包含屬性文法與語法制導翻譯,綜合屬性,繼承屬性,s-屬性文法及計算,l-文法及翻譯,依賴圖,遍歷。

5.符合語義後即可產生中間**,中間**的表示,逆波蘭式,圖表示法,三位址**。運用這些對賦值,控制,說明,布林表示式••••••語句進行翻譯,主要是運用四元式,涉及回填。

編譯原理的學習已經告一段落。感覺自己學的挺不錯的,但考試結果卻不盡人意,感覺自己平時下的功夫還不到,有些地方學的不盡人意,在考試中就體現出來;有些地方就經得起考驗。自己理解的還是不深刻,課後題在學習完後,做完,那時候的對知識的印象還深刻,題目可以輕鬆做出。再後來沒有及時複習以前的知識,做過的題目感覺像沒見過的新題,有的題目則不是。還是在前期對知識的理解不夠。應該多花功夫,對將來也有好處。老師說將它的**寫出來,能加深對編譯原理的理解,這對我們來說也是乙個能拿得出手的專案。

編譯原理 總結

一 編譯程式 1 編譯器是一種翻譯程式,它用於將源語言 即用某種程式語言寫成的 程式翻譯為目標語言 即用二進位制數表示的偽機器 寫成的 程式。後者在windows作業系統平台下,其檔案的副檔名通常為.obj。該檔案通常還要經過進一步的連線,生成可執行檔案 機器 寫成的程式,擴充套件名為.exe 通常...

編譯原理總結

從左至右掃瞄字串行,識別出單詞 關鍵字 標示符 常數 特殊符號 按照語言語法的規則,將詞法分析所得的單詞分解為各個語法成分。分析單詞串是否構成短語和句子 源程式進行上下文有關性質的檢查,看源程式有無語義錯誤。例如 變數是否定義 型別是否正確 含義明確 便於處理的記號系統。這種記號系統於源程式和機器語...

編譯原理 總結

一 編譯程式 1 編譯器是一種翻譯程式,它用於將源語言 即用某種程式語言寫成的 程式翻譯為目標語言 即用二進位制數表示的偽機器 寫成的 程式。後者在windows作業系統平台下,其檔案的副檔名通常為.obj。該檔案通常還要經過進一步的連線,生成可執行檔案 機器 寫成的程式,擴充套件名為.exe 通常...