編譯原理是計算機
專業的一門重要專業課,介紹編譯程式構造的一般原理和基本方法。編譯程式是把高階語言寫成的源程式經過翻譯轉化成面向機器的**,編譯程式的工作主要分為五個階段,包括詞法分析、語法分析、語義分析和中間**生成、**優化和目標**生成。
詞法分析的主要任務是輸入源程式,對構成源程式的字串進行掃瞄和分解,識別出乙個個基本字、識別符號、算符和界符等單詞符號。詞法分析遵循詞法規則,詞法規則由正規式和有限自動機描述。語法分析主要任務是在詞法分析的基礎上,根據語言的語法規則,把單詞符號串分解成短語、句子、控制代碼等語法單位,確定輸入串是否能構成語法上正確的程式,通常遵循上下文無關文法作為語法規則。語義分析與中間**產生的主要任務是對語法分析所識別的各種語法範疇,分析其含義,並進行初步翻譯,通常包括兩方面工作即對每種語法範疇進行靜態語義檢查和中間**的翻譯,遵循屬性文法描述的語義規則。從這一階段開始真正涉及到翻譯。將字串生成為三位址碼、三元式、四元式等中間**。優化階段的主要任務是對前面生成的中間**依據程式的等價變換規則進行加工變換,以便下一階段生成更為高效的目標**,包括公共子表示式的提取、迴圈優化、刪除無用**。目標**生成階段主要是把中間**變換成特定機器上的低階語言**。
編譯程式的處理雖然只分五個階段,但是每個階段的內容都很多,理解起來也有一定難度。編譯原理的理論性比較強,概念比較多,而且各部分聯絡比較緊密,比如說第二章語法描述那提出的短語句子等概念在後面詞法分析語法分析等部分也都有使用。在詞法分析部分的正規式與有限自動機的轉換、語法分析部分的ll(1)文法、算符優先演算法和lr(0)演算法都步驟都比較多,而且有的演算法步驟還比較相似,理解不好就容易混淆。語法分析的翻譯部分尤其難懂,不管學習的時候還是做題的時候都感覺不是那麼通透,學起來感覺很費勁。每一章單獨學起來的時候感覺還好,但是最後總體在一起複習的時候就感覺很吃力,總是有似懂非懂的感覺,而且編譯原理不像別的學科學會一道例題相關的題就都會做了,雖然上課跟著老師學的時候會做,但是自己碰到題目做起來就不那麼順暢了,而且很容易忘。通過複習的時候也發現了自己前期對於這門課的學習沒有給與充足的時間,所以自己複習的時候進度很慢,理解起來很費勁,而且效率和質量也不高,有對於這個課程應該在課下多花時間自己學一學的,如果說當時學習的時候能自己把**實現出來,對這些內容的理解應該會比現在好很多。
編譯原理課程總結
首先我對次次考試做乙個總結,這次的試題對於我而言有些偏難,第一在於題量有點多,而且我也問了幾個同學,能夠做完的不多。第二就是難度有點高。舉個例子而言,我會求乙個式子的逆波蘭式,也會有乙個式子的規範規約,但是把他倆一結合就懵了。還有就是最後的那個大題,原本以為它會出乙個slr演算法的題目,沒想到出的簡...
編譯原理課程總結
經過一學期的學習,對於編譯原理也算是有了深入的了解。其實經過三年的對程式設計的學習,對編譯原理也不算是太陌生,大體還是有個了解的,但是其操作原理是什麼,用了什麼技術對程式進行識別和處理,是沒有接觸過的。學習完編譯原理,知道了從詞法分析到語法分析到中間 的處理和優化再到目標 的生成,當然其中還有很多技...
編譯原理課程總結
編譯原理是計算機 專業的一門重要專業課,介紹編譯程式構造的一般原理和基本方法。編譯程式是把高階語言寫成的源程式經過翻譯轉化成面向機器的 編譯程式的工作主要分為五個階段,包括詞法分析 語法分析 語義分析和 中間 生成 優化和目標 生成。1.主要學習了編譯程式的定義 過程和結構。編譯程式由詞法分析器 語...