高級語言直接編譯成機器語言
A. 將高級語言編寫的程序翻譯成機器語言程序採用什麼翻譯方式
將高級語言編寫的程序翻譯成機器語言程序採用編譯和解釋翻譯方式。
多數人使用的語言,如C、C++、Python、Java、Matlab、LabVIEW等等,都屬於高級語言,相對於低級語言,它更接近於平時正常的人思維,其最大的特點是編寫容易,代碼可讀性好。
實現同樣的功能,使用高級語言耗時更少,程序代碼量更短,更容易閱讀。其次,高級語言是可移植的,也就是說,僅需稍作修改甚至不用修改,就可將一段代碼運行在不同類型的計算機上。
其缺點也很明顯,使用高級語言編寫的程序運行時,需要先將其翻譯成低紙語言計算機才能運行它,在翻譯過程中可能程會產生一些多餘的部分,運行效率低些。另外,對硬體的可控性相對於低級語言弱些,目標代碼量較大。

(1)高級語言直接編譯成機器語言擴展閱讀
高級語言與計算機的硬體結構及指令系統無關,它有更強的表達能力,可方便地表示數據的運算和程序的控制結構,能更好的描述各種演算法,而且容易學習掌握。但高級語言編譯生成的程序代碼一般比用匯編程序語言設計的程序代碼要長,執行的速度也慢。
所以匯編語言適合編寫一些對速度和代碼長度要求高的程序和直接控制硬體的程序。高級語言、匯編語言和機器語言都是用於編寫計算機程序的語言。
高級語言程序「看不見」機器的硬體結構,不能用於編寫直接訪問機器硬體資源的系統軟體或設備控制軟體。
為此,一些高級語言提供了與匯編語言之間的調用介面。用匯編語言編寫的程序,可作為高級語言的一個外部過程或函數,利用堆棧來傳遞參數或參數的地址。
高級編程語言,作為用戶層面的編程工具,用戶並不需要去了解硬體的結構,而是去用邏輯的語言去實現想要的目標,但是因為高級編程語言的架構高於匯編,所以不能編寫直接訪問硬體資源的系統程序,因此,高級編程語言必須要調用匯編語言編寫的程序來訪問硬體地址。
B. 高級語言如何翻譯成機器語言
高級語言要執行須經過以下步驟:
高級語言——》匯編語言——》機器語言(0和1的代碼)
高級語言通過編譯其編譯成匯編語言,如:
c = a + b;//高級語言
add $s1 $t1 $t2 ; //匯編語言
再由匯編程序轉換成二進制代碼,如:
000000 10001 10010 01000 00000 100000
註:每條匯編語言都有唯一的機器語言與之對應
在翻譯成機器代碼後就要把機器代碼與原文件 鏈接 載入 於是就運行了
C. 通常高級語言轉化為機器語言是由什麼完成的
編譯程序。計算機只懂機器語言,而現在人們一般用高級語言編寫程序,將高級語言變為機器語言程序需經過編譯和解釋兩種方法。
D. 編譯程序就是將高級語言翻譯成機器語言
分類: 電腦/網路 >> 程序設計 >> 其他編程語言
問題描述:
編譯程序就是將高級語言翻譯成機器語言,比如VC,VB這一類工具。
像一個VBmini,也就有4,5M,能將這么多語言翻譯成0和1的組合嗎?
這些編譯工具在工作的時候要不要用到操作系統中的其它資源?
解析:
很顯然不是的.編譯程序實際上分為分析器,編譯器,連接器等.分析器裡面又分為詞法分析和語法分析.詞法分析就是將源程序里的關鍵字,變數等等的東西解析出來,通俗點說就是把一個英語句子中的單詞分析出來.而語法解析則是從語法的角度來看看源程序是否存在語法錯誤.真正將高級語言變為一系列0和1的東西是連接器,將N多的obj文件編譯為可以執行的exe.當然在這之前還要有編譯程序來編譯目標文件.現在的開發工具如VC,VB實際上是分析器+編譯器+連接器+調試工具的 *** .另外,如果你的程序要進行系統調用的話,比如socket程序的通訊.那麼需要和操作系統的資源打交道.實際上所有的IO操作,內存讀寫等等都要進行系統調用.哪怕是一個簡單的hello world!
