C連載2-編譯過程以及語言歷史概覽

1、計算機要完成兩數相加,能夠大體分爲以下幾個步驟:微信

1.從內存位置2000上把一個數字拷貝到寄存器1;函數

2.從內存位置2004上把另外一個數字拷貝到寄存器2;學習

3.把寄存器2裏面的內容與寄存器1中的內容相加,把結果儲存在寄存器1中。大數據

4.把寄存器1中的內容拷貝到內存位置2008。ui

2、高級語言以更抽象的方式描述行爲,不受限於特定CPU或者指令集。操作系統

3、編譯器都聲稱提供完整的K&R實現,與大多數語言相比,C語言比其餘語言更加依賴庫,所以須要一個標準庫,實際上因爲缺少官方的標準,UNIX實現提供的庫已成爲了標準庫。.net

4、美國國家標準協會(ANSI)翻譯

C89:ANSI與1989年批准該標準。C90:ISO於1990年批准該標準。code

C99\C11視頻

5、C編譯器把源代碼轉換爲中間代碼,連接器把中間代碼和其餘代碼合併,生成可執行文件,連接器還將你編寫的程序和預編譯的庫代碼合併。

6、中間文件有多種形式,咱們在這裏描述的最廣泛的一種形式,即把源代碼轉換爲機器語言代碼,並把結果放在目標代碼文件(或簡稱目標文件)中(這裏假設源代碼只有一個文件)。雖然目標文件中包含機器語言代碼,可是並不能直接運行該文件,由於該文件中存儲的是編譯器翻譯的源代碼,這不是一個完整的程序。

6、目標代碼文件中缺失啓動代碼(startup code),啓動代碼充當着程序與操做系統之間的接口,例如:能夠在MS Windows或Linux 系統下運行IBM PC兼容機,這兩種狀況使用的硬件是相同的,因此目標代碼相同,可是Windows和Linux所需的啓動代碼是不一樣的,由於這些系統處理程序的方式不一樣。

7、目標代碼中還缺乏庫函數,幾乎全部的C程序都須要使用C標準庫中的函數​。

8、連接器的做用:把編寫的目標代碼、系統的標準啓動代碼和庫函數這三部分​合併成一個問及那,即:​可執行文件,對於 庫代碼,連接器只會把程序中要用的庫函數​代碼提取出來。​

9、源碼:

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客園:https://www.cnblogs.com/ruigege0000/

4.歡迎關注微信公衆號:傅里葉變換,我的帳號,僅用於技術交流,後臺回覆「禮包」獲取Java大數據學習視頻禮包

相關文章
相關標籤/搜索