備案號:遼ICP備19007957號-1
聆聽您的聲音:feedback@highmark.com.cn企業(yè)熱線:400-778-8318
Copyright ?2015- 海馬課堂網(wǎng)絡(luò)科技(大連)有限公司辦公地址:遼寧省大連市高新技術(shù)產(chǎn)業(yè)園區(qū)火炬路32A號創(chuàng)業(yè)大廈A座18層1801室
編譯這個詞是用來描述將高級語言(HLL)程序翻譯成機(jī)器語言程序的過程。盡管這種編譯的目的與匯編程序的目的相似,但編譯的問題比匯編程序的問題要復(fù)雜得多。編譯器是執(zhí)行編譯的程序。編譯器識別包含在一個給定的HLL中的程序,并為一個給定的計算機(jī)配置(硬件和操作系統(tǒng))創(chuàng)建相應(yīng)的打印程序。為了增進(jìn)同學(xué)們對編譯的理解,我們總結(jié)了編譯的重要階段。

編譯器中的詞法分析可以按照與匯編器中相同的方式執(zhí)行。一般來說,在 HLL 中,需要識別的標(biāo)記數(shù)量較多 - 各種關(guān)鍵字(例如for、while、if、else等)、標(biāo)點符號(例如逗號、分號、大括號等)、運算符(例如算術(shù)運算符、邏輯運算符等)、標(biāo)識符等。像lex或flex這樣的工具用于創(chuàng)建詞法分析器。
在將給定的輸入程序識別為有效后,編譯器嘗試用目標(biāo)環(huán)境的語言創(chuàng)建等效的程序。在匯編器的情況下,這種翻譯稍微簡單一些,因為輸入程序中每個語句中的助記操作碼隱含的操作有一些等效的機(jī)器操作碼。機(jī)器語言中每個操作適用的操作數(shù)數(shù)量與相應(yīng)的匯編語言助記符操作碼所允許的操作數(shù)數(shù)量相同。
因此,對于匯編語言,每個語句的翻譯幾乎可以獨立于程序的其余部分進(jìn)行。但是,在 HLL 的情況下,嘗試為輸入語言的每個語句關(guān)聯(lián)單個機(jī)器操作碼是徒勞的。原因之一是,如上所述,語句的范圍并不總是固定的,并且可能包含遞歸。此外,與目標(biāo)執(zhí)行環(huán)境可能直接支持的抽象相比,HLL 程序中的數(shù)據(jù)引用可以采取顯著的抽象級別。將含義(就機(jī)器可以支持的原始操作而言)與程序或程序段相關(guān)聯(lián)的任務(wù)稱為語義處理。
盡管將目標(biāo)語言操作與 HLL 程序中的語句關(guān)聯(lián)起來并不完全簡單,但 HLL 的 CFG 允許將各種語法規(guī)則的語義操作(或含義) 關(guān)聯(lián)起來。因此,在廣泛的翻譯任務(wù)中,當(dāng)解析輸入程序時,編譯器還會嘗試執(zhí)行與最終應(yīng)用的各種語法規(guī)則相對應(yīng)的某些語義操作。然而,大多數(shù) HLL 包含某些語法特征,需要使用一些附加信息(例如符號表的內(nèi)容)來確定這些語法特征的語義動作。因此,諸如符號表之類的數(shù)據(jù)結(jié)構(gòu)的構(gòu)建和使用是編譯器執(zhí)行的語義操作的重要部分。
在執(zhí)行語義處理后,獲得輸入程序的更易于管理的等效形式。這是使用一些中間代碼表示來存儲(表示)的,這使得進(jìn)一步的處理變得容易。在這種表示中,編譯器通常必須引入幾個臨時變量來存儲各種操作的中間結(jié)果。用于中間代碼的語言通常不是任何特定的機(jī)器語言,而是可以有效地轉(zhuǎn)換為所需的機(jī)器語言的語言(可以考慮使用某種形式的匯編語言)。
以中間代碼形式表示的程序通常在存儲空間以及預(yù)期輸出程序的運行時效率方面包含很大的優(yōu)化范圍。有時輸入程序本身就包含這樣的范圍。除此之外,生成中間代碼表示的過程通常為這種優(yōu)化留有很大的空間。因此,編譯器通常實施顯式步驟來優(yōu)化中間代碼。
最后,編譯器將中間代碼表示形式的(優(yōu)化的)程序轉(zhuǎn)換為所需的機(jī)器語言。需要注意的是,如果編譯器正在翻譯的程序?qū)嶋H上依賴于某些外部模塊,則必須對編譯器的輸出執(zhí)行鏈接。這些活動與輸入程序是 HLL 還是匯編語言無關(guān)。
海馬課堂專業(yè)課程輔導(dǎo),2300+嚴(yán)選碩博學(xué)霸師資,針對學(xué)生的薄弱科目和學(xué)校教學(xué)進(jìn)度,匹配背景相符的導(dǎo)師,根據(jù)學(xué)生情況進(jìn)行1V1專屬備課,上課時間靈活安排,中英雙語詳細(xì)講解課程中的考點、難點問題,并提供多方位的課后輔導(dǎo),輔助學(xué)生掌握全部課程知識,補(bǔ)足短板。
閱讀原文:http://cheshan.cn/news/13394_59.html
版權(quán)作品,未經(jīng)海馬課堂 highmarktutor.com 書面授權(quán),嚴(yán)禁轉(zhuǎn)載,違者將被追究法律責(zé)任。
24h在線客服



備案號:遼ICP備19007957號-1
聆聽您的聲音:feedback@highmark.com.cn企業(yè)熱線:400-778-8318
Copyright ?2015- 海馬課堂網(wǎng)絡(luò)科技(大連)有限公司辦公地址:遼寧省大連市高新技術(shù)產(chǎn)業(yè)園區(qū)火炬路32A號創(chuàng)業(yè)大廈A座18層1801室
499元
一節(jié)課
咨詢電話
咨詢電話:
186-0428-2029
在線咨詢
微信客服
微信咨詢
回到頂部
hmkt088