2012-10-27 43 views
1

儘管他們看似不同的方式來發展 環境,UNIX和Windows都共享一個通用架構 後端當它涉及到的編譯器(和許多許多其他的東西,因爲我們 會發現在接下來的頁面中)。可執行代是 基本上是由一個程序在兩個系統上進行端到端處理: 編譯器。這兩個系統都有一個單一的前端可執行文件,它基本上用作上述所有5個步驟中的 膠水。編譯器的功能和可執行文件

上:http://www.savs.hcc.edu.tw/~chuavv/articles/RevEng/ch02.html#the_compiler

這是什麼意思?編譯器在一臺機器上編譯程序(預處理 - >解析 - >翻譯 - >彙編 - >鏈接)並且在另一臺機器上,編譯器也執行相同的任務,但反過來?不能確切地確定「可執行代在本質上是在兩個系統上端到端處理......可執行文件,基本上全部5個步驟都充當粘合劑」。

+6

我不知道在哪裏做相反的事情是從哪裏來的。在Windows或Unix上編譯程序*基本上*的方式相同。 – Collin

+2

看起來非常直截了當:「可執行代在本質上是由一個程序在兩個系統上進行端到端處理」 –

+0

沒有太多計算機系統在編譯器中不共享架構後端。坦率地說,這是一個自命不凡的慷慨陳詞。 – EJP

回答

3

這基本上是英文閱讀理解,不是編程。

可執行代在本質上是在兩個系統上端到端處理的。

這意味着從開始到結束,從純文本源到最終的可執行文件,一個程序,編譯器會完成所有工作。

對於基本上所有5個步驟都充當膠水的可執行文件。

無論是無論是GCC或MSVC,有一個司機,有種「經理」可執行文件的調用底層的預處理程序,解析器,彙編器和鏈接(這些是CPP,CC1,as和ld在GCC的情況下, )可執行文件。它只是一個保護傘,是它的子程序的一個包裝。

但是,我會不同意共享基本架構的Win和Unix。他們共同的東西只是非常基本的東西,不可能完全不同。例如,他們都有一個內核,他們能夠在一臺Neumann架構的計算機上運行,​​等等。就像作者說,汽車引擎和手磨機僅僅因爲都是機械設備而共享一個共同的架構。

+0

非常感謝您的澄清。 – eveo

2

這意味着在Windows和Linux上,通常只使用一個程序將代碼編譯爲可執行文件。您不必運行單獨的程序來執行預處理,另一個程序用於翻譯,另一個用於鏈接。這一個可執行文件「端到端」執行整個過程。

相關問題