編譯原理 course intro

2021-09-08 20:27:39 字數 2451 閱讀 4300

根據上課內容順序寫的部落格,並不是按照書的目錄來的

使用龍書以及編譯程式設計原理(第二版)金成植、金英編著

老師的ppt是英文的,我自己隨便翻的,不一定對

瀏覽課程講什麼

理解為什麼需要學習這門課

思考怎麼學習這門課

程式語言

編譯器和直譯器

編譯相關程式

編譯器的設計和實現

編譯器的功能分解和組織結構

普通的編譯器工作流程

總結介紹為高階程式語言開發編譯器時的一般設計原則、方法和實現技術

理解高階程式語言

提高程式設計能力

應用

將源程式錄入編譯器,編譯器輸出為目標程式,同時輸出錯誤資訊

歷史

類別

抽象級

高階程式語言的定義包括

語法

語義

分析例子

程式 → 宣告 → 賦值宣告 → 表示式

→宣告   → read宣告

→賦值宣告 →表示式

程式語言的實現

翻譯(語言1→語言2)

編譯器

編譯器和直譯器的比較

編譯器和直譯器在工作性質上具有某些共同點,但若從不同角度對比仍有一些差異

共同點:使用了相同的實現技術

使用直譯器的優勢:

編譯器直譯器程式規模

規模較大

規模中小

內部形式

機器**(低階)

資料結構(高階)

執行機構

硬體cpu

軟體系統

執行速度

相對較快

相對較慢

與編譯器相關的三個語言

編譯器的實現

自展

解決

預處理

解決

例子

移植

相同的源語言,不同的目標語言

兩種方法

編譯器功能分解

輸出

演算法

例子

總結

翻譯乙個語句的過程包括

翻譯這個句子到目標語言

編譯器前後端

後端

語法分析 syntax analysis(parsing)

語義分析 semantic analysis

**生成

目標**生成

**優化

目標**優化

舉例說明編譯器如何將c0中的程式轉換成彙編**

語言具體語言

源語言乙個toy程式語言c0

目標語言

組合語言al

c0語言一般定義

語法(程式結構)

語義

動態語義

例子程式

詞法分析

語法分析

語義分析

**生成

編譯原理 編譯原理期末複習1

1,關於文法 乙個文法g可以抽象的分為四元組 vn,vt,p,s vn表示非終結符 vt表示終結符 p表示產生式 s表示開始符 2,老師上課說的編譯原理的階段說的是 詞法分析,語法分析,語義分析,中間 生成,優化,目標 生成 其中語法分析,語義分析,中間 生成稱為語法制導翻譯 語義分析,中間 生成稱...

編譯原理及交叉編譯

編譯原理及交叉編譯 編譯原理 gcc g 在執行編譯的時候,只要分四個階段 1 預處理階段,完成巨集定義和include檔案展開等工作 不生成檔案 預處理器cpp 2 根據編譯引數進行不同程度的優化,編譯成彙編 將預處理後的檔案轉換成組合語言,生成.s的檔案 編譯器egcs 3 用彙編器把彙編 進一...

編譯原理 編譯過程概述

編譯程式即是將高階語言書寫的源程式翻譯成與之等價的目標程式 組合語言或機器語言 其工作可分為六個階段,見下圖 對於編譯的各個階段,邏輯上可以劃分為前端和後端兩部分。前端包括詞法分析到中間 生成中各個階段的工作,後端則是優化及目標 生成的階段。以中間 為分水嶺的原因是把編譯過程分解為與機器有關和無關兩...