999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺析編譯原理中編譯工作的基本流程及其實現

2019-03-30 03:30:00王佳林張美玲高涵
中國新通信 2019年24期

王佳林 張美玲 高涵

【摘要】? ? 編譯原理是研究如何將各種編程語言轉換為機器語言的一門科學。本文主要介紹了編譯原理中編譯工作的基本流程,以及各個流程在整個編譯工作過程中起到的作用,同時本文對編譯工作在實際的應用中是如何實現的這一問題進行了探討。

【關鍵詞】? ? 編譯技術? ? 機器語言? ? 詞法分析? ? 語法分析

一、編譯技術的產生

最早期的計算機編程是用機器語言編程,這種直接跟計算機硬件進行信息溝通的方式有很大的局限性。雖然機器語言能夠被計算機硬件直接識別并執行,具有靈活速度快的特點,但是機器語言對編程人員的要求門檻太高,它不容易被理解接受,并且記憶困難,極易出錯。編程人員使用機器語言編程往往要花費大量的時間和精力在編寫程序上,這大大影響了編程效率。為了提高程序的編寫效率,增強程序的可讀性,匯編語言和高級語言隨著科技的發展漸漸出現。匯編語言較為基礎,是高級語言形成過程中的中間產物。高級語言封裝性更強,在操作上更加簡便,在編寫和理解上也有更好的可讀性。高級語言和匯編語言都需要進行加工才能被計算機識別,這就需要一個能將這些指令轉化成機器指令的翻譯程序——編譯器。因為計算機能夠識別的只有二進制代碼,如何讓計算機識別并執行這些語言呢,這就是編譯原理所要研究的問題。

二、編譯的基本流程

(一)詞法分析階段。首先是詞法分析階段。在詞法分析階段中源程序按照從左到右的順序被依次掃描,掃描過程中源程序的字符流會按照規定好的構詞規則被識別成單詞符號,這一工作由詞法分析程序完成。此外,在詞法分析階段,詞法分析器除了能完成單詞符號的識別工作,還能夠對程序中的一些信息進行過濾,同時詞法分析程序可以將編譯時產生的錯誤信息對應到源程序的具體位置,便于程序修改。(二)語法分析階段。在語法分析階段,語法分析程序會將詞法分析中產生的單詞序列劃分成各類語法短語,并對源程序的結構進行正確性的判斷,檢查源程序中是否存在語法錯誤。根據語法分析中采用的方法的不同,語法分析在具體實現時又分為好多方法,其中每一種方法都有各自的適用情況和特點。(三)語義分析和中間代碼產生階段。在語義分析和中間代碼生成階段中,首先要進行的是語義分析工作。顧名思義語義分析主要進行語義審查,編譯器會審查程序中語法結構的靜態語義。程序中可能存在一些語法正確但是在規定限制下沒有意義的語句。語義分析的分析范圍有確定類型、類型檢查等。在完成語義分析并且分析無誤后,進入中間代碼產生階段,生成中間代碼,根據實際情況的不同中間代碼又分為逆波蘭式、三元式、四元式等形式,這些都是在具體程序內部涉及到的內容。(四)優化。所謂中間代碼優化指的是在不改變源程序運行結果的前提下,對中間代碼或目標代碼進行等價替換。優化后所產生的目標代碼運行時間更短,占用空間更小、效率更加高效。在整個編譯過程中都可以增加優化過程,但最突出的還是體現在中間代碼的優化上。(五)目標代碼生成。目標代碼生成是編譯的最后一個階段,在這一階段中,主要完成的任務是將前面產生的中間代碼轉化成特定機器上的機器語言或匯編語言。因為計算機只能識別機器語言,如果生成的目標代碼是匯編語言的形式,要將匯編代碼再轉化成機器代碼才能讓計算機運行。

三、編譯的實現

(一)預處理。預處理是指在對源程序進行編譯之前,要對程序中的一些特殊命令進行處理的工作。c語言中,編譯預處理命令以#開頭,這些預處理的命令被預處理程序處理替換后由編譯程序進行進一步加工。以c語言為例,編譯預處理有宏定義、文件包含、條件編譯等,程序人員編寫的*.c源程序文件經過預處理程序處理后,隨后進入編譯程序進行編譯最后生成目標程序*.obj。編譯預處理完成了標識符的替代工作,為編譯的順利進行打下基礎。(二)編譯。在編譯階段中對經過了預處理的源文件進行一連串的編譯工作,包括詞法分析,語法分析,語義分析以及優化等操作,最后生成相應的匯編代碼。編譯是通過編譯器實現的,在編譯器中會進行上述一系列的操作。(三)匯編。匯編工作由匯編器實現,匯編器負責匯編代碼向機器代碼的轉化工作,根據匯編指令和機器指令的對應關系表,將匯編代碼轉化成可執行文件,只有轉化成計算機能夠識別的二進制代碼,才可以交給計算機執行。(四)鏈接。最后就是鏈接操作,雖然在匯編階段源程序已經轉化成了計算機能夠識別的二進制代碼的形式,但是還要完成一些其他工作。因為在源程序中可能引用了其他頭文件中的函數,或者調用了其他庫中已有的函數,只有將這些全部鏈接在一起,才能保證程序的正確執行,這就是鏈接操作。很多時候開發人員不用自己去實現一些函數,而可以直接調用現有庫中的函數,既節省了時間,又可以減小出錯率。鏈接技術的實現大大降低了代碼的復寫率,提高了程序的開發效率。

結語:編譯技術像是在高級語言和計算機硬件系統之間架起了一座橋梁,它將高級語言進行編譯處理使其能夠在計算機上執行。自從有了編譯技術,程序編寫的效率明顯提升,計算機編程的門檻大大降低,使得更多的學者能夠投身于計算機編程領域。可以說編譯技術是計算機領域中的核心技術,研究編譯技術對計算機技術的發展有著重要意義。

參? 考? 文? 獻

[1]徐紅,陸紅陽.編譯原理實驗動態演示系統的設計與實現[J].電腦知識與技術,2005(27):86-88.

主站蜘蛛池模板: 四虎永久免费网站| 国产国产人在线成免费视频狼人色| 亚洲va欧美va国产综合下载| 麻豆精品国产自产在线| 中文字幕伦视频| 国产免费人成视频网| 一本二本三本不卡无码| 国产成人亚洲精品色欲AV | 丁香婷婷综合激情| 亚洲第一香蕉视频| 免费三A级毛片视频| 香蕉eeww99国产在线观看| 91在线一9|永久视频在线| 国产精品网址你懂的| 日韩在线2020专区| 亚洲va在线∨a天堂va欧美va| 国产在线精品美女观看| 中文字幕资源站| 国产午夜精品一区二区三| 啦啦啦网站在线观看a毛片| 亚洲乱码精品久久久久..| 久久久久久国产精品mv| 国产欧美日韩另类| 国产三区二区| 久久99国产精品成人欧美| 在线免费无码视频| 国产精品免费p区| 亚洲床戏一区| 久久综合九九亚洲一区| 精品国产成人国产在线| 久久特级毛片| 波多野结衣无码视频在线观看| 亚洲中文字幕手机在线第一页| 无码国产伊人| 日本尹人综合香蕉在线观看| 国产欧美在线观看一区| 狠狠色丁婷婷综合久久| 国产成人福利在线视老湿机| 免费 国产 无码久久久| 91久久精品国产| 日韩欧美中文字幕在线精品| 国产视频久久久久| 亚洲日本中文字幕天堂网| 亚洲免费人成影院| 人人妻人人澡人人爽欧美一区| 伊人久热这里只有精品视频99| 免费A∨中文乱码专区| 成人午夜福利视频| 精品91在线| 思思热精品在线8| 久久一本日韩精品中文字幕屁孩| 欧美精品高清| 久久这里只有精品23| 亚洲欧美一区二区三区图片| 91精品人妻互换| 国产精品开放后亚洲| 97视频免费看| 国产网站免费观看| 欧美日韩精品一区二区在线线| 有专无码视频| 久久久久中文字幕精品视频| 欧美亚洲第一页| 97视频精品全国免费观看| 国产在线精品香蕉麻豆| 超清无码熟妇人妻AV在线绿巨人| 中文字幕av无码不卡免费| 熟妇无码人妻| 欧美成人怡春院在线激情| 91久久大香线蕉| 无码专区在线观看| 亚洲av日韩综合一区尤物| 色老头综合网| 亚洲二区视频| 亚洲色中色| 一区二区三区四区精品视频| 自拍偷拍一区| 午夜成人在线视频| 成年人免费国产视频| www亚洲天堂| 中国国产A一级毛片| 欧美日本在线| 国产噜噜在线视频观看|