導航:首頁 > 軟體知識 > 可執行程序是什麼生成的文件

可執行程序是什麼生成的文件

發布時間:2023-02-19 19:30:53

1. c語言可執行程序文件是通過()和()生成的

源程序文件不是可執行文件。 C源程序文件是一種文本文件,它首先需要編譯器去編譯成目標文件,在通過鏈接器鏈接庫代碼才能形成可執行的二進制exe文件。每一個C語言程序必須要經過編譯和鏈接才能被計算機執行,編譯是將C源碼翻譯成機器碼,鏈接是將將二進制目標文件裝配成一個具有特定格式的二進制可執行文件,比如Windows平台上是PE格式,一般以.exe為擴展名。 一個C語言程序從源碼到計算機系統可以執行,更細致的劃分為:預處理——編譯——匯編——鏈接。預處理是對C語言源碼進行文本處理,編譯階斷是將C源碼經C編譯器生成匯編代碼,匯編階斷是將匯編代碼經匯編器生成二進制機器碼文件。這兩個合攏起來,籠統的可以叫做編譯階斷。語言是一門計算機語言,有自己一定的語法。但是,C語言並不能直接被對象所理解,需要將C語言轉變成可執行代碼,即二進制代碼。在C語言轉變成二進制可執行代碼時,是以工程為單位的。而一個工程中往往會包含多個C文件。因此,需要將每個C文件都編譯成二進制代碼。此時,每個C文件所對應的二進制代碼是獨立的。由於工程是一個系統,所以需要將所有的C文件二進制代碼鏈接到一起,形成一個工程的可執行文件。 綜上,編譯和鏈接就是指的將C文件轉變成二進制代碼,並將各個獨立的C文件二進制代碼鏈接到一起,形成一個可執行文件的過程。

2. 在c語言中「可執行程序」是什麼意思

C語言中的可執行程序就是將用文本信息表示的程序翻譯成計算機認識的二進制代碼串。

首先,我們先用C語言把源代碼寫好,然後交給C語言編譯器。C語言編譯器內部分為前端和後端。

(1)編譯器前端

前端負責將C語言代碼進行詞法和語法上的解析,然後可以生成中間代碼。

中間代碼這部分不是必須的,但是它能夠為程序的跨平台移植帶來諸多好處。比如,同樣的一份C語言源代碼在一台計算機上編譯完之後,生成一套中間代碼。

然後針對不同的目標平台(比如要將這一套代碼分別編譯成 ARM 處理器的二進制機器碼、MIPS 處理器的二進制機器碼以及 x86 處理器的二進制機器碼),只需要編寫相應目標平台的編譯器後端即可。

所以,這么做就可以把編譯器的前端與後端剝離開來(這在軟體工程上又可稱為解耦合),不同處理器廠商可以針對自家的處理器特性,對中間代碼生成到目標二進制代碼的過程再度進行優化。

(2)編譯器後端

接下來,由C語言編譯器後端生成源文件相應的目標文件。

目標文件在 Windows 系統上往往是.obj文件,而在 Unix/Linux 系統上往往是.o文件,C語言的源文件在所有平台上都統一用.c文件表示。

(3)鏈接器

最後,對於各個獨立的目標文件,通過連接器將它們合並成一個最終可執行文件。

(2)可執行程序是什麼生成的文件擴展閱讀:

起初,C語言沒有官方標准。1978年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。布萊恩·柯林漢(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本書,名叫《The C Programming Language》。

這本書被 C語言開發者們稱為K&R,很多年來被當作 C語言的非正式的標准說明。人們稱這個版本的 C語言為K&R C。

K&R C主要介紹了以下特色:

結構體(struct)類型

長整數(long int)類型

無符號整數(unsigned int)類型

把運算符=+和=-改為+=和-=。因為=+和=-會使得編譯器不知道使用者要處理i = -10還是i =- 10,使得處理上產生混淆。

即使在後來ANSI C標准被提出的許多年後,K&R C仍然是許多編譯器的最 准要求,許多老舊的編譯器仍然運行K&R C的標准。

1970到80年代,C語言被廣泛應用,從大型主機到小型微機,也衍生了C語言的很多不同版本。

1983年,美國國家標准協會(ANSI)成立了一個委員會X3J11,來制定 C語言標准。

1989年,美國國家標准協會(ANSI)通過了C語言標准,被稱為ANSI X3.159-1989 "Programming Language C"。因為這個標準是1989年通過的,所以一般簡稱C89標准。有些人也簡稱ANSI C,因為這個標準是美國國家標准協會(ANSI)發布的。

1990年,國際標准化組織(ISO)和國際電工委員會(IEC)把C89標準定為C語言的國際標准,命名為ISO/IEC 9899:1990 - Programming languages -- C 。因為此標準是在1990年發布的,所以有些人把簡稱作C90標准。不過大多數人依然稱之為C89標准,因為此標准與ANSI C89標准完全等同。

1994年,國際標准化組織(ISO)和國際電工委員會(IEC)發布了C89標准修訂版,名叫ISO/IEC 9899:1990/Cor 1:1994 ,有些人簡稱為C94標准。

1995年,國際標准化組織(ISO)和國際電工委員會(IEC)再次發布了C89標准修訂版,名叫ISO/IEC 9899:1990/Amd 1:1995 - C Integrity ,有些人簡稱為C95標准。

C99標准

1999年1月,國際標准化組織(ISO)和國際電工委員會(IEC)發布了C語言的新標准,名叫ISO/IEC 9899:1999 - Programming languages -- C ,簡稱C99標准。這是C語言的第二個官方標准。

參考資料:網路-c語言

3. 什麼是可執行文件

可執行文件 (executable file) 指的是可以由操作系統進行載入執行的文件。在不同的操作系統環境下,可執行程序的呈現方式不一樣。在windows操作系統下,可執行程序可以是 .exe文件 .sys文件 .com類型文件。

如記事本程序notepad.exe ,這類程序通常用來處理或者輔助處理其它文件。比如:myfile.txt雙擊打開由notepad.exe記事本程序來進行編輯。

(3)可執行程序是什麼生成的文件擴展閱讀:

可執行文件常見分類:

1、Linux32/64位可執行文件:Linux是靠文件屬性來判斷判斷是否可執行。每個文件專門有個屬性來表示文件是否可執行。

2、MS-DOS可執行文件:最簡單的可執行文件格式,可以在MS-DOS和32位的WINDOWS中運行。它通過在文件頭添加ASCII字元串「MZ」(16進制中表示為4D5A)來標識。「

3、16位NE X86可執行文件:通過在文件頭添加ASCII字元串「NE」來標識。它只能運行在Windows和OS/2系統,而不能在DOS下運行。

4、16/32位X86可執行文件:通過在文件頭添加ASCII字元串「LE」來標識。它僅用來在Windows 3.x和Windows 9x中替代VxD驅動。

5、32位線性可執行文件:通過在文件頭添加ASCII字元串「LX」來標識。運行在OS/2 2.0以及更高版本中,也可用於某些DOS擴展。

6、32位X86可執行文件:這是最復雜也最流行的可執行文件格式,通過在文件頭添加ASCII字元串「PE」來標識。它主要運行於Windows 95和Windows NT以及更高版本的Windows中,也可在BeOS R3中運行。

7、64位X86-64可執行文件:與32位文件類似,但使用支持64位的X86cpu(64根地址匯流排)。因此它僅能在64位的Windows系統中運行,譬如Windows 7 64位和 Windows10 X64。

參考資料來源:網路-可執行文件

參考資料來源:網路-可執行程序

4. 簡述將源程序編譯成可執行程序的過程

一個源程序到一個可執行程序的過程:預編譯、編譯、匯編、鏈接。其中,編譯是主要部分,其中又分為六個部分:詞法分析、語法分析、語義分析、中間代碼生成、目標代碼生成和優化。

預編譯:主要處理源代碼文件中的以「#」開頭的預編譯指令。處理規則如下:

1、刪除所有的#define,展開所有的宏定義。

2、處理所有的條件預編譯指令,如「#if」、「#endif」、「#ifdef」、「#elif」和「#else」。

3、處理「#include」預編譯指令,將文件內容替換到它的位置,這個過程是遞歸進行的,文件中包含其他文件。

4、刪除所有的注釋,「//」和「/**/」。

5、保留所有的#pragma 編譯器指令,編譯器需要用到他們,如:#pragma once 是為了防止有文件被重復引用。

6、添加行號和文件標識,便於編譯時編譯器產生調試用的行號信息,和編譯時產生編譯錯誤或警告是能夠顯示行號。

(4)可執行程序是什麼生成的文件擴展閱讀:

編譯過程中語法分析器只是完成了對表達式語法層面的分析,語義分析器則對表達式是否有意義進行判斷,其分析的語義是靜態語義——在編譯期能分期的語義,相對應的動態語義是在運行期才能確定的語義。

其中,靜態語義通常包括:聲明和類型的匹配,類型的轉換,那麼語義分析就會對這些方面進行檢查,例如將一個int型賦值給int*型時,語義分析程序會發現這個類型不匹配,編譯器就會報錯。

5. 什麼叫做可執行程序

可執行文件 (executable file) 指的是可以由操作系統進行載入執行的文件,以windows系統為例進行說明。

1、用戶在安裝windows系統電腦上使用的qq、ie瀏覽器、記事本、office等等 ,這些都是可執行文件,用戶可以簡單將可執行文件理解為電腦上的程序。

2、在windows系統上一般來說exe文件都是可執行文件,但是可執行文件還包括了dll文件、scr文件等 ,總之,可執行文件是一種滿足一定文件格式的可執行體,在windows系統上叫做PE格式 ,下圖是windows系統上可執行文件的格式,包括了DOS頭、PE頭、區段等信息。

6. exe是什麼文件

EXE是在OS/2、MS-DOS和Windows系統中通用的可執行文件的擴展名。exe文件比較復雜,屬於一種多段的結構,是DOS最成功和復雜的設計之一。

EXE File 可執行程序 一種可在操作系統存儲空間中浮動定位的可執行程序。MS-DOS和MS-WINDOWS下,此類文件擴展名為·exe。exe用以標識可執行文件的文件擴展名。用戶在提示行中輸入不帶 .exe擴展名的文件名後按 Enter 鍵就能運行可執行程序。

(6)可執行程序是什麼生成的文件擴展閱讀

EXE 包括以下幾種主要的文件格式:

1、DOS可執行文件:最簡單的可執行文件格式,可以在DOS和Windows中運行。它通過在文件頭添加ASCII字元串「MZ」(16進制中表示為4D5A)來標識。「MZ」是MS-DOS開發者之一的馬克·茨柏克沃斯基(Mark Zbikowski)的姓名首字母縮寫。

2、16位新可執行文件:通過在文件頭添加ASCII字元串「NE」來標識。它只能運行在Windows和OS/2系統,而不能在DOS下運行。

3、16/32位混合式線性可執行文件:通過在文件頭添加ASCII字元串「LE」來標識。它僅用來在Windows 3.x和Windows 9x中替代VxD驅動。

7. 什麼方式會生成目標程序和可執行程序

經過編譯和鏈接,才可生成可執行文件。
一般的順序是這樣的:預編譯,編譯,匯編,鏈接!沒有鏈接這步是無法生成可執行文件的!由匯編程序生成的目標文件並不能立即就被執行,其中可能還有許多沒有解決的問題。

閱讀全文

與可執行程序是什麼生成的文件相關的資料

熱點內容
外匯交易保證金多少合適 瀏覽:772
三農批發市場在哪個地方 瀏覽:769
群聊小程序怎麼進入 瀏覽:977
什麼是分子標記生物技術 瀏覽:978
拼多多多久不回信息 瀏覽:370
如何才能成為蘭花交易網的版主 瀏覽:202
游戲交易平台有哪個 瀏覽:592
交易貓發簡訊警告怎麼退款 瀏覽:337
程序員離職回老家做什麼生活 瀏覽:811
如何補充打疫苗信息 瀏覽:956
遵義的古董交易市場在哪裡 瀏覽:845
如何做巴斯夫代理 瀏覽:527
怎麼獲得全部信息 瀏覽:907
信息技術的服務主體是什麼 瀏覽:527
遷戶口程序是什麼意思 瀏覽:732
宜春代理記賬一個月多少錢 瀏覽:516
一加手機如何解除後台程序 瀏覽:295
顯卡程序右上角圖標怎麼關 瀏覽:932
護膚酸有哪些產品 瀏覽:24
什麼叫包灰技術 瀏覽:334