編譯的本質是乙個翻譯的過程,編譯器的輸入是乙個高階語言程式,編譯器的輸出是乙個組合語言/機器語言。
編譯器是如何翻譯的
此處借助人工翻譯示例
in the room, he broke a window with a hammer
將這句英語當做源語言,將漢語當做目標語言
其輸入輸出的過程如下
因此可以翻譯成:在房間裡,他用錘子砸了一扇窗戶。此條語句可以用下圖表示
(在本例中可通過詞性來識別各類短語)
介詞 |冠詞 |名詞 |代詞 |動詞 |冠詞 |名詞 |介詞 |冠詞 |名詞
in |the |room, |he |broke |a |window |with |a |hammer.
in「介詞」the「冠詞」 room「名詞」, he「代詞」 broke「動詞」 a「冠詞」 window「名詞」 with「介詞」 a「冠詞」hammer「名詞」
in the room「介詞短語」, he「名詞短語」broke a window「動詞短語」 with a hammer「介詞短語」
人-----打-----窗戶錘子----房間
編譯器的結構
[字元流]
[ 詞法分析器 ]--------------分
[詞法單元流]
[ 語法分析器 ]--------------析
[語法樹]
[ 語義分析器 ]--------------部
[語法樹]
[ 中間**生成器 ]--------分
//以上稱為"分析部分/前端",對源語言進行分析,並生成中間表示,只與源語言相關
[中間表示形式]
[ 機器無關**優化器 ]
[中間表示形式]
[ 目標**生成器 ]------------綜合
[目標機器語言]
[ 機器相關**優化器 ]------部分
//以上稱為"綜合部分/後端",只與目標語言相關
[目標機器語言]
編譯原理入門(二) 編譯系統的結構
在下圖中,高階語言是輸入,而組合語言或者機器語言是輸出,編譯器的作用便是做乙個中間轉換的過程,我們來看看編譯器是怎麼把源語言翻譯成機器語言的,此部分我們需要借助生活中常見的英漢互譯來幫助我們更好的理解編譯器的整個結構和編譯過程。如下圖,學過英語的都知道一些英語的語法組成,簡單的英語結構可以分為主謂賓...
編譯原理 編譯器結構
編譯器是具有高度模組化的一種結構,說白了就是編譯的任務被劃分為乙個個小的子任務,交付給不同的小模組來執行。這些小模組的序列 順序 執行,對應的就是小任務的序列實現,最終就實現了編譯這個總任務。所以說編譯器也可以看成由多個階段構成的流水線結構 如圖所示,一種簡單的 流水線 式的編譯器結構 這個是具有優...
編譯系統的結構
編譯一定程度上我們可以理解為翻譯,所以我用乙個英語翻譯成中文的例子的解釋一下編譯系統的結構 eg i went to school by bus.如果讓大家翻譯的話,相信大家很快就能翻譯出來,但是翻譯的過程是什麼樣的呢?首先我們分析出 i 是人稱代詞,went是動詞,to是介詞,school是名詞,...