【編譯原理】簡要說明一下下列每個程序的主要任務是什麼?

詞法分析程序

1.完成詞法分析任務的程序稱爲詞法分析程序或詞法分析器或掃描器。

2.從左至右地對源程序進行掃描,按照語言的詞法規則識別空格和保留字和標識符,併產生相應單詞的屬性字。

語法分析程序

是在詞法分析的基礎上將單詞序列組合成各類語法短語,如“程序”,“語句”,“表達式”等等.語法分析程序判斷源程序在結構上是否正確.源程序的結構由上下文無關文法描述.

語義分析程序

語義分析是編譯過程的一個邏輯階段. 語義分析的任務是對結構上正確的源程序進行上下文有關性質的審查, 進行類型審查.語義分析將審查類型並報告錯誤:不能在表達式中使用一個數組變量,賦值語句的右端和左端的類型不匹配.

中間代碼生成程序

在進行了語法和語義的分析工作之後,編譯程序將源程序變成了一種內部表示形式,這種內部表示形式叫做中間語言或中間代碼。

代碼優化程序

這個階段是對前階段的中間代碼進行變換或改造,目的是使生成的目標代碼更爲高效,即節省時間和空間。

目標代碼生成程序

也就是把優化後的中間代碼變換成指令代碼或彙編代碼。

符號表管理程序

1.收集符號屬性
2.上下文語義的合法性檢查的依據
3.作爲目標代碼生成階段地址分配的依據


詞法分析:也就是從左到右一個一個的讀入源程序,識別一個單詞或符號,並進行歸類。

語法分析: 在詞法分析的基礎上,將單詞序列分解成各類語法短語,如“程序”,“語句”,“表達式”等。

語義分析:審查源程序是否有語義的錯誤,當不符合語言規範的時候,程序就會報錯。

中間代碼生成:在進行了語法和語義的分析工作之後,編譯程序將源程序變成了一種內部表示形式,這種內部表示形式叫做中間語言或中間代碼。

代碼優化:這個階段是對前階段的中間代碼進行變換或改造,目的是使生成的目標代碼更爲高效,即節省時間和空間。

目標代碼生成:也就是把優化後的中間代碼變換成指令代碼或彙編代碼。

學如逆水行舟,不進則退
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章