在下圖中,高階語言是輸入,而組合語言或者機器語言是輸出,編譯器的作用便是做乙個中間轉換的過程,我們來看看編譯器是怎麼把源語言翻譯成機器語言的,
此部分我們需要借助生活中常見的英漢互譯來幫助我們更好的理解編譯器的整個結構和編譯過程。
如下圖,學過英語的都知道一些英語的語法組成,簡單的英語結構可以分為主謂賓,而下面這句話可分為主謂賓補狀,四個部分,而英文就是源語言,目標語言就是漢語。
翻譯過程的第一步則為對源語言進行結構的拆解,確定句子中各個單詞的詞性(名詞、動詞、介詞等等),此為詞法分析;第二步則為進行語法分析,確定各個短語的組成(例如,in the room為介詞短語,broke a window動詞短語等),第三步為語義分析,確定各個短語在句子中充當什麼成分,然後確定各個成分之間的關係。
上面內容是英語翻譯成漢語的過程,當然實際上可能沒有那麼難,這只是為了舉個例子,完整的翻譯過程就是如此。我們再來看看編譯器的翻譯過程。
編譯器的翻譯過程與上面的類似,詞法分析——語法分析——語義分析——中間**生成——目標**,中間還有一些**優化的過程(**優化過程很重要,可以節省時間和空間)。
編譯器翻譯的過程其實很容易理解,後面的幾篇博文將會對各個部分進行講解。
編譯原理 入門總結
入門教程在 手把手教你做乙個 c 語言編譯器 19年嘗試學了一下,中途看不懂放棄了。20年底從頭再看一遍,經過一年的知識積累,在仔細研讀之下,終於算是學懂了。此文中記錄了我在最初學習時遇到的問題,和最終的解決方法記錄下來,希望對讀者有所幫助。虛擬機器涉及的知識是比較綜合性的,是乙個難點。虛擬機器的原...
編譯原理入門(三) 詞法分析簡介
詞法分析的主要任務 1.對源程式的 進行從左到右的逐行掃瞄,識別出各個單詞,從而確定單詞的型別。2.將識別出的單詞轉換為統一的機內表示 詞法單元 token 形式,token 種別碼,屬性值 第二點看不懂沒事,先說說什麼是詞法單元形式,token是乙個鍵值對,key是種別碼,什麼是種別碼?請看下圖便...
編譯原理 1 2 編譯系統的結構
編譯的本質是乙個翻譯的過程,編譯器的輸入是乙個高階語言程式,編譯器的輸出是乙個組合語言 機器語言。編譯器是如何翻譯的 此處借助人工翻譯示例 in the room,he broke a window with a hammer 將這句英語當做源語言,將漢語當做目標語言 其輸入輸出的過程如下 因此可以...