瞎扯編譯原理 1

2021-08-19 16:14:41 字數 504 閱讀 2691

人想讓電腦做事,就得告訴它幹什麼,怎麼幹,以前只能用計算機自己的語言,0和1來完成,後來人發明了編譯器,編譯器能把一種類似人類語言的東西翻譯成機器語言讓機器能夠理解。

大多數程式語言都是英語的模式,就是字母組成單詞,單詞組成句子,句子組成文章。編譯器的前半部分就是幹這件拼拼湊湊的事,稱為編譯器前端。

這個時候,文章就變成了乙個樹形結構,儲存在編譯器裡了。編譯器把樹形結構進行理解(就是一些處理),變成編譯器自己的話,稱為ir。

接下來就是編譯器最精華的部分,編譯器理解了你的意思,但是它覺得你說的做事方法不夠精煉,不夠高效,它就按照自己的理解,盡可能的改善做事的方法,但不改變結果,稱作對ir進行優化,然後把優化過的ir傳給編譯器的後端。

後端的工作是多種多樣的,有的把ir翻譯為某種計算機的機器碼,這樣機器就能直接執行,有些先解釋執行ir,然後根據執行時場景動態編譯和優化(jit)。

這樣把前端,中端,後端分離的結構,使得修改前端語法,中端新增優化方法,後端適配更多機器,都不用修改其他模組的**,提高靈活性。

編譯原理1

1 引論 1.1 什麼叫編譯程式 編譯程式是指能夠把某一種語言程式 稱為源語言程式 轉換成另一種語言程式 稱為目標語言程式 而後者與前者在邏輯上是等價的。1.2 編譯過程概述 1.2.1 詞法分析。對構成源程式的字串進行掃瞄和分解,識別單詞。例 for i 1 to 100 do,分析結果如下 基本...

《編譯原理》1

翻譯程式 將一種語言等價轉換另一種語言的程式 編譯程式 將某種高階語言等價轉換另一種低階語言的程式 解釋程式 將源語言寫的源程式作為輸入,但不會產生目標程式,而是邊解釋邊執行源程式 編譯執行 解釋執行 1 html xml分析 2 語言處理工具 模擬英文翻譯為中文 識別句子中乙個個單詞 詞法分析 分...

編譯原理(1)

什麼是宿主機,什麼是目標機?編譯程式的平台叫宿主機。編譯後產生的 的執行平台叫目標機。計算機思維包括什麼?計算機思維 抽象 自動化 分解 遞迴 權衡 折中 任務 輸入源程式,對構成源程式的字串進行掃瞄和分解,識別出乙個個單詞符號。依循的原則 構詞規則。描述工具 有限自動機 for i 1 to 10...