freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[工學(xué)]編譯原理第1章-資料下載頁

2024-10-15 12:01本頁面
  

【正文】 1 := R1 + R2 id1 := R1 id1 := id2 + id3 * x := y + z * 60。 52 各階段工作的歸納 1 詞法分析 :識別單詞 , 至少分以下幾大類:關(guān)鍵字 ( 保留字 ) 、 標(biāo)識符 、 字面量 、 特殊符號; 2 語法分析 :得到語言結(jié)構(gòu)并以樹的形式表示; 3 語義分析 :考察結(jié)構(gòu)正確的句子是否語義合法 , 可修改樹結(jié)構(gòu); 4 中間代碼生成 (可選):生成一種既接近目標(biāo)語言,又與具體機(jī)器無關(guān)的表示,便于優(yōu)化與代碼生成; 5 中間代碼優(yōu)化 (可選):局部優(yōu)化、循環(huán)優(yōu)化、全局優(yōu)化等;優(yōu)化實(shí)際上是一個(gè)等價(jià)變換,變換前后的指令序列完成同樣的功能,但是,在占用的空間上和程序執(zhí)行的時(shí)間上都更省、更有效。 6 目標(biāo)代碼生成 :不同形式的目標(biāo)代碼-匯編 、 可重定位 、 內(nèi)存形式( LoadandGo) 。 7 符號表管理 :合理組織符號 , 便于各階段查找 、 填寫等; 8 出錯(cuò)處理 :錯(cuò)誤的種類-詞法錯(cuò)、語法錯(cuò)、靜態(tài)語義錯(cuò)、動態(tài)語義錯(cuò)。 53 編譯器分析(前端) 綜合(后端)語法/語義分析 代碼生成/優(yōu)化源程序 中間代碼 目標(biāo)代碼 1. 前端 :語言結(jié)構(gòu)的分析; 2. 后端 :語言意義的分析與處理; 3. 中間代碼 :前端與后端的分界; 4. 編譯器基礎(chǔ)架構(gòu) ( Infrastructure) :源代碼的中間表示 、 一組前端 、 一組后端; 編譯器的分析 /綜合模式 編譯器掃描的遍數(shù) 1. 每個(gè)階段將程序完整分析一遍的工作模式稱為一遍掃描 。 早期編譯器的一遍定義為從外存讀入內(nèi)存再寫到外存; 2.確定掃描遍數(shù)的因素: (a) 軟、硬件條件,如內(nèi)存太小,或全局優(yōu)化 (b) 語言結(jié)構(gòu),如規(guī)定標(biāo)識符的先聲明后引用 … x := f(a, b, c)。 … function f(a:integer。 b:integer): integer。 (c)編譯技術(shù),如拉鏈-回填 … goto lab1。 … lab1: … 編譯程序的組織 語法分析 程序 語義分析及 代碼生成程序 詞法分析 程序 整理目標(biāo)程序 源程序 目標(biāo)程序 停機(jī) 開始 56 編譯器的編寫 1.直接使用匯編語言和程序設(shè)計(jì)語言; 2.利用編譯器編寫工具:詞 /語法、語法制導(dǎo)翻譯、代碼生成、數(shù)據(jù)流分析等; 3.基于編譯器基礎(chǔ)架構(gòu)的編譯器構(gòu)造系統(tǒng)(開放式編譯器,如 GCC、 SUIF等)。 編譯技術(shù)的發(fā)展和應(yīng)用 據(jù)說第一個(gè)編譯程序的出現(xiàn)是在 20世紀(jì) 50年代早期,很難講出確切的時(shí)間,因?yàn)楫?dāng)初大量的實(shí)驗(yàn)和實(shí)現(xiàn)工作是由不同的小組獨(dú)立完成的,多數(shù)早期的編譯工作是將算術(shù)公式翻譯成機(jī)器代碼。用現(xiàn)在的標(biāo)準(zhǔn)來衡量,當(dāng)時(shí)的編譯程序能完成的工作十分初步,如只允許簡單的單目運(yùn)算,數(shù)據(jù)元素的命名方式有很多限制。然而它們奠定了對高級語言編譯系統(tǒng)的研究和開發(fā)的基礎(chǔ)。隨著編譯技術(shù)的發(fā)展和社會對編譯程序需求的不斷增長, 20世紀(jì) 50年代末有人開始研究編譯程序的自動生成工具,提出并研制編譯程序的編譯程序。它的功能是以任一語言的詞法規(guī)則、語法規(guī)則和語義解釋出發(fā),自動產(chǎn)生該語言的編譯程序。 目前很多自動生成工具已廣泛使用,如詞法分析程序的生成系統(tǒng) LEX,語法分析程序的生成系統(tǒng) YACC等。 20世紀(jì) 60年代起,不斷有人使用自展技術(shù)來構(gòu)造編譯程序。自展的主要特征是用被編譯的語言來書寫該語言自身的編譯程序。1971年, PASCAL的編譯程序用自展技術(shù)生成后,其影響就越來越大。 隨著并行技術(shù)和并行語言的發(fā)展,處理并行語言的并行編譯技術(shù),將串行程序轉(zhuǎn)換成并行程序的自動并行編譯技術(shù)也正在深入研究之中。 另外嵌入式應(yīng)用迅速增長的需求,推動了交叉編譯技術(shù)的發(fā)展 .還有系統(tǒng)芯片設(shè)計(jì)方法和關(guān)鍵EDA技術(shù)的研究,也帶動了專用語言 VHDL等及其編譯技術(shù)的不斷深化。 59 ,將高級語言的程序翻譯成低級語言的程序。 階段的工作。 ,但編譯技術(shù)會應(yīng)用在很多領(lǐng)域。 :源語言,源程序,目標(biāo)語言,目標(biāo)程序,語言轉(zhuǎn)換系統(tǒng),編譯程序的 T型圖表示。 本章小結(jié) 思考題 ① 為什么需要編譯程序? ② 用源程序片段 if (a=b+1) {b = a * a 。 … }… 為例,考慮編譯過程中它可能的不同表示形式來理解編譯各階段的工作。 ③ 比較你所使用過的一些語言的編譯程序:他們的編譯速度,出錯(cuò)信息的可讀性,有無優(yōu)化選擇等等。 例 有一 Pascal的過程如下所示 (1) procedure sample(y: integer)。 {過程頭 } (2) var x : integer。 {過程體 ( 開始 ) } (3) begin x := y。 (4) if x100 then x := 0 (5) end。 {過程體 ( 結(jié)束 ) } (1)是過程頭 , 它是一個(gè)聲明性的語句 , 為使用者提供調(diào)用信息 , 包括過程名 、 參數(shù) 、 返回值 ( 如果有的話 ) 等 。 ( 接口 ) (2)至 (5)是過程體 , 它是一個(gè)語句序列 。 語句序列中既包括聲明性語句也包括操作性語句 。 ( 實(shí)現(xiàn) ) (2)是聲明性語句 , 而 (3)至 (5)是操作性語句 。 對于編譯器來講 , 它對聲明性語句的處理一般是生成相應(yīng)的 環(huán)境 ( 存儲空間 ) , 而對操作性語句則是生成此環(huán)境中的 可執(zhí)行代碼序列 。 為了便于編譯器的處理 , 操作性語句中使用的每個(gè)操作對象 , 均應(yīng)在使用前聲明 , 即符合 先聲明后引用 的原則 。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1