資料介紹
要閱讀本文,不需要太高深的編譯原理知識,甚至不需要編譯相關(guān)的知識。但是本文也不是面向?qū)?a href='http://www.makelele.cn/v/tag/1247/' target='_blank' class='arckwlink_none'>電腦一無所知的讀者的,你至少要知道:
1. 不管是exe可執(zhí)行文件還是Linux下的程序,都是一些二進(jìn)制代碼,我們稱之為機(jī)器語言。這些代碼的執(zhí)行和系統(tǒng)以及 CPU都有關(guān)。
2. 大部分情況下,編譯器是一種將高級語言翻譯成機(jī)器語言的程序。而任何程序本身也是一些機(jī)器語言的代碼。
3. 無論是高級語言、匯編語言還是機(jī)器語言,實際上都是等價的,唯一有區(qū)別的是,越高級的語言寫起來越容易(所以我們傾向于盡量多書寫高級語言代碼);同時,機(jī)器語言是可以直接運(yùn)行的。如果你覺得上面三條可以理解或者可以理解一部分,那么請繼續(xù)閱讀。另外,本文中提到的無論是編譯的過程還是語言的分類甚至是一些例子,都可以看做是一個簡化的模型。實際上,很少有一個exe程序就可以運(yùn)行的編譯器,現(xiàn)代的編譯器都是十分復(fù)雜的。不過,考慮這些簡化模型對我們沒有任何壞處,它們和實際情況相差并不很大

首先我來詳細(xì)解釋一下高級語言和機(jī)器語言。語言的所謂“高級”,實際上界定不是那么明確。不過我們可以確定的是:C++、Java、Python之流比匯編語言更高級,而匯編語言比機(jī)器語言更高級。這里提到一個匯編語言和機(jī)器語言的區(qū)分??赡苡行┳x者不明白這兩個概念的區(qū)別,實際上很簡單,匯編語言是我們會看到的那些MOV、JMP等命令組成的語言,而機(jī)器語言則純粹是是各種01串。我想沒有人會愿意寫一個機(jī)器語言的程序——實際上,我們學(xué)校的計算機(jī)組成實驗都是用Verilog HDL這種高級語言來完成的,而嵌入式原理實驗也是用一種匯編語言完成的;即使是做處理器和單片機(jī),也不會有人愿意去寫機(jī)器語言,畢竟一大堆01串太坑爹了。試想,讓你用 C++寫一個從1輸出到100的程序,幾行代碼就可以搞定;而匯編語言則可能需要幾十行;機(jī)器語言呢,Oh my god,一大堆 01000101110110101011111001……,看都看不懂,還寫啥啊。
但是上面也提到了,機(jī)器語言和高級語言的區(qū)別是,它可以直接運(yùn)行。比如exe程序,實際上它內(nèi)部存儲的就是一些機(jī)器語言的代碼,機(jī)器可以直接閱讀這些代碼并在處理器中運(yùn)行它們(這里說的不是完全準(zhǔn)確,比如.NET編譯出的exe程序?qū)嶋H上是一段中間代碼,由CLR解釋成機(jī)器代碼才能運(yùn)行——不過這可以暫且忽略,就當(dāng)作我說的是一個簡化的模型)。當(dāng)然程序的運(yùn)行是依賴機(jī)器架構(gòu)和系統(tǒng)的,不然Wine什么的也就沒有用了(什么是Wine?WINE = WINE Is Not an Emulator!有趣的名稱遞歸定義還有很多,不過與本文無關(guān),請自行Google)。而實際上,是機(jī)器架構(gòu)不同還是系統(tǒng)不同,并不是我們考慮的問題。我們考慮的問題只是,一段代碼在A機(jī)器和X系統(tǒng)下能否運(yùn)行,換到B機(jī)器和Y系統(tǒng)下又能否運(yùn)行。就算在A機(jī)器和X系統(tǒng)下能運(yùn)行,如果換成了A機(jī)器和Y系統(tǒng)之后不能運(yùn)行了,那對于我們這也可以看做兩臺不同的機(jī)器(也就是說,A機(jī)器和Y系統(tǒng)實際上就可以看做一個新的機(jī)器B)。所以之后的描述中,我們不考慮操作系統(tǒng)的情況,而是只考慮機(jī)器,我們編號為a、b 等,而它們上面可以運(yùn)行的機(jī)器語言我們編號為A、B等。
- OpenCV3.1教程之編譯的詳細(xì)資料說明 1次下載
- 主流的C語言編譯器詳細(xì)介紹
- 如何使用C語言實現(xiàn)軟復(fù)位詳細(xì)資料說明
- C語言編譯器常見的預(yù)編譯指令詳細(xì)資料說明
- 主流C語言編譯器的詳細(xì)資料介紹
- 華為的C語言編程規(guī)范的詳細(xì)資料說明 32次下載
- C語言教程之Makefile基礎(chǔ)的詳細(xì)資料說明 12次下載
- C語言程序設(shè)計教程之編譯預(yù)處理的詳細(xì)資料說明 2次下載
- 如何在AIX中安裝C語言編譯器 3次下載
- C語言編譯器MINGW的使用說明詳細(xì)資料概述 15次下載
- C語言編譯器中有哪些錯誤信息詳細(xì)中英文對比 13次下載
- 如何使用VS2013做C語言編譯器的創(chuàng)建方法詳細(xì)資料說明 8次下載
- 面向?qū)ο笈c圖形編程的詳細(xì)資料和實例說明 11次下載
- 如何使用編譯器顧問提高芯片的性能詳細(xì)資料概述 6次下載
- C語言編譯器 51次下載
- SEGGER編譯器優(yōu)化和安全技術(shù)介紹 支持最新C和C++語言 2.4k次閱讀
- 領(lǐng)域編譯器發(fā)展的前世今生 2.7k次閱讀
- 交叉編譯器安裝教程 4.6k次閱讀
- 編譯器把代碼轉(zhuǎn)化為機(jī)器碼的過程 7.9k次閱讀
- VScode編譯器如何配置C/C++編譯環(huán)境 7.5k次閱讀
- 第一個C語言編譯器的來源 3.1k次閱讀
- 鴻蒙系統(tǒng)用什么語言 華為方舟編譯器原理圖分析 7.4k次閱讀
- 如何選擇PIC單片機(jī)的C編譯器 5.9k次閱讀
- 深入編程語言和編譯器是怎樣工作的 5k次閱讀
- 編譯器原理到底是怎樣的帶你簡單的了解編譯器原理 1.2w次閱讀
- PLC常用基本環(huán)節(jié)梯形圖和詳細(xì)文字說明詳細(xì)資料概述 1.1w次閱讀
- verilog編譯指令_verilog編譯器指示語句(數(shù)字IC) 1.6w次閱讀
- 用于linux系統(tǒng)下編程的編譯器,掌握gcc的基本用法 6.1k次閱讀
- 編譯器是如何工作的_編譯器的工作過程詳解 1.8w次閱讀
- 編譯器跟編輯器有什么區(qū)別 3.3w次閱讀
下載排行
本周
- 1美的電磁爐電路原理圖資料
- 4.39 MB | 16次下載 | 10 積分
- 2反激式開關(guān)電源設(shè)計解析
- 0.89 MB | 2次下載 | 5 積分
- 3簡易光伏控制器原理圖資料
- 0.07 MB | 1次下載 | 5 積分
- 4TPS23755數(shù)據(jù)手冊
- 0.07 MB | 次下載 | 免費(fèi)
- 536伏,10兆赫茲低噪聲雙運(yùn)算放大器COS5532 技術(shù)手冊
- 0.41 MB | 次下載 | 免費(fèi)
- 6LM5176 55V 寬輸入電壓同步4開關(guān)降壓/升壓控制器技術(shù)手冊
- 2.40 MB | 次下載 | 免費(fèi)
- 7MCU模塊原理圖資料
- 0.37 MB | 次下載 | 1 積分
- 8LoRa1121 FCC&CE認(rèn)證 多頻段LoRa無線通訊模塊規(guī)格書
- 997.05 KB | 次下載 | 免費(fèi)
本月
- 1美的電磁爐電路原理圖資料
- 4.39 MB | 16次下載 | 10 積分
- 2冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 7次下載 | 10 積分
- 3SDFM 激光測距模塊模組手冊
- 0.54 MB | 7次下載 | 免費(fèi)
- 4直流電路的組成和基本定律
- 1.67 MB | 4次下載 | 免費(fèi)
- 5SW6238V ACCC 三 PD 四口多協(xié)議移動電源 SOC規(guī)格書
- 0.59 MB | 4次下載 | 1 積分
- 6安川A1000變頻器中文版說明書
- 20.16 MB | 3次下載 | 3 積分
- 7IP6742_datasheet_100V8A 同步 BUCK 控制器
- 2.16 MB | 3次下載 | 免費(fèi)
- 8PAW3395DM-T6QU:光學(xué)游戲?qū)Ш叫酒謨?/a>
- 1.26 MB | 2次下載 | 10 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191448次下載 | 10 積分
- 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81605次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73829次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論