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

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

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

王佳林 張美玲 高涵

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

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

一、編譯技術的產生

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

二、編譯的基本流程

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

三、編譯的實現

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

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

參? 考? 文? 獻

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

主站蜘蛛池模板: 日韩黄色在线| 九九九九热精品视频| 911亚洲精品| 久久国产精品娇妻素人| 777午夜精品电影免费看| 欧美性久久久久| 日本a级免费| 69国产精品视频免费| 91亚洲精品第一| 在线日韩日本国产亚洲| 久久精品只有这里有| 福利在线免费视频| 日韩a在线观看免费观看| 欧美精品色视频| 99re经典视频在线| 国产精品视频a| 亚洲国产成人精品一二区| 欧美黄色网站在线看| 99人妻碰碰碰久久久久禁片| 欧美色视频网站| 在线观看国产黄色| 欧美性猛交一区二区三区| 天天爽免费视频| 永久免费无码成人网站| 国产高清免费午夜在线视频| 色综合a怡红院怡红院首页| 国产伦片中文免费观看| 成人一级黄色毛片| 国产中文一区a级毛片视频| 国产jizz| 97成人在线观看| 日韩精品一区二区三区免费在线观看| 国内熟女少妇一线天| 欧美日韩国产在线播放| 四虎国产永久在线观看| 亚洲福利视频一区二区| 黄片一区二区三区| 天堂av综合网| 久久久成年黄色视频| 久久免费视频播放| 天天综合网色| 亚洲精品成人7777在线观看| 全午夜免费一级毛片| 19国产精品麻豆免费观看| 一边摸一边做爽的视频17国产| 日韩高清无码免费| 国产精品视频导航| 国产一级二级在线观看| 精品一区国产精品| 六月婷婷激情综合| 亚洲中文字幕在线观看| 久久a级片| 亚洲日韩精品欧美中文字幕| 国产成人欧美| 婷婷99视频精品全部在线观看| 亚洲一区二区视频在线观看| 无码内射中文字幕岛国片| 中文字幕伦视频| 91视频99| 麻豆精品在线| 成人欧美日韩| 亚洲高清无码精品| 2021天堂在线亚洲精品专区| 久久久久亚洲精品成人网| www.av男人.com| 伊人91视频| 亚洲一区二区约美女探花| 国产成人在线小视频| 自拍欧美亚洲| 成人在线视频一区| 国产视频a| 国产日韩欧美在线视频免费观看| 91福利一区二区三区| 国产99精品视频| 色吊丝av中文字幕| 中文字幕在线日本| 亚洲日韩每日更新| 精品无码一区二区三区电影| 麻豆精品久久久久久久99蜜桃| 国产激爽大片高清在线观看| 欧美97色| 亚洲欧美日韩成人高清在线一区|