當前位置:首頁 » 編程軟體 » 何為編譯

何為編譯

發布時間: 2024-10-25 21:16:58

『壹』 計算機是怎樣運行程序的

為了使計算機程序得以運行,計算機需要載入代碼,同時也要載入數據,然後由處理器執行指令。整個過程可以總結為編譯、鏈接、裝載、執行。

1、編譯

編譯過程又可以被分為兩個階段:編譯、匯編。

編譯是指編譯器讀取字元流的源程序,對其進行詞法與語法的分析,將高級語言指令轉換為功能等效的匯編代碼。

匯編器是將匯編代碼轉變成機器可以執行的命令,每一個匯編語句幾乎都對應一條機器指令。匯編相對於編譯過程比較簡單,根據匯編指令和機器指令的對照表一一翻譯即可。

2、鏈接

鏈接的主要內容是將各個模塊之間相互引用的部分處理好,使得各個模塊之間能夠正確地銜接。鏈接又分為靜態鏈接和動態鏈接:

靜態鏈接是指在編譯階段直接把靜態庫加入到可執行文件中去,這樣可執行文件會比較大;

動態鏈接則是指鏈接階段僅僅只加入一些描述信息,而程序執行時再從系統中把相應動態庫載入到內存中去。

3、裝載

程序在經過鏈接後,得到了可執行文件,下一步就需要將可執行程序載入到內存中。

由於現代操作系統均採用分頁的方式來管理內存,所以操作系統只需要讀取可執行文件的文件頭,之後建立起可執行文件到虛擬內存的映射關系,而不需要真正的將程序載入內存。

4、運行

載入器將可執行目標文件中的代碼和數據從磁碟復制到內存中,然後通過跳轉到程序的第一條指令或入口點來運行程序。

在程序的運行過程中,CPU發現有些內存頁在物理內存中並不存在並因此觸發缺頁異常,此時CPU將控制許可權轉交給操作系統的異常處理函數,操作系統負責將此內存頁的數據從磁碟上讀取到物理內存中。

數據讀取完畢之後,操作系統讓CPU jmp到觸發了缺頁異常的那條指令處繼續執行,此時指令執行就不會再有缺頁異常了。

(1)何為編譯擴展閱讀

為使計算機按預定要求工作,首先要編製程序,無論是最早的操作系統還是現代操作系統,程序的運行都是計算機工作的本質。

早期計算機是單任務執行,由程序員直接編寫操作系統可以識別的機器語言,到現在可以實現多道程序並行,並且程序的開發由更利於程序員理解的高級語言編寫,源程序在經過一系列翻譯過程,變成計算機理解的機器語言,再執行。

整個程序執行的過程,需要CPU、內存、程序代碼、設備等配合,才能實現程序要表達的功能。

『貳』 解釋和編譯有何區別

1樓的人 不是回答你的問題 他是來賺積分的
一個源語言的解釋程序是這樣的程序,它以該語言寫的源程序作為輸入,但不產生目標程序,而是邊解釋邊執行源程序本身。
編譯嘛.. 我都還沒過呢 不好意思解釋

『叄』 編譯程序和解釋程序有何區別

編譯程序能生成目標程序,而解釋程序不能。

『肆』 編譯和運行有何區別>>>>>>>>>>>>>

編譯:
包括編譯和鏈接兩個過程。
編譯部分,是把源文件(代碼)轉換成機器可以識別的二進制語言,這個過程是針對每一個源文件的。
鏈接,是把編譯生成的二進制文件,組合成為一個系統可以執行的可執行文件。
這兩部分整體也叫編譯。也就是說,廣義的編譯,就是把代碼,轉換成可執行文件。

運行:
把編譯出來的可執行文件,在系統中運行的過程,稱為程序的運行。

打個比方,編譯就是做飯的過程,而運行,就是吃飯。二者是完全不同的概念,是計算機軟體開發的兩個步驟。

『伍』 易語言中的編譯和靜態編譯有何區別

靜態編譯就是編譯器在編譯可執行文件的時候,將可執行文件需要調用的對應動態鏈接庫(.so)中的部分提取出來,鏈接到可執行文件中去,使可執行文件在運行的時候不依賴於動態鏈接庫。而編譯就是把可執行文件和支持庫一起寫出到外部,在需要的時候直接對其中一個支持庫進行搜索某一條命令.
打個比方.
你家有6個罐子,裡面分別放了1塊,5塊,10塊,20塊,50塊,100塊.
然後你出門的時候要帶每一種錢各一個,所以就從這六個罐子里每個罐子都拿出一張錢.
這就是靜態編譯.
我再打個比方.
你家還是有6個罐子,裡面分別放了1塊,5塊,10塊,20塊,50塊,100塊.
然後你出門的時候,還是想要都帶一種,然後你就不是每個罐子里拿錢了,而是直接把整個罐子都帶在了身上出門.
相比起來,靜態編譯要輕松,小巧了許多了.

lz 手打很累的 採納吧

熱點內容
演算法製造 發布:2024-10-25 23:11:27 瀏覽:885
台式電腦安裝哪個安卓系統好 發布:2024-10-25 23:11:25 瀏覽:113
怎麼樣學電腦編程 發布:2024-10-25 23:10:13 瀏覽:523
安卓手機內存佔用太多如何清理 發布:2024-10-25 23:03:53 瀏覽:909
swift項目編譯 發布:2024-10-25 22:53:12 瀏覽:962
邁銳寶買哪個配置合算 發布:2024-10-25 22:28:59 瀏覽:993
押韻腳本生成器 發布:2024-10-25 22:26:50 瀏覽:368
找文檔上傳 發布:2024-10-25 22:22:29 瀏覽:875
hibernate使用二級緩存 發布:2024-10-25 22:14:00 瀏覽:359
手機版登陸布穀鳥伺服器地址 發布:2024-10-25 22:13:59 瀏覽:173