版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、編譯原理II電子教案第一章第一章 緒論緒論謝強(qiáng)謝強(qiáng)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院QQ:7878414上一頁下一頁2課程簡(jiǎn)介課程簡(jiǎn)介 編譯原理II是一門理論與實(shí)踐緊密結(jié)合的計(jì)算機(jī)相關(guān)專業(yè)的專業(yè)基礎(chǔ)課,是我們信息安全專業(yè)的專業(yè)選修課。編譯器的編寫涉及到程序設(shè)計(jì)語言、計(jì)算機(jī)體系結(jié)構(gòu)、語言理論、算法和軟件工程等學(xué)科,是計(jì)算機(jī)科學(xué)技術(shù)的重要基礎(chǔ)。另外,編譯原理課程中蘊(yùn)涵著許多計(jì)算機(jī)學(xué)科中解決問題的思路、抽象問題和解決問題的方法,這對(duì)計(jì)算機(jī)科學(xué)技術(shù)專業(yè)的學(xué)生今后學(xué)習(xí)其它專業(yè)課程和從事科研工作非常重要。課程主要介紹程序設(shè)計(jì)語言編譯程序構(gòu)造的一般原理、基本設(shè)計(jì)方法和主要實(shí)現(xiàn)技術(shù)。課程內(nèi)容主要包括:編
2、譯過程和編譯程序的結(jié)構(gòu),文法的構(gòu)造,有限自動(dòng)機(jī)、正規(guī)表達(dá)式和正規(guī)文法的等價(jià)性,消除文法的左遞歸和回溯,預(yù)測(cè)分析表的構(gòu)造,LR分析表的構(gòu)造,屬性的計(jì)算,翻譯模式的構(gòu)造、主要語句的的翻譯,運(yùn)行時(shí)存儲(chǔ)空間的分配,基于DAG的局部?jī)?yōu)化,循環(huán)優(yōu)化等。上一頁下一頁3前修課程、能力和知識(shí)結(jié)構(gòu)要求前修課程、能力和知識(shí)結(jié)構(gòu)要求 本課程的先修課程包括:離散數(shù)學(xué)(1),離散數(shù)學(xué)(2),計(jì)算機(jī)科學(xué)導(dǎo)論,程序設(shè)計(jì)語言(1),程序設(shè)計(jì)語言(2),數(shù)據(jù)結(jié)構(gòu)等,學(xué)生通過上述課程的學(xué)習(xí)需要熟悉計(jì)算機(jī)的基本結(jié)構(gòu),具有分析問題和進(jìn)行形式化思維的能力,掌握高級(jí)程序設(shè)計(jì)語言和數(shù)據(jù)結(jié)構(gòu)。上一頁下一頁4課程結(jié)構(gòu)說明課程結(jié)構(gòu)說明 課程內(nèi)容分
3、為四大部分:詞法分析、語法分析、語義分析及中間代碼的產(chǎn)生、優(yōu)化。主要內(nèi)容包括為:文法、有限自動(dòng)機(jī)、詞法分析、LL(1)分析、算符優(yōu)先分析、LR分析、屬性文法及語法制導(dǎo)的翻譯、中間語言及高級(jí)語言主要語句的翻譯、運(yùn)行時(shí)存儲(chǔ)空間的組織、中間代碼的優(yōu)化等。課程主要以課堂教學(xué)為主,動(dòng)手實(shí)踐為輔,其中詞法分析和語法分析分別安排上機(jī)實(shí)驗(yàn)。上一頁下一頁5課程考核形式與要求課程考核形式與要求 課程考核采用閉卷考試方法,考核成績(jī)由平時(shí)成績(jī)+上機(jī)+考試組成,其中平時(shí)成績(jī)包括考勤、上課情況和作業(yè)情況,分?jǐn)?shù)可以以平時(shí)成績(jī)(20%)+上機(jī)(10%)+考試(70%),可以根據(jù)實(shí)際情況略做調(diào)整。重點(diǎn)在于考查學(xué)生對(duì)主要知識(shí)的理
4、解和靈活應(yīng)用,試題中一般不會(huì)出現(xiàn)識(shí)記題??荚嚨闹攸c(diǎn)在于詞法分析、語法分析(自上而下、自下而上),知識(shí)單元分?jǐn)?shù)分配大致為:緒論5%,文法15%,詞法分析20%,語法分析30%,語義分析15%,存儲(chǔ)空間的組織5%,優(yōu)化10%。上一頁下一頁6學(xué)習(xí)編譯原理的重要作用學(xué)習(xí)編譯原理的重要作用 通過本課程的學(xué)習(xí),使學(xué)生掌握和理解編譯系統(tǒng)的結(jié)構(gòu)、工作流程以及編譯程序各組成部分的設(shè)計(jì)原理和實(shí)現(xiàn)技術(shù),獲得分析、設(shè)計(jì)、實(shí)現(xiàn)和維護(hù)編譯系統(tǒng)的初步能力; 通過學(xué)習(xí)編譯的理論和方法,提高學(xué)生對(duì)程序設(shè)計(jì)語言、操作系統(tǒng)、計(jì)算機(jī)原理和體系結(jié)構(gòu)等課程知識(shí)的綜合理解。對(duì)于將來從事編譯系統(tǒng)設(shè)計(jì)工作的學(xué)生來說,編譯原理課程將為其打下堅(jiān)實(shí)
5、的能力和知識(shí)基礎(chǔ); 編譯原理蘊(yùn)涵著抽象問題、解決問題的思路、方法和技術(shù),對(duì)學(xué)生今后的學(xué)習(xí)和研究有很重要的作用。 編譯程序是計(jì)算機(jī)系統(tǒng)中的系統(tǒng)軟件,包含許多軟件設(shè)計(jì)和開發(fā)技術(shù),為學(xué)生提供了一個(gè)大型軟件設(shè)計(jì)的參考。 課程介紹的經(jīng)典的語言分析方法和工具,對(duì)于設(shè)計(jì)一些實(shí)用的工具和軟件,如自然語言理解、網(wǎng)絡(luò)信息處理、網(wǎng)絡(luò)協(xié)議的分析與實(shí)現(xiàn)等,都是必備的基礎(chǔ)。此外,學(xué)習(xí)這門課程有利于對(duì)程序設(shè)計(jì)語言的理解,有利于迅速掌握新的語言工具。上一頁下一頁7參考書參考書1 Alfred V.Aho,Monica S.Lam,Ravi Sethi,等著, 趙建華,鄭滔,等 譯,編譯原理(第二版),機(jī)械工業(yè)出版社,2009
6、.1 (龍書)(龍書)2 (美)安佩爾,(美)金斯伯格 著,趙克佳,黃春,沈志宇 譯,現(xiàn)代編譯原理-C語言描述,人民郵電出版社,2006.4 (虎書)(虎書)3 (美)Steven S.Muchnick著,趙克佳,沈志宇譯,高級(jí)編譯器設(shè)計(jì)與實(shí)現(xiàn),機(jī)械工業(yè)出版社,2005.7 (鯨書)(鯨書)4 Kenneth C. Louden 著,馮博琴 馮嵐 等譯,編譯原理及實(shí)踐(Compiler Construction Principles and Practice),機(jī)械工業(yè)出版社,2000.3上一頁下一頁8本章的主要內(nèi)容本章的主要內(nèi)容 什么是編譯程序 編譯程序的邏輯結(jié)構(gòu) 編譯程序各階段的工作 編譯
7、程序的組織上一頁下一頁9本章要求本章要求 清楚編譯程序的總框架,了解編譯程序工作的大致過程,能分辨清楚編譯前端與后端的區(qū)別及其相互配合的方法,要清楚編譯程序是如何生成的。請(qǐng)大家記憶并理解以下概念: 編譯程序,解釋程序,翻譯程序,目標(biāo)機(jī)、源語言、目標(biāo)語言、編譯程序?qū)崿F(xiàn)語言、掃描器,分析器,編譯前端與后端,符號(hào)表,“遍”的概念等。上一頁下一頁10本章教學(xué)線索本章教學(xué)線索1 編譯程序的概念及功能編譯程序的概念及功能 1.1 為什么要用編譯器 1.2 翻譯程序 1.3 編譯程序 1.4 編譯程序與解釋程序 1.5 編譯器的發(fā)展階段2 編譯程序的邏輯結(jié)構(gòu)及過程概述編譯程序的邏輯結(jié)構(gòu)及過程概述3 編譯程序
8、(器)的組織編譯程序(器)的組織4 編譯程序的生成編譯程序的生成上一頁下一頁111.1 為什么要用編譯器為什么要用編譯器機(jī)器語言:C7 06 0000 0002 匯編語言:匯編語言:MOV X, 2 高級(jí)語言:高級(jí)語言:x = 2 上一頁下一頁12階乘的C語言實(shí)現(xiàn)算法描述,求某整數(shù)n的階乘fact(n), n0 1 / n = 0 fact(n) = n * fact( n-1 ) / n! = n * (n-1)!. 偽語言描述fact(n) = if n 0 then 1 else n*fact(n-1). 高級(jí)程序設(shè)計(jì)語言描述,(如C語言)int fact( int n )if (n=
9、0) return 1;else return ( n*fact(n-1);上一頁下一頁13c 程序 foo.cAnsi C compiler ccObject fileLinker/連接程序a.out/可執(zhí)行程序庫函數(shù)或其它object文件編譯和執(zhí)行過程a.out/可執(zhí)行程序loader/裝入程序計(jì)算機(jī)輸入數(shù)據(jù)計(jì)算結(jié)果上一頁下一頁141.2 翻譯程序翻譯程序翻譯程序(器)翻譯程序(器):接受某種語言的源語言程序后,將它改造成另一種邏輯上等價(jià)邏輯上等價(jià)的目標(biāo)語言程序。 匯編程序:匯編程序:源語言為匯編語言,目標(biāo)語言為機(jī)器語言的翻譯程序。 編譯程序(器):編譯程序(器):源語言為高級(jí)語言,目標(biāo)語
10、言是低級(jí)語言(匯編或機(jī)器語言)的翻譯程序。 上一頁下一頁151.3 編譯程序編譯程序把高級(jí)語言程序翻譯成等價(jià)的低級(jí)語言程序編譯程序目標(biāo)程序編譯系統(tǒng):編譯程序和運(yùn)行程序源語言程序編譯程序編譯程序:就是能夠把某種語言程序(稱為:源語言程序)轉(zhuǎn)換成另一種語言程序(稱為:目標(biāo)語言程序)的程序,而后者與前者在邏輯上是等價(jià)的。源語言:源語言:一般指某種高級(jí)語言,易于理解和掌握。目標(biāo)語言:目標(biāo)語言:匯編語言、機(jī)器語言等宿主機(jī):宿主機(jī):運(yùn)行編譯程序的計(jì)算機(jī)目標(biāo)機(jī):目標(biāo)機(jī):運(yùn)行編譯程序產(chǎn)生目標(biāo)代碼的計(jì)算機(jī) 。編譯程序?qū)崿F(xiàn)語言:編譯程序?qū)崿F(xiàn)語言:用于生成編譯程序的語言。C、Java、C#、Fortran、Ada、
11、Pascal上一頁下一頁161.4 編譯程序與解釋程序編譯程序與解釋程序 高級(jí)語言程序高級(jí)語言程序也可通過解釋程序來執(zhí)行 解釋程序:以源程序?yàn)檩斎?,在?zhí)行過程中不再產(chǎn)生目標(biāo)程序,而是邊解釋邊執(zhí)行。 解釋程序運(yùn)行效率不高,空間開銷大。 目前,純粹的解釋程序已不多見,通常是將編譯和解釋作某種程度的結(jié)合。 編譯程序是現(xiàn)今任何計(jì)算機(jī)系統(tǒng)的最重要的系統(tǒng)程序。 本課程的目的,在于向大家介紹設(shè)計(jì)和構(gòu)造編譯程序的基本原理和基本方法,其中許多方法也適用于構(gòu)造解釋程序或匯編程序。上一頁下一頁171.5 編譯器的發(fā)展階段編譯器的發(fā)展階段Fortran編譯器的開發(fā)Chomsky文法19541957 IBM 的 Joh
12、n BackusNoam Chomsky分析問題(詞法分析、語法分析、語義分析)6070年代代碼優(yōu)化編譯器的自動(dòng)構(gòu)造70年代后期80年代早期編譯器本身算法的發(fā)展IDE80年代以后1975 Yacc:Steve Johnson Lex:Mike Lesk并行編譯技術(shù)上一頁下一頁18本章教學(xué)線索本章教學(xué)線索1 編譯程序的概念及功能編譯程序的概念及功能2 編譯程序的邏輯結(jié)構(gòu)及過程概述編譯程序的邏輯結(jié)構(gòu)及過程概述 2.1編譯程序的結(jié)構(gòu) 2.2編譯程序的主要過程 2.3表格和表格管理 2.4出錯(cuò)處理3 編譯程序(器)的組織編譯程序(器)的組織4 編譯程序的生成編譯程序的生成上一頁下一頁192.1 編譯程
13、序的結(jié)構(gòu)編譯程序的結(jié)構(gòu)詞法分析器詞法分析器語法分析器語法分析器語義分析與中間代碼產(chǎn)生器語義分析與中間代碼產(chǎn)生器優(yōu)化器優(yōu)化器目標(biāo)代碼生成器目標(biāo)代碼生成器源程序源程序目標(biāo)代碼目標(biāo)代碼表表格格處處理理出出錯(cuò)錯(cuò)處處理理單詞符號(hào)單詞符號(hào)語法單位語法單位中間代碼中間代碼中間代碼中間代碼編譯程序的邏輯結(jié)構(gòu)編譯程序的邏輯結(jié)構(gòu) 上一頁下一頁202.2 編譯程序的主要過程編譯程序的主要過程第一階段:詞法分析(第一階段:詞法分析(lexical analysis or scanning) 詞法分析的任務(wù):輸入源程序,對(duì)構(gòu)成源程序的字符串進(jìn)行掃描和分解,識(shí)別出一個(gè)一個(gè)的單詞。如:基本字、標(biāo)識(shí)符、常數(shù)、算符和界符(標(biāo)點(diǎn)
14、符號(hào)、括號(hào)、分號(hào)等)?;咀钟址Q為保留字,界符又稱為分隔符。 詞法分析階段遵循詞法規(guī)則。上一頁下一頁21例1-1:PROGRAM m; VAR a,b,c:real; BEGIN a:=b+c*60; END. 例2-2 for I:= 1 to 100 do 上一頁下一頁22第二階段:語法分析(第二階段:語法分析(syntax analysis or parsing) 語法分析的任務(wù):在詞法分析的基礎(chǔ)上,根據(jù)語言的語法規(guī)則,把單詞符號(hào)串分解成各類語法單位(語法范疇),如“短語”、“子句”、“句子”和“程序”等。通過語法分析,確定整個(gè)輸入串是否構(gòu)成語法上正確的“程序”。語法分析遵循語法規(guī)則,常
15、用的語法規(guī)則用上下文無關(guān)文法描述。 注意:1.詞法分析是一種線性分析,而語法分析是一種層次結(jié)構(gòu)的分析。 2.有的編譯程序在識(shí)別出各類語法單位后,構(gòu)造并輸出一棵表示語法結(jié)構(gòu)的語法樹。上一頁下一頁23比如:A = B+C*60其中 B+C*60代表一個(gè)“算術(shù)表達(dá)式”,因此,語法分析就是要識(shí)別B+C *60為算術(shù)表達(dá)式,并且識(shí)別上述整個(gè)符號(hào)串為賦值語句這個(gè)范疇。賦值語句賦值語句變量變量A=表達(dá)式表達(dá)式表達(dá)式表達(dá)式項(xiàng)項(xiàng)因子因子B+項(xiàng)項(xiàng)項(xiàng)項(xiàng)*因子因子C因子因子60賦值語句賦值語句 A = B+C*60的語法分析樹的語法分析樹上一頁下一頁24 這一階段的任務(wù):對(duì)語法分析所識(shí)別出的各類語法范疇分析其含義,并
16、進(jìn)行初步翻譯,產(chǎn)生中間代碼。包括兩方面的工作: 靜態(tài)語義檢查。 中間代碼的翻譯。這一階段所依循的是語言的語義規(guī)則語義規(guī)則。 第三階段第三階段 語義分析和中間代碼的產(chǎn)生語義分析和中間代碼的產(chǎn)生 semantic analysis and intermediate code generation上一頁下一頁25 中間代碼:是一種含義明確、便于處理的記號(hào)系統(tǒng),它通常獨(dú)立于具體硬件。常見的記號(hào)系統(tǒng)有:四元式、三元式、間接三元式、逆波蘭式、樹形表示等。四元式:算符算符左操作數(shù)左操作數(shù)右操作數(shù)右操作數(shù)結(jié)果結(jié)果例子:A = B + C*60 四元式表示 NO算符左操作數(shù)右操作數(shù)結(jié)果(1)*C60T1(2)+
17、BT1T2(3)=T2A 例子:A = B + C*60 四元式表示上一頁下一頁26樹形表示(抽象語法樹): 樹形表示(抽象語法樹): =AB*C 60+生成中間代碼:temp1 =C * 60temp2 =B +temp1A =temp2上一頁下一頁27第四階段第四階段 優(yōu)化(優(yōu)化(code optimization) 優(yōu)化階段的任務(wù):對(duì)前一階段產(chǎn)生的中間代碼進(jìn)行加工交換,以期在最后階段能夠產(chǎn)生出運(yùn)行效率更高的(省時(shí)間和空間)的目標(biāo)代碼。優(yōu)化的主要方法有:公共子表達(dá)式的提取、強(qiáng)度削弱、刪除無用代碼等。 for K:= 1 to 100 do begin M := I + 10*K ; N :
18、= J + 10*K ;endM := IN := Jfor K:= 1 to 100 do begin M :=M + 10 ;N := N + 10;end優(yōu)化上一頁下一頁28第五階段第五階段 目標(biāo)代碼的生成目標(biāo)代碼的生成 code generation 這一階段的任務(wù):把中間代碼(或經(jīng)過優(yōu)化處理之后)變換成特定機(jī)器上的低級(jí)語言代碼。目標(biāo)代碼的形式: 絕對(duì)指令代碼 可重定位的指令代碼 匯編代碼A := B + C * 60.0的匯編指令: LD R0,60.0 MUL R0,C ADD R0,B ST R0,A上一頁下一頁29using System;namespace ConsoleAp
19、plication1 class Program static void Main(string args) int i = 0; int j = 1; i = i + j; Console.WriteLine(i is: 0,i); .method private hidebysig static void Main(string args) cil managed .entrypoint / 代碼大小 27 (0 x1b) .maxstack 2 .locals init (int32 V_0, int32 V_1) IL_0000: nop IL_0001: ldc.i4.0 IL_00
20、02: stloc.0 IL_0003: ldc.i4.1 IL_0004: stloc.1 IL_0005: ldloc.0 IL_0006: ldloc.1 IL_0007: add IL_0008: stloc.0 IL_0009: ldstr i is: 0 IL_000e: ldloc.0 IL_000f: box mscorlibSystem.Int32 IL_0014: call void mscorlibSystem.Console:WriteLine(string, object) IL_0019: nop IL_001a: ret / end of method Progr
21、am:Main上一頁下一頁302.3 表格和表格管理表格和表格管理 符號(hào)表:用來登記源程序中出現(xiàn)的每個(gè)名字以及名字的各種屬性。一般符號(hào)表包括:名字欄和信息欄。 當(dāng)掃描器識(shí)別出一個(gè)名字(標(biāo)志符)后,它把該名字填入到符號(hào)表中。名字的各種屬性需要在后續(xù)的各個(gè)階段填入。上一頁下一頁312.4 出錯(cuò)處理出錯(cuò)處理 編譯程序在各個(gè)階段應(yīng)診斷和報(bào)告源程序中的錯(cuò)誤,包括詞法錯(cuò)誤,語法錯(cuò)誤,語義錯(cuò)誤等。編譯程序應(yīng)報(bào)告出錯(cuò)地點(diǎn),并給出簡(jiǎn)明準(zhǔn)確的提示信息。 比如詞法分析階段能夠檢測(cè)出“非法字符”之類的錯(cuò)誤;語法分析階段能夠檢測(cè)出諸如“括號(hào)不匹配”、“缺少;”之類的錯(cuò)誤。語義錯(cuò)誤包括:說明錯(cuò)誤、作用域錯(cuò)誤、類型不一致等
22、。上一頁下一頁32本章教學(xué)線索本章教學(xué)線索1 編譯程序的概念及功能編譯程序的概念及功能2 編譯程序的邏輯結(jié)構(gòu)及過程概述編譯程序的邏輯結(jié)構(gòu)及過程概述3 編譯程序(器)的組織編譯程序(器)的組織 3.1 前端與后端 3.2 遍(PASS)(趟) 3.3 分析與綜合4 編譯程序的生成編譯程序的生成上一頁下一頁333.1 前端與后端前端與后端前端:主要與源語言有關(guān)但與目標(biāo)機(jī)無關(guān)的那些部分,一般包括:詞法分析、語法分析、語義分析與中間代碼產(chǎn)生等;后端:包括編譯程序中與目標(biāo)機(jī)有關(guān)的那些部分,如與目標(biāo)機(jī)有關(guān)的代碼優(yōu)化和目標(biāo)代碼生成等。后端不依賴于源程序而僅僅依賴于中間語言。 源程序前端后端目標(biāo)代碼中間代碼僅
23、僅依賴于源程序僅僅依賴于目標(biāo)計(jì)算機(jī)源程序1源程序2源程序3源程序n前端后端目標(biāo)代碼1目標(biāo)代碼2目標(biāo)代碼3目標(biāo)代碼n中間代碼上一頁下一頁343.2 遍(遍(PASS)(趟)(趟) 對(duì)輸入文件(源程序或其等價(jià)的中間形式)從頭到尾掃描,完成預(yù)定的處理,生成新的中間結(jié)果或目標(biāo)程序。 using System;namespace ConsoleApplication1 class Program static void Main(string args) int i = 0; int j = 1; i = i + j; Console.WriteLine(i is: 0,i); 一遍一遍上一頁下一頁35
24、3.3 分析與綜合分析與綜合 將分析源程序以計(jì)算其特性的編譯器操作歸為編譯器的分析部分,而將生成翻譯代碼時(shí)所涉及到的操作歸為編譯器的綜合部分。分析:詞法分析、語法分析、語義分析綜合:中間代碼的產(chǎn)生、優(yōu)化、目標(biāo)代碼的產(chǎn)生 目前:分析正趨向于易懂和更具數(shù)學(xué)性,而綜合則要求 更深的專業(yè)技術(shù)。詞法分析語法分析語義分析中間代碼產(chǎn)生代碼優(yōu)化代碼生成源程序源程序目標(biāo)程序目標(biāo)程序符號(hào)表管理出錯(cuò)管理上一頁下一頁36本章教學(xué)線索本章教學(xué)線索1 編譯程序的概念及功能編譯程序的概念及功能2 編譯程序的邏輯結(jié)構(gòu)及過程概述編譯程序的邏輯結(jié)構(gòu)及過程概述3 編譯程序(器)的組織編譯程序(器)的組織4 編譯程序的生成編譯程序的
25、生成 4.1 T形圖 4.2 編譯程序的自展 4.3 已知一種語言的編譯器,構(gòu)造另一種語言的編譯器 4.4 編譯程序的移植 4.5 具有代表意義的自動(dòng)化編譯工具 4.6 .NET的公共語言運(yùn)行環(huán)境上一頁下一頁374.1 T形圖形圖 T形圖 L1語言要在A機(jī)器上運(yùn)行,需要生成的目標(biāo)代碼為A的機(jī)器代碼,如果我們用A的機(jī)器代碼來實(shí)現(xiàn)L1語言的編譯系統(tǒng),可以表示為: L1 AA原始編譯器S T I源語言目標(biāo)機(jī)機(jī)器語言編譯程序?qū)崿F(xiàn)語言T形圖上一頁下一頁384.2 編譯程序的自展編譯程序的自展目標(biāo):在機(jī)器A(目標(biāo)機(jī))上,用語言A(實(shí)現(xiàn)語言)構(gòu)造高級(jí)語言L(源語言)的編譯程序。L A AStep1:可以考慮
26、源語言L的子集語言S, S L。在機(jī)器A(目標(biāo)語言)上,用語言A(實(shí)現(xiàn)語言)構(gòu)造語言S的編譯程序。Step2: 在機(jī)器A上,用語言S(實(shí)現(xiàn)語言)構(gòu)造語言L的編譯程序。L A SL A SS A AL A AS A AStep3:上一頁下一頁394.3 已知一種語言的編譯器,構(gòu)造另已知一種語言的編譯器,構(gòu)造另一種語言的編譯器一種語言的編譯器有另一種語言L2語言,我們可以用L1語言編寫L2語言的編譯程序,這樣L2語言經(jīng)編譯后可以生成在A機(jī)器上運(yùn)行目標(biāo)程序??梢员硎緸椋?L2 A L1L1 AAL2 AA上一頁下一頁404.4 編譯程序的移植編譯程序的移植 利用A機(jī)器上已有的高級(jí)語言L編寫一個(gè)在B機(jī)器上運(yùn)行的高級(jí)語言L的編譯程序。 分析:B機(jī)器上運(yùn)行的L的編譯程序P,就是將L語言編寫的源程序經(jīng)過P編譯后,產(chǎn)生為B機(jī)器代碼的目標(biāo)代碼。P的作用就是產(chǎn)生L語言的B機(jī)器代碼。P是B機(jī)器代碼構(gòu)成。 做法:先用L語言編寫能夠在A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版應(yīng)急通訊基站搭棚施工合同參考2篇
- 二零二五版交通事故車輛維修及賠償協(xié)議2篇
- 二零二五年度食品飲料品牌授權(quán)銷售合同范本2篇
- 二零二五年度儲(chǔ)罐安裝與環(huán)保驗(yàn)收合同4篇
- 2025年度個(gè)人理財(cái)產(chǎn)品投資及收益分配合同4篇
- 2025年度生物質(zhì)能發(fā)電項(xiàng)目承包清工勞務(wù)合同模板4篇
- 二零二五年度玻璃工藝品設(shè)計(jì)與生產(chǎn)合作協(xié)議
- 二零二五年度轉(zhuǎn)租協(xié)議甲乙丙三方權(quán)益保障合同
- 2025年度跨境電商股權(quán)退出撤資協(xié)議書
- 二零二五年度餐廳租賃合同附餐飲行業(yè)趨勢(shì)研究合作
- 2025年春新滬科版物理八年級(jí)下冊(cè)全冊(cè)教學(xué)課件
- 2025屆高考語文復(fù)習(xí):散文的結(jié)構(gòu)與行文思路 課件
- 電網(wǎng)調(diào)度基本知識(shí)課件
- 拉薩市2025屆高三第一次聯(lián)考(一模)語文試卷(含答案解析)
- 《保密法》培訓(xùn)課件
- 回收二手機(jī)免責(zé)協(xié)議書模板
- (正式版)JC∕T 60023-2024 石膏條板應(yīng)用技術(shù)規(guī)程
- (權(quán)變)領(lǐng)導(dǎo)行為理論
- 2024屆上海市浦東新區(qū)高三二模英語卷
- 2024年智慧工地相關(guān)知識(shí)考試試題及答案
- GB/T 8005.2-2011鋁及鋁合金術(shù)語第2部分:化學(xué)分析
評(píng)論
0/150
提交評(píng)論