• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦>知識大全>知識百科>百科知識>

    編譯程序是什么意思工作過程是怎么樣的

    時間: 謝君787 分享

      編譯程序是指把用高級程序設計語言書寫的源程序,那么你對編譯程序了解多少呢?以下是由學習啦小編整理關于什么是編譯程序的內容,希望大家喜歡!

      編譯程序的介紹

      編譯程序屬于采用生成性實現途徑實現的翻譯程序。它以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。

      編譯程序詞組可以有兩種認識。

      一、編譯程序是一種動作,是根據編譯原理技術,由高級程序設計語言編譯器翻譯成機器語言二進制代碼行為。

      二、編譯程序是動名詞,特指生成編譯器的軟件程序。

      編譯程序的實現算法較為復雜。這是因為它所翻譯的語句與目標語言的指令不是一一對應關系,而是一多對應關系;同時也因為它要處理遞歸調用、動態存儲分配、多種數據類型,以及語句間的緊密依賴關系。但是,由于高級程序設計語言書寫的程序具有易讀、易移植和表達能力強等特點,編譯程序廣泛地用于翻譯規模較大、復雜性較高、且需要高效運行的高級語言書寫的源程序。

      編譯程序的功能

      編譯程序的基本功能是把源程序(高級語言)翻譯成目標程序。但是,作為一個具有實際應用價值的編譯系統,除了基本功能之外,還應具備語法檢查、調試措施、修改手段、覆蓋處理、目標程序優化、不同語言合用以及人-機聯系等重要功能。①語法檢查:檢查源程序是否合乎語法。如果不符合語法,編譯程序要指出語法錯誤的部位、性質和有關信息。編譯程序應使用戶一次上機,能夠盡可能多地查出錯誤。②調試措施:檢查源程序是否合乎設計者的意圖。為此,要求編譯程序在編譯出的目標程序中安置一些輸出指令,以便在目標程序運行時能輸出程序動態執行情況的信息,如變量值的更改、程序執行時所經歷的線路等。這些信息有助于用戶核實和驗證源程序是否表達了算法要求。③修改手段:為用戶提供簡便的修改源程序的手段。編譯程序通常要提供批量修改手段(用于修改數量較大或臨時不易修改的錯誤)和現場修改手段(用于運行時修改數量較少、臨時易改的錯誤)。④覆蓋處理:主要是為處理程序長、數據量大的大型問題程序而設置的?;舅枷胧亲屢恍┏绦蚨魏蛿祿媚承┐鎯^,其中只存放當前要用的程序或數據;其余暫時不用的程序和數據,先存放在磁盤等輔助存儲器中,待需要時動態地調入。⑤目標程序優化:提高目標程序的質量,即占用的存儲空間少,程序的運行時間短。依據優化目標的不同,編譯程序可選擇實現表達式優化、循環優化或程序全局優化。目標程序優化有的在源程序級上進行,有的在目標程序級上進行。⑥不同語言合用:其功能有助于用戶利用多種程序設計語言編寫應用程序或套用已有的不同語言書寫的程序模塊。最為常見的是高級語言和匯編語言的合用。這不但可以彌補高級語言難于表達某些非數值加工操作或直接控制、訪問外圍設備和硬件寄存器之不足,而且還有利于用匯編語言編寫核心部分程序,以提高運行效率。⑦人-機聯系:確定編譯程序實現方案時達到精心設計的功能。目的是便于用戶在編譯和運行階段及時了解內部工作情況,有效地監督、控制系統的運行。

      早期編譯程序的實現方案,是把上述各項功能完全收納在編譯程序之中。然而,習慣做法是在操作系統的支持下,配置調試程序、編輯程序和連接裝配程序,用以協助實現程序的調試、修改、覆蓋處理,以及不同語言合用功能。但在設計編譯程序時,仍須精心考慮如何與這些子系統銜接等問題。

      編譯程序的工作過程

      編譯程序必須分析源程序,然后綜合成目標程序。首先,檢查源程序的正確性,并把它分解成若干基本成分;其次,再根據這些基本成分建立相應等價的目標程序部分。為了完成這些工作,編譯程序要在分析階段建立一些表格,改造源程序為中間語言形式,以便在分析和綜合時易于引用和加工(圖1)。

      數據結構分析和綜合時所用的主要數據結構,包括符號表、常數表和中間語言程序。符號表由源程序中所用的標識符連同它們的屬性組成,其中屬性包括種類(如變量、數組、結構、函數、過程等)、類型(如整型、實型、字符串、復型、標號等),以及目標程序所需的其他信息。常數表由源程序中用的常數組成,其中包括常數的機內表示,以及分配給它們的目標程序地址。中間語言程序是將源程序翻譯為目標程序前引入的一種中間形式的程序,其表示形式的選擇取決于編譯程序以后如何使用和加工它。常用的中間語言形式有波蘭表示、三元組、四元組以及間接三元組等。

      分析部分源程序的分析是經過詞法分析、語法分析和語義分析三個步驟實現的。詞法分析由詞法分析程序(又稱為掃描程序)完成,其任務是識別單詞(即標識符、常數、保留字,以及各種運算符、標點符號等)、造符號表和常數表,以及將源程序換碼為編譯程序易于分析和加工的內部形式。語法分析程序是編譯程序的核心部分,其主要任務是根據語言的語法規則,檢查源程序是否合乎語法。如不合乎語法,則輸出語法出錯信息;如合乎語法,則分解源程序的語法結構,構造中間語言形式的內部程序。語法分析的目的是掌握單詞是怎樣組成語句的,以及語句又是如何組成程序的。語義分析程序是進一步檢查合法程序結構的語義正確性,其目的是保證標識符和常數的正確使用,把必要的信息收集和保存到符號表或中間語言程序中,并進行相應的語義處理。


    看過“編譯程序的工作過程”的人還看了:

    1.編譯時分配內存嗎?

    2.學習編程需要的時間以及方法

    3.編譯和調試的區別

    4.編程心得體會范文

    5.臺式機散熱器工作原理是什么

    編譯程序是什么意思工作過程是怎么樣的

    編譯程序是指把用高級程序設計語言書寫的源程序,那么你對編譯程序了解多少呢?以下是由學習啦小編整理關于什么是編譯程序的內容,希望大家喜歡! 編譯程序的介紹 編譯程序屬于采用生成性實現途徑實現的翻譯程序。它以高級程序設計語言書
    推薦度:
    點擊下載文檔文檔為doc格式
    1567452 主站蜘蛛池模板: 国产精品女同一区二区| 无人在线观看视频高清视频8| 国产成人午夜福利在线播放 | 99精品视频在线观看re| 火车上荫蒂添的好舒服视频| 国内大量揄拍人妻精品視頻| 亚洲一区免费在线观看| 青青青国产精品一区二区| 性色欲情网站iwww| 亚洲神级电影国语版| 日本免费人成在线网站| 无码任你躁久久久久久| 人妻中文字幕无码专区| 44444色视频在线观看| 日日夜夜天天久久| 任你躁欧美一级在线精品| awyy爱我影院午夜| 抽搐一进一出gif免费视频| 人妖系列免费网站观看| 免费视频爱爱太爽了| 我叫王筱惠第1部分阅读| 亚洲精品亚洲人成在线观看麻豆 | 欧美日韩综合在线视频免费看| 国产成人综合亚洲一区| 中文字幕中文字幕中中文| 毛片在线播放a| 在线中文字幕不卡| 久久婷婷五月综合97色| 秋葵视频在线观看在线下载| 国产精品亚洲成在人线| 中文字幕精品视频在线观| 毛片免费在线观看网站| 国产免费久久久久久无码| 久久国产精品免费一区二区三区 | 国产成人yy免费视频| 性按摩xxxx| 亚洲jizzjizz在线播放久| 精品无码久久久久久久动漫| 国产美女牲交视频| 中文字幕免费在线观看| 欧美日韩亚洲电影网在线观看|