導航:首頁 > 源碼編譯 > 編譯原理的目標代碼是什麼

編譯原理的目標代碼是什麼

發布時間:2025-09-01 11:13:22

❶ 什麼是目標代碼

目標代碼是指源代碼經過編譯程序產生的能被CPU直接識別的二進制代碼。
目標代碼的形式
目標代碼生成是以中間代碼作為輸入,將其轉換成特定機器的機器語言或匯編語言作為輸出。在此以四元式序列作為它的加工對象,輸出目標代碼的形式有三種:具有絕對地址的機器語言程序,具有相對地址的機器碼程序和匯編指令程序。

具有絕對地址的機器語言程序在存儲空間中有固定的存儲位置,一旦產生此種形式的目標代碼之後,便可立即執行,因此這種形式最為迅速有效,但它並不靈活,不適合大型程序。
具有相對地址的機器語言程序由若干個目標模塊組成,各個模塊中都包含目標程序中的一部分代碼,可將它們裝人到存儲空間的任何位置,然後由連接裝配程序將它們連接在一起之後執行。顯然,連接裝配程序增加了開銷,但這種形式有較大的靈活性,所以為許多編譯程序所採用。
目標代碼生成程序可以產生匯編語言形式的目標代碼,這種形式在實現上要比前兩種形式容易。當然,這種形式的目標代碼還需經匯編後才能成為可執行代碼。

目標代碼的生成
目標代碼生成是編譯程序的最後一個工作階段,其任務是把經優化處理之後的中間代碼變換成特定機器上的機器語言程序或匯編語言程序,實現最終的翻譯工作。由於目標語言依賴於硬體系統,因而如何充分利用現有的寄存器以節省訪問內存的時間,合理地選擇執行速度快的指令,生成盡可能短且有效的目標代碼是這個階段考慮的主要問題。

如果代碼生成程序以四元式形式的中間代碼序列作為輸入,在其生成目標代碼時,可假定每個四元式中的運算符及運算對象的數據類型均已知道,所需的全部類型轉換操作均已在中間代碼中得到體現。此外,如果出現在程序中的全部符號名運行時所需的存儲空間均已得到分配,它們所在的數據區編號及相對地址已分別填人符號表各相應登記項欄中。所以在四元式中,僅出現符號名在符號表中登記項的序號。
參考文獻
龍馬工作室編著.第8章 CSS+Div常見用法 Dreamweaver CS5從新手到高手.人民郵電出版社,2011.02.
張晶主編.第11章 目標代碼生成 編譯原理.哈爾濱工程大學出版社,2011.08.
王麗芳,張靜,李富萍等編著.第三章 程序設計語言和方法 計算機科學導論.清華大學出版社,2012.01.

❷ 編譯原理

編譯原理是計算機科學中的一慎昌門重要課程,主要研究如段配何將高級程序語言轉化為機器語言寬燃扒的過程。它涉及到多個領域,如語言學、數學、計算機硬體和操作系統等。編譯器是實現這一過程的關鍵工具,它可以將程序源代碼轉化為可執行的機器代碼。

❸ 編譯原理第三版清華大學

「編譯原理」是計算機專業非常重要的一門專業課,在計算機教學中有著舉足輕重的地位。

編譯原理中編譯系統是整個計算機系統中極其重要的系統軟體,它的作用是把計算機高級語言最終翻譯成等價的計算機指令,從而保證高級程序設計語言順利運行。所以,「編譯原理」是計算機科學中基本研究內容之一。

編譯器:編譯器是計算機程序中應用比較多的工具,在對編譯器進行前端設計時,一定要充分考慮影響因素,還要對詞法、語法、語義進行分析。

過程分析:將高級程序設吾言,如C、C++、Java等,翻譯成計算機可以執行的機器指令代碼流的過程,即是編譯的過程。編譯過程一般分為6個步驟,即詞法分析、語法分析、語義分析、中間代碼生成、中間代碼優化、目標代碼生成。

❹ C語言編譯執行的全過程是怎樣的

不明白樓主什麼意思,就是先把你的代碼轉為匯編代碼,然後轉為二進制文件,讀入內存執行。

❺ 編譯原理簡單嗎

編譯原理主要是講了編譯器的實現。
那什麼是編譯器呢?
編譯器就是將 源程序→編譯器 →目標機器代碼的程序
本文將用一段最簡單的代碼進行說明

1 + 2 + 3

第一步. 詞法分析
當代碼從文件中被讀入到編輯器時,將會進行詞法分析
示例中的代碼最終會轉換為(下面為偽代碼)

1 ADD 2 ADD 3

第二步. 語法分析
這一步編譯器將會把詞法分析的結果轉換成AST(abstract syntax tree, 抽象語法樹)
所有的操作數將會作為子節點,所有的操作符將會作為父節點。(不知道的同學可以看一下樹的生成)

1 + 2 + 3 對應的樹
3. 生成目標代碼
對上面的樹進行後序遍歷,將會得到下面的偽代碼

((1 2 +) 3 +)

生成的匯編偽代碼為

START:

MOV VALUE, 0//初始化結果為0

ADD VALUE, 1

ADD VALUE, 2//(1 2 +)的匯編偽代碼

ADD VALUE, 3

RET VALUE

END

最終匯編代碼會被編譯成機器代碼,在計算機上執行。
下面為一般情況下的編譯流程
1. 詞法分析(生成代碼對應的token序列,使用正則表達式)
2. 語法分析(生成AST)
3. 語義分析(對代碼的語法進行檢查)
4. 代碼生成(生成可執行的代碼)

閱讀全文

與編譯原理的目標代碼是什麼相關的資料

熱點內容
程序員帶新人怎麼 瀏覽:772
查看文件夾的隱藏內容 瀏覽:993
客戶網路維護的伺服器是什麼 瀏覽:763
java短url 瀏覽:143
編程啟蒙教育是什麼意思 瀏覽:270
數學型編程 瀏覽:701
易捷pdf轉換器 瀏覽:995
360加固了什麼反編譯 瀏覽:866
程序員坐久了腰疼 瀏覽:901
伺服器參數如何查看 瀏覽:258
蚊帳加密50d什麼意思 瀏覽:276
python連接websocket 瀏覽:726
程序員的殺毒軟體 瀏覽:262
android信息發布 瀏覽:911
普里姆演算法適合構造稠密圖 瀏覽:667
命令與征服將軍的彩蛋 瀏覽:99
編譯原理的目標代碼是什麼 瀏覽:171
程序員能直接訪問的寄存器 瀏覽:585
怎麼卸載ftp伺服器軟體 瀏覽:872
lunix安裝php 瀏覽:943