編譯原理課程概述

2021-10-04 19:26:36 字數 467 閱讀 6306

編譯程式種類

編譯與解釋

編譯的五個階段

以上三個階段稱為編譯前端(包括優化中與目標機器無關的部分)

絕對指令**,可直接執行(機器語言)

可重新定位指令**:需要連線裝配(機器語言)

彙編指令**:需要進行彙編(組合語言)

以上兩個階段稱為編譯後端(與目標機有關)

遍和階段

乙個遍可以由若干段組成(比如,前三個階段通常組成一遍)

乙個階段也可以分若干遍來完成(比如,優化階段會掃瞄數遍來進行優化)

利用已有的編譯程式實現另一語言的編譯程式

移植方法(把一種機器上的編譯程式移植到另一種機器上)

自展技術(先建立乙個核心編譯器,再在該基礎上擴充套件,依次進行)

編譯程式自動產生(給出語言語法描述,就能自動產生編譯程式)

編譯原理概述

一 編譯過程分析 編譯軟體讀取源程式 字元流 對之進行詞法和語法的分析,將高階語言指令轉換為功能等效的彙編 再由匯程式設計序轉換為機器語言,並按照作業系統對可執行檔案格式的要求鏈結生成可執行程式.二 編譯流程表 c源程式 c檔案 編輯器 預處理過程 c檔案 編譯 優化過程 s或.asm檔案 編譯器 ...

編譯原理概述

計算機不能直接理解 高階語言 只能直接理解 機器語言 所以必須要把高階語言 翻譯 成機器語言,計算機才能執行高階語言編寫的程式。我們可以粗略地把程式語言分為兩類 編譯型語言 和解釋型語言 常用的c c pascal和最近流行的go語言都是編譯型語言,而python ruby等則是解釋型語言,解釋型語...

編譯原理概述

編譯程式的工作過程 編譯程式的結構 編譯器的自舉和移植 高階語言轉換為可執行語言的過程 以gcc編譯器為例 原始檔為hello.c 步驟一 預處理。將原始檔hello.c預處理成hello.i。該步是將 include中包含的標頭檔案匯入到原始檔中。命令是gcc e hello.c 步驟二 編譯。將...