摘要:不少考生在備考2022下半年軟件設計師考試,希賽小編為大家整理了2022下半年軟件設計師知識點:編譯與解釋,希望對大家備考有幫助。
為幫助考生備考軟考軟件設計師考試,希賽小編為大家整理了2022下半年軟件設計師知識點:編譯與解釋,相信對大家備考會有幫助。
編譯與解釋(★★★)
【考法分析】
1、本知識點的考查形式主要有:給出編譯與解釋相關的描述,判斷正誤;給出編譯各個階段的描述,判斷正誤。
【要點分析】
1、解釋程序,也稱解釋器;直接解釋執(zhí)行源程序,或者將源程序翻譯成某種中間代碼后再加以執(zhí)行。
2、編譯程序,也稱編譯器;將源程序翻譯成目標語言程序,然后再計算機上運行目標程序。
3、兩者的根本區(qū)別:編譯方式下,機器上運行的是與源程序等價的目標程序,源程序和編譯程序都不再參與目標程序的執(zhí)行過程,因此執(zhí)行時效率較高;解釋方式下,解釋程序和源程序(或某種等價表示)要參與到程序的運行過程中,運行程序的控制權在解釋程序,邊解釋邊執(zhí)行,執(zhí)行效率較低。即:解釋方式,翻譯程序不生成獨立的目標程序,而編譯方式則生成獨立保持的目標程序。
4、編譯過程:
(1)詞法分析階段:是編譯過程的第一階段,其任務是對源程序從前到后(從左到右)逐個字符掃描,從中識別出一個個“單詞”符號。詞法分析過程的依據(jù)是語言的詞法規(guī)則,即描述“單詞”結構的規(guī)則。
詞法錯誤:非法字符,關鍵字或標識符拼寫錯誤。
(2)語法分析階段:其任務是在詞法分析的基礎上,根據(jù)語言的語法規(guī)則將單詞符號序列分解成各類語法單位。通常語法分析是確定整個輸入串是否構成一個語法上正確的程序。一般來說,通過編譯的程序,不存在語法上的錯誤。
語法錯誤:語法結構出錯,if endif不匹配,缺分號。
(3)語義分析階段:其任務主要檢查源程序是否包含靜態(tài)語義錯誤(動態(tài)語義錯誤在執(zhí)行過程中才能發(fā)現(xiàn)),并收集類型信息供后面的代碼生成階段使用。語義分析的一個主要工作是進行類型分析和檢查。
語義錯誤:死循環(huán),零除數(shù),其它邏輯錯誤。
(4)中間代碼生成:其任務是根據(jù)語義分析的輸出生成中間代碼。此階段不是必須的。常見的中間代碼有:樹、后綴式、三地址碼(四元式)。
(5)代碼優(yōu)化:其任務是優(yōu)化中間代碼。此階段不是必須的。
(6)目標代碼生成:是編譯器工作的最后一個階段。其任務是把中間代碼變換成特定機器上的絕對指令代碼、可重定位的指令代碼或匯編指令代碼。本階段與具體機器密切相關。
(7)符號表的作用是記錄源程序中各個符號的必要信息,以輔助語義的正確性檢查和代碼生成,在編譯過程中需要對符號表進行快速有效地查找、插入、修改和刪除等操作。符號表的存在可以貫穿編譯所有階段。
【備考點撥】
1、掌握編譯與解釋的區(qū)別;
2、掌握編譯器的工作過程。
軟考備考資料免費領取
去領取