⑴ 編譯原理里,什麼是源語言,什麼是目標語言,什麼是翻譯器,什麼是編譯器,什麼是解釋器,什麼是T形圖
在vc 將c/c++代碼翻譯成asm文件的過程中
c/c++ 是源語言 asm是目標語言 vc是翻譯器
vc將asm在編譯成 obj文件 最後於庫文件鏈接成 二進制文件 vc就是編譯器
java中 需要跑一個 java虛擬機 比如 sun的 java.exe java.exe就是解釋器
c語言 a機器 c語言 b機器 C語言 b機器
a機器 c語言 a機器
圖a 圖b 圖c
在上圖中,圖(a)為已有的編譯程序,圖(c)為需要得到的編譯程序,圖(b)為需要書寫的編譯程序,只要我們把(b)在(a)上編譯就可得到(c)
打個比方
編譯器a是已有的在intel主機上將c語言翻譯成可在intel主機上運行的編譯器 我們希望得到在intel機器上運行的將c語言翻譯成可在蘋果主機上運行的編譯器c 那麼我們只需要用c語言寫一個將c語言翻譯成可在蘋果主機上運行的編譯器b, 在編譯器a上編譯c語言寫的編譯器b 就可以得到編譯器c
在Linux下面,如果要編譯一個C語言源程序,我們要使用gcc編譯器。
先將源文件編譯成目標文件:gcc - c hello.c
生成hello.o文件,再將目標文件編譯成可執行文件:gcc -o hello hello.o
如:
int main(int argc,char **argv)
{
printf("Hello Linux ");
}
(2)編譯源語言擴展閱讀:
在使用GCC編譯器的時候,我們必須給出一系列必要的調用參數和文件名稱。GCC編譯器的調用參數大約有100多個,這里只介紹其中最基本、最常用的參數。具體可參考GCC Manual。
GCC最基本的用法是∶gcc [options] [filenames]
其中options就是編譯器所需要的參數,filenames給出相關的文件名稱。
網路_gcc
⑶ C語言源程序的編譯過程包括哪三個階段
編譯:將源程序轉換為擴展名為.obj的二進制代碼
連接:將obj文件進行連接,加入庫函數等生成可執行文件
運行:執行可執行文件,有錯返回修改,無錯結束
⑷ 如何編譯C語言源代碼
下載一個VC2005軟體,把代碼復制到裡面,設置好C運行環境,點擊編譯,OK,然後點擊那個感嘆號,直接鏈接運行,就OK了。
⑸ 編譯型語言有哪些呢
編譯型語言有C、C++、Objective-C、Swift、Kotlin等高級語言。需要將源代碼編譯成機器碼,再由機器運行機器碼。只需編譯一次,運行速度快,執行效率高。
編譯型語言和解釋型語言區別在於:
編譯型語言,通常都會對源代碼進行編譯,生成可以執行的二進制代碼,執行的是編譯後的結果。
解釋型語言,通常不用對源代碼進行編譯,一般是通過解釋器載入腳本後運行。由於每個語句都是執行的時候才進行解釋翻譯,這樣解釋性語言每次執行就要翻譯一次,效率相對要低。至於難度,個人感覺java相對要更復雜些。
⑹ 簡述什麼是源語言,目標語言,中間語言
1、源語言:源語言是可以引導出另一種語言的語言。
2、目標語言:目標語言,是一種利用特定語言輸入目標語言的方法。
3、中間語言:是一種面向語法,易於翻譯成目標程序的源程序的等效內部表示代碼。
拓展資料
一、中間語言
中間語言與具體機器特性無關,一種中間語言可以為生成多種不同型號的目標機的目標代碼服務。可對中間語言姿頌納進行與機器無關的優化,有利於提高目標代碼的質量。把源程序映射成中間代碼表示,再映射成目標代碼的工作分在幾個階段進行,跡沒使編譯演算法更加清晰。
二、目標語言
翻譯程櫻粗序的輸出稱目標程序。一般說,目標程序都是機器語言程序,輸出的語言就稱為目標語言。
目標語言是由源碼編譯或匯編所得的語言。它是自動編碼程序輸出的一種語言。在將信息從一種語言轉換成另一種語言時,原來的語言被稱為源語言,而輸出的語言則被稱為目標語言。通常,目標語言與機器語言可以是相同的,但當編碼程序是由一系列步驟才能完成時,則目標語言中的一個步驟可以是下一步的源語言。
(資料來源:中間語言——網路)
⑺ 簡述什麼是源語言,目標語言,中間語言
源語言是外語翻譯專業術語,和目標語相對。 源語言(可以引導出另一種語言的語言。在最信攔初編寫計算機程序時所使用的語言,就是源語言。源語言一般指的是,編寫源程序所用的語言,它必須翻譯成機器語言*才能在計算機中使用。) 目標語言:目標語 中間語言:獨立野坦歷於任何特定自然語言的中介表達式,能夠統攝機頌搜器翻譯所需的句法和語義信息,在機器翻譯系統中表示源語和目標語之間的聯系。
⑻ 用 C 語言編寫的源文件經過編譯,若沒有產生編譯錯誤,則系統將
本題正確答案應為B選項。
C選項為錯誤答案。
原因如下:
1、編譯程序僅僅是將源語言編寫的源程序轉換為目標程序。
2、編譯是把高級語言變成計算機可以識別的2進制語言。
3、編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。
顯然,編譯的過程中並沒有運行程序輸出結果的步驟茄戚,編譯的結果是生成目標文件(代碼)。
因此C選項為錯誤答案,B選項為正確答案。
編譯原理圖如下:
目標代碼(目標文件)生成是編顫絕陵譯的最後一個階段。目標代碼生成器把語法分析後或優化後的中間代碼變換成目標代碼。目標代碼有三種形式:
1、 可以立即執行的機器語言代碼,所有地址都重定位;
2、待裝配的機器語言模塊,當需要執行時,由連接裝入程序把它們和某些運行程序連接起來,轉換成能執行的機器語言代碼;
3、匯編語言代碼,須經過匯編程序匯編後,成為可執行的機器語言代碼。
目標代碼生成階段應考慮直接影響到目標代碼速度的三個問題:一是如何生成較短的目標代碼;二是如何充分利用計算機中的寄存器,減少目標代碼訪問存儲單元的次數;三是如何充分利用計算機指令系統的特點,以提高目標代碼的質量。
編譯宏賣_網路
⑼ C語言源文件編譯問題
標准庫已經是編譯好的程序了,一般是.obj文件組成,編譯程序將庫文件取出,然後連接好地址、分配內存,不會重新編譯的,編譯的是你寫的源文件。
換句話說,像printf這樣的函數已經編譯好了等你調用,已經是機器碼了。
⑽ Visual Studio 2019怎麼編譯C語言源程序
1、首先,打開C語言編輯器工具,然後在該工具中編寫程序的源代碼,如下圖所示,然後進入下一步。