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

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

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

王佳林 張美玲 高涵

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

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

一、編譯技術的產生

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

二、編譯的基本流程

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

三、編譯的實現

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

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

參? 考? 文? 獻

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

主站蜘蛛池模板: 国产精品久久久久久影院| av在线5g无码天天| 日本人又色又爽的视频| 亚洲综合经典在线一区二区| 亚洲高清中文字幕| 日本一区高清| 精品伊人久久大香线蕉网站| 亚洲综合亚洲国产尤物| 亚洲AV一二三区无码AV蜜桃| 国产成人高清精品免费软件| 国产在线自乱拍播放| 国产超碰一区二区三区| 国产精品自在在线午夜区app| 国模粉嫩小泬视频在线观看| 国产大片喷水在线在线视频| 91福利免费视频| 亚洲精品桃花岛av在线| 欧美亚洲第一页| 欧美色综合网站| 欧美成人看片一区二区三区| 日本高清有码人妻| 91青青草视频在线观看的| 色窝窝免费一区二区三区 | 97超级碰碰碰碰精品| 在线免费无码视频| 99久久国产综合精品女同| 欧美怡红院视频一区二区三区| 久久综合五月婷婷| 国产精品亚欧美一区二区 | 99久视频| 亚洲无码视频喷水| 国产午夜一级淫片| 日韩专区第一页| 亚洲日韩精品欧美中文字幕 | 国产成人综合亚洲网址| 国产亚洲精品97AA片在线播放| 日韩视频免费| 国产精品思思热在线| 91区国产福利在线观看午夜 | 日韩AV手机在线观看蜜芽| 国产屁屁影院| 国产一区二区精品福利| 大陆精大陆国产国语精品1024| 国产成a人片在线播放| 国产女人在线观看| 91小视频在线观看| 国产综合亚洲欧洲区精品无码| 国产精品蜜臀| 999精品色在线观看| 欧美一级色视频| 成人在线观看不卡| 国产精品视频导航| 国产网站免费看| 啊嗯不日本网站| 亚洲天堂网2014| 好吊日免费视频| 国产精品欧美日本韩免费一区二区三区不卡 | 欧美亚洲一区二区三区在线| 男人天堂亚洲天堂| 亚洲国产一区在线观看| 又粗又大又爽又紧免费视频| 精品国产欧美精品v| 亚洲一区二区日韩欧美gif| 亚洲日韩高清在线亚洲专区| 欧美国产在线看| 中文无码日韩精品| 亚洲色图欧美| 欧美性久久久久| 亚洲第一黄色网址| 制服丝袜在线视频香蕉| 国产欧美亚洲精品第3页在线| 亚洲精品国产自在现线最新| 手机在线国产精品| 试看120秒男女啪啪免费| 国产精品无码久久久久AV| 中文字幕人成人乱码亚洲电影| 国产极品美女在线| 欧美国产视频| 国产精品99在线观看| 国产毛片高清一级国语| 欧美精品1区| 久久久久国色AV免费观看性色|