《程序是怎樣跑起來的》第八章讀后感
本章主題是從源文件到可執行文件。上章也有講到源代碼(source code),源代碼就是用編程語言編寫的程序,也稱為源程序,用源代碼保存的文件叫源文件。
在第七章中也有提到,CPU只能解釋自身固有的機器語言,機器語言的程序叫本地代碼,本地代碼的內容其實就是各種數值的羅列,所以要將源代碼轉換為本地代碼,負責將源代碼轉換為本地代碼的程序被稱為編譯器,當然,每個編程語言都需要用到其專有的編譯器,Java語言常用到的是eclipse,eclipse是一種流行的集成開發環境,被稱為IDE,其中內置了自己的Java編譯器。由于CPU的類型和本地代碼類型的不同,以及運行環境不同所需要的編譯器也不相同,還有一種交叉編譯器,它生成的是和運行環境中CPU不同的CPU所使用的本地代碼。但是編譯器將源代碼轉換后生成的目標文件是無法直接運行的,因為其中的代碼是本地代碼,所以書中講到一種處理方式叫“鏈接”處理,作者使用Borland C++ Complier5.5(一種年代稍微久遠一點的編譯器,還是上章講到的 MSDOS研發的)來演示編譯和鏈接處理的過程,簡單來說,鏈接處理就是把多個目標文件結合生成一個EXE文件來處理,而運行這個鏈接處理的就叫做鏈接器。鏈接器指定庫文件后把需要的目標文件抽取出來再同其他目標文件結合生成EXE文件。其中提到的一個概念是庫文件,庫文件指的是把多個目標文件集成保存在一個文件中的一種形式,還提到兩個概念————外部符號和標準函數,外部符號指其他目標文件中的變量或函數,標準函數是指通過庫文件形式和編譯器一起提供的函數。
第八章主要講的是對代碼的編譯、鏈接處理的運行過程,還有編譯器的作用,這些知識都是我們需要掌握的。
浙公網安備 33010602011771號