黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

首頁考試吧論壇Exam8視線考試商城網絡課程模擬考試考友錄實用文檔求職招聘論文下載
2013中考
法律碩士
2013高考
MBA考試
2013考研
MPA考試
在職研
中科院
考研培訓 自學考試 成人高考
四 六 級
GRE考試
攻碩英語
零起點日語
職稱英語
口譯筆譯
申碩英語
零起點韓語
商務英語
日語等級
GMAT考試
公共英語
職稱日語
新概念英語
專四專八
博思考試
零起點英語
托福考試
托業考試
零起點法語
雅思考試
成人英語三級
零起點德語
等級考試
華為認證
水平考試
Java認證
職稱計算機 微軟認證 思科認證 Oracle認證 Linux認證
公 務 員
導游考試
物 流 師
出版資格
單 證 員
報 關 員
外 銷 員
價格鑒證
網絡編輯
駕 駛 員
報檢員
法律顧問
管理咨詢
企業培訓
社會工作者
銀行從業
教師資格
營養師
保險從業
普 通 話
證券從業
跟 單 員
秘書資格
電子商務
期貨考試
國際商務
心理咨詢
營 銷 師
司法考試
國際貨運代理人
人力資源管理師
廣告師職業水平
衛生資格 執業醫師 執業藥師 執業護士
會計從業資格
基金從業資格
統計從業資格
經濟師
精算師
統計師
會計職稱
法律顧問
ACCA考試
注冊會計師
資產評估師
審計師考試
高級會計師
注冊稅務師
國際內審師
理財規劃師
美國注冊會計師
一級建造師
安全工程師
設備監理師
公路監理師
公路造價師
二級建造師
招標師考試
物業管理師
電氣工程師
建筑師考試
造價工程師
注冊測繪師
質量工程師
巖土工程師
造價員考試
注冊計量師
環保工程師
化工工程師
咨詢工程師
結構工程師
城市規劃師
材料員考試
監理工程師
房地產估價
土地估價師
安全評價師
房地產經紀人
投資項目管理師
環境影響評價師
土地登記代理人
繽紛校園 實用文檔 英語學習 作文大全 求職招聘 論文下載 訪談|游戲
軟件水平考試
軟件水平考試資訊
軟件水平考試試題
軟件水平考試專項輔導
軟件水平考試交流互動
軟件水平考試交流互動
您現在的位置: 考試吧 > 軟件水平考試 > 復習資料 > 系統分析師 > 正文

2012年軟考系統分析師經典教程:編譯程序

  2.4 編譯程序

  把用高級程序設計語言書寫的源程序,翻譯成等價的計算機匯編語言或機器語言書寫的目標程序的翻譯程序。編譯程序屬于采用生成性實現途徑實現的翻譯程序。它以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。編譯程序的實現算法較為復雜。這是因為它所翻譯的語句與目標語言的指令不是一一對應關系,而是一多對應關系;同時也因為它要處理遞歸調用、動態存儲分配、多種數據類型,以及語句間的緊密依賴關系。但是,由于高級程序設計語言書寫的程序具有易讀、易移植和表達能力強等特點,編譯程序廣泛地用于翻譯規模較大、復雜性較高、且需要高效運行的高級語言書寫的源程序。

  功能

  編譯程序的基本功能是把源程序翻譯成目標程序。但是,作為一個具有實際應用價值的編譯系統,除了基本功能之外,還應具備語法檢查、調試措施、修改手段、覆蓋處理、目標程序優化、不同語言合用以及人-機聯系等重要功能。

  ①語法檢查:檢查源程序是否合乎語法。如果不符合語法,編譯程序要指出語法錯誤的部位、性質和有關信息。編譯程序應使用戶一次上機,能夠盡可能多地查出錯誤。

  ②調試措施:檢查源程序是否合乎設計者的意圖。為此,要求編譯程序在編譯出的目標程序中安置一些輸出指令編譯程序,以便在目標程序運行時能輸出程序動態執行情況的信息,如變量值的更改、程序執行時所經歷的線路等。這些信息有助于用戶核實和驗證源程序是否表達了算法要求。

  ③修改手段:為用戶提供簡便的修改源程序的手段。編譯程序通常要提供批量修改手段(用于修改數量較大或臨時不易修改的錯誤)和現場修改手段(用于運行時修改數量較少、臨時易改的錯誤)。

  ④覆蓋處理:主要是為處理程序長、數據量大的大型問題程序而設置的。基本思想是讓一些程序段和數據公用某些存儲區,其中只存放當前要用的程序或數據;其余暫時不用的程序和數據,先存放在磁盤等輔助存儲器中,待需要時動態地調入。

  ⑤目標程序優化:提高目標程序的質量,即占用的存儲空間少,程序的運行時間短。依據優化目標的不同,編譯程序可選擇實現表達式優化、循環優化或程序全局優化。目標程序優化有的在源程序級上進行,有的在目標程序級上進行。

  ⑥不同語言合用:其功能有助于用戶利用多種程序設計語言編寫應用程序或套用已有的不同語言書寫的程序模塊。最為常見的是高級語言和匯編語言的合用。這不但可以彌補高級語言難于表達某些非數值加工操作或直接控制、訪問外圍設備和硬件寄存器之不足,而且還有利于用匯編語言編寫核心部分程序,以提高運行效率。

  ⑦人-機聯系:確定編譯程序實現方案時達到精心設計的功能。目的是便于用戶在編譯和運行階段及時了解內部工作情況,有效地監督、控制系統的運行。

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

  工作過程

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

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

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

  編譯程序的功能是把某些高級語言書寫的源程序翻譯成與之等價的低級語言(匯編語言或者機器語言)的目標程序。其過程可以分成6個階段。

 過程階段

任務及其特點

詞法分析階段

該階段的任務是從左到右逐個字符的讀入源程序,識別出一個個的單詞符號。 
詞法分析所依據的是語言的詞法規則,即描述單詞結構的規則。詞法規則可用3型文法(正規文法)或正規式來描述,有限自動機能識別正規文法所定義的語言和正規式所表示的集合。

語法分析階段

該階段任務是在詞法分析的基礎上將單詞符號序列分解成各類語法單元。
語法分析所依據的是語言的語法規則,即描述程序結構的規則。語法分析有自頂向下分析(遞歸子程序分析法LL1)和自底向上分析(LR和算符優先分析)兩大類。

語義分析階段

審查源程序有無語義錯誤,為代碼生成階段收集類型信息。

中間代碼生成階段

在進行了上述的語法分析和語義分析階段的工作之后,有的編譯程序將源程序變成一種內部表示形式,這種內部表示形式叫做中間語言或中間代碼。所謂“中間代碼”是一種簡單、含義明確的記號系統。

代碼優化階段

該階段是對前階段產生的中間代碼進行變換改造,目的是使生成的目標代碼更為高級,即省時間和省空間。優化所依據的原則是程序的等價變換規則。

目標代碼生成階段

此階段使把中間代碼變換成特定機器上的絕對指令代碼或可重定位的指令代碼或匯編指令代碼。

  其中,詞法分析和語法分析本質上都是對源程序的結構進行分析。而語義分析和中間代碼生成所依據的是語言的語義規則,一般采用語法指導翻譯和中間代碼生成。

  自底向上分析法采用一個后進先出棧的數據結構,是移進-規約過程(找出句柄)。

  自頂向下分析法必須改寫文法,采用預測分析法,要消除左遞歸和提取公共左因子。

  編譯過程6個階段的任務以及表格管理和出錯處理工作可分別由幾個模塊或程序完成,他們分別稱作詞法分析程序、語法分析程序、語義分析程序,中間代碼生成程序、代碼優化程序、目標代碼生成程序、表格管理程序和出錯處理程序。

1 2  下一頁

  相關推薦:

  2012年軟考系統分析師考試60天完美復習計劃

  2012年軟件水平考試網絡工程師章節筆記講義匯總

  2012年上半年軟件水平考試成績查詢匯總

文章搜索
軟件水平考試欄目導航
版權聲明:如果軟件水平考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本軟件水平考試網內容,請注明出處。
主站蜘蛛池模板: 国产高清精品自在久久 | 国产精品成人免费视频99 | 放荡的美妇一区二区三区 | 亚洲欧美日韩在线 | 天天干天日 | 欧美成人一区二区三区不卡 | jk制服啪啪网站 | 性欧美极品xxxx欧美一区二区 | 伦理剧在线 | 亚洲成a| 天天艹夜夜艹 | 国产精品 视频一区 二区三区 | 人人看人人看人做人人模 | 成人影院在线免费观看 | 欧美涩区 | 极品国产高颜值露脸在线 | 欧美xxxxx000| 狠狠看| 最近中文字幕免费在线看 | 一级毛片私人影院 | 久久精品国产免费一区 | 午夜激情一区 | 激情综合色五月丁香六月亚洲 | 大胸美女被强吻胸动态图片 | 国产日韩亚洲欧洲一区二区三区 | 欧美日韩在线国产 | 欧美三级超在线视频 | 天天拍拍天天爽免费视频 | 欧洲亚洲一区二区三区 | 欧美亚洲免费久久久 | 午夜寂寞影院视频在线观看 | 日皮视频免费看 | 成年人福利视频 | 青青青国产精品国产精品美女 | 香港三级日本三级人妇三级四 | 免费毛片看 | 亚洲伦理在线观看 | 黄色视屏在线看 | 亚洲免费视频在线 | 在线免费观看色片 | 欧美激情一区二区三区 |