編譯原理 (一)

2021-08-04 16:49:35 字數 1291 閱讀 9066

編譯原理:乙個陌生又熟悉的詞

對程式設計師來說:學習編譯原理可以幫助程式設計師更深層的了解程式語言和內部機制。讓我們更加深入了解計算機思想。

簡單介紹計算機語言發展史:機器語言——>組合語言——>早期高階語言——>高階語言——>物件導向語言,語言發展越來越高階,人類的文明也越來越輝煌!

編譯程式、編譯原理:通俗的講就是把高階語言翻譯成計算機可以讀的機器語言的翻譯過程,大概的流程是:詞法分析、語法分析、詞義分析、中間**生成、**優化、最終目標**生成這幾個階段。

流水線一–詞法分析:

也就是從左到右乙個乙個的讀入源程式,識別乙個單詞或符號,並進行歸類。類似分析漢語語法,例如,我們輸入一句話,我是中國人。然後進行分析,讀入我可以識別這個單詞,為名詞,我就歸到名詞這類;讀入是,我們歸到動詞這類;讀入中字,不能構成乙個可識別的東東,接著讀入,中國人,為名詞類。而在計算機中,例如我們寫的某行**,var sum = first + count*10 ; 進行分類,1保留字:var;識別符號:2 sum 3 first 4 count 乘號:5*;

流水線二–語法分析:

在詞法分析的基礎上,將單詞序列分解成各類語法短語,如「程式」,「語句」,「表示式」等。例如通過上面的單詞「我」「中國人」「是」,可以構成兩種形式的語句,我是中國人,中國人是我,都符合《主語》《謂語》這樣的語法。

流水線三–語義分析:

審查源程式是否有語義的錯誤,當不符合語言規範的時候,程式就會報錯。例如上面的「我是中國人」和「中國人是我」兩個句子,顯然後面的中國人是我就不符合語義了。

流水線四–中間**生成:

在進行了語法和語義的分析工作之後,編譯程式將源程式變成了一種內部表示形式,這種內部表示形式叫做中間語言或中間**。(比較抽象些),個人理解為,生成一種介於原始碼和機器語言的形式。

流水線五–**優化:

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

流水線六–目標**生成:

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

這是工作的最後階段,與硬體系統結構,指令系統相關,涉及到硬體系統功能部件運用、機器指令的選擇等等。

出處:

編譯原理(一)

編譯原理的介紹 計算機的位數是代表資料匯流排的位數,在32位計算機中,就是說每次資料操作可以達到4位元組,而定址空間則是2的32次方,也是就4g,那麼為什麼64位計算機只能定址32g呢?因為64位計算機的位址匯流排為35位,並不是64位的位址線,那麼記憶體位址也就是原來的8倍,就是32g記憶體。cp...

編譯原理(一)

編譯原理 一 最近在學習編譯原理這一門課程,順便來對所學知識進行一下回憶 詞這個字很明顯,比如暫且把 just do it 看成一段英文句子吧,我們來進行分析分析,其中 just 和 do 和 it 都是單詞,這就是詞法分析。比如源程式 sum a money 2 單詞符號 詞素識別符號 sum賦值...

編譯原理(一)

將匯程式設計序翻譯為機器 稱為 彙編 詞法分析器是 編譯的第一步 輸出是單詞串 其輸入是源程式 宿主機不同於目標機的編譯程式是 交叉編譯程式 編寫乙個計算機高階語言的源程式後,到正式上機執行之前,一般要經過 abc 這幾步 a 編輯 b 編譯 c 連線 d 執行 解釋方式和編譯方式的主要區別在於 能...