编译原理讲义.doc_第1页
编译原理讲义.doc_第2页
编译原理讲义.doc_第3页
编译原理讲义.doc_第4页
编译原理讲义.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章1) 把用汇编语言或高级语言写成的程序转换成机器语言的程序,被称为翻译程序。汇编语言的翻译程序称为汇编程序 把高级语言的翻译程序称为编译程序。可以采用边翻译边执行的解释执行方式,这种处理程序称为解释程序。解释程序的结果是源程序的执行结果。2) 编译有哪些部分组成?每个部分的作用?词法分析:输入源程序,对构成源程序的字符串进行扫描和分析,识别出一个个的单词(符号)如关键字,标识符,常数,算符,界符。语法分析:在词法分析的基础上,根据语言的语法规则,把单词符号分解成各类语法单位(如短语、句子等),并构造一棵能够正确反映该结构的语法树。作用:通过语法分析确定整个输入是否构成语法上正确的“程序”。注意:词法分析是种线性分析,而语法分析是一种层次分析。中间代码生成:任务:语义分析的基础上按语言的语义规则进行初步的翻译(产生中间代码)中间代码:是一种含义明确、便于处理的记号系统,它通常独立具体的硬件;表示形式:四元式、三元式、间接三元式等中间代码优化:任务:对前阶段产生的中间代码进行加工变换,以期在最后阶段能产生出更为高效的目标代码。目标代码生成:任务:把中间代码变换成特定机器上的低级语言代码(目标代码)目标代码形式:绝对指令代码、可重定位指令代码、汇编指令代码表格管理:错误处理:3) 编译前后端的划分?前端:此法分析、语法分析、中间代码生成、中间代码优化。后端:目标代码生成及和硬件有关的工作。第三章4) 符号和符号串的概念1、字母表:它是非空有穷集。 例如:=a,b,c或=1,2,32、符号:字母表中的元素称为符号。3、符号串:符号的有穷序列,符号串也称为字。用来表示空符号串。 例如:a,ab,abc,dsfsd4、长度:符号串的长度是指该串所包含的符号个数。用|x|表示符号串x的长度。例如:|a|=1,|abn|=35、连结:设x和y为符号串,则称xy 为他们的连结。 例如:x=aa,y=bb,则XY=aabb 6、空集:不含任何元素的集合,记为F。7、乘积:设A和B是符号串集,则用AB表示A和B的乘积。例如:X=a,b,Y=c,d,则XY=ac,ad,bc,bd8、方幂:设A为符号串集,则定义 A0= A1=A An=An-1 A 例如:A=a,b 则有: A0= A1=a,b A2=aa,ab,ba,bb 9、正闭包:设A为符号串集,则用A+表示A的正闭包,其具体定义如下: A+=A1A2A3 例如:A=a,A+=a,aa,aaa,10、星闭包:设A为一集合,则定义A的星闭包为A* ,其具体定义如下A*=A0A+ 例如:A=a,A*=,a,aa,aaa, 5) 巴克斯范式(EBNF),能够写出巴克斯范式带的叫非终止符,不带的叫终止符。 例如:True|False例子 A=an|n1,其BNF表示有:(1) Aa|aA (2) Aa|Aa A=a2n|n1,其BNF表示有:(1) Aaa|aaA(2) Aaa|Aaa例子:判定字符串a4y是 y y 4y 4y a4y标识符:以字母开头以后由字母和数字组成的符号串。a|b|z 0|1|9例子:的巴科斯范式 例子: 我 我 我是 我是 我是大学生例子:整数(1)单个数字是整数 (2)整数再接上数字仍是整数用BNF范式表示: 0|1|2|9 |所以合起来有: | 0|1|2|9 6) 文法定义:文法是一个四元组G(VN,VT,P,Z)。 非终极符集记为VN(大写字母)、终极符集记为VT(小写字母)、产生式集记为P、初始符记为Z。7) 名词:1、直接推导:设x和y是符号串,若用一次产生式可从x导出y,则称y为x的直接推导,并记为xy。 例子:x=Ab,y=ab,Aa,Abab+=+=2、推导:若用若干次产生式可从x串导出y串,则称y为x的推导,并记为x y。 例子:x=AB,Aa,Bb ABaBab 即:AB ab 。8) 语法树定义: 设G=(VN,VT,P,S)是给定文法,则称满足下面条件的树为G的一棵语法树。 每个结点都标有G的一个文法符号,且根结点标有初始符S,非叶结点标有非终极符。 如果一个非叶结点A有n个儿子结点(从左到右)B1,B2,Bn,则AB1B2,Bn一定是G的一个产生式。如果每步都是最右非终极字符,则也称该规范推导为最右推导。例子:GS:SAB AAa|bB Ba|SbSABbBBbaB(最左推导)SABASbAABbAAabAbBab (最右推导) SABASbbBSbbaSb(非左非右)定义:如果一个文法G存在某个句子,使得它有两棵语法树,则称G为二义性文法。例子:证明 G:EE+E|E*E|(E)|i 则G是二义性文法。因为句子i+i*i具有两棵语法树分别如图所示。2、证明下列文法GS 是二义性文法: Sif E then S else S | if E then S解:设有if E1 then if E2 then S1 else S2 ,则有两棵语法树:1、设有文法GN: ND|ND D0|1|2|9 (1)试写出021和4321的最右推导和 最左推导。(2)试举出三个无最右推导的句型。 解:(1)021的最左推导: NNDNDDDDD0DD 02D 021 021的最右推导: NNDN1ND1N21 D21021解:4321的最左推导: NNDNDDNDDDDDDD 4DDD43DD432D4321 4321的最右推导: NNDN1ND1N21 ND21N321D3214321(2)无最右推导的句型 NNDN1ND1DD14D1定理 1、每个句型都有一棵语法树,每个语法树的叶组成一句型。 2、每棵子树的叶组成短语,每棵简单子树的叶组成简单短语,最左简单子树的叶组成句柄。 3、用语法树可证明每个句子都有一规范推导。 (1)试写出i*i/(i+i*i)的语法树。 (2)试写出句型(F+i)-T*(F*i)的短语、最简单短语、和句柄。 (3)试写出句型T*F*(T+i)的最右推导。3、设有文法GE: ET|E+T|E-T TF|T*F|T/F Fi|(E)解:(1)i*i/(i+i*i)的语法树 短语:第一个F,F+i,i, 第二个F,i, F*i(F+i),(F*i), T*(F*i),(F+i)-T*(F*i)简单短语:第一个F,i, 第二个Fi句柄:第一个F (3)最右推导:ETT*FT*(E)T*(E+T) T*(E+F)T*(E+i)T*(T+i) T*F*(T+i)4、设有文法: 求bBABb和baabaab的全部短语、简单短语、句柄短语:第一个a,ba,baa, 第二个ba,baa,baab, 第三a,第四个a,baabaab简单短语:第一个a,第三个a, 第四个a 句柄:第一个a SAB AAa AbB Ba BSb字符串:bBABb 短语:bB,AB,ABb简单短语:bB,AB 句柄:bB例子:GS:SAB AAa|bB例子:直接递归:AAa BaBB左递归:SQc|c QRb|b RSa|aQRbSabQcab QQcab Ba|Sb 例子:考虑下面文法 EE+T|T TT*E|F F(E)|i用上述方法可以改写为: ETE E+TE|e TFT T*ET|e F(E)|i2.多余规则不可到达:所有推导均不会用到此规则不可终止:推导不出终结符号串例子: 文法GS: (1) SBe (5)Ae (2) BCe不可终止 (6)CCf不可终止 (3) BAf (7)Df不可达 (4) AAe定理 任一文法G1,可构造文法G2,使得L(G2)=L(G1)且G2中没有产生式。(去除)例子:设有文法 G:AaBbD DBB B|b解:B DBB b=B,D则有=B,D删去产生式得: AaBbD DBB Bb 再扩充下面产生式: AabD AaBb Aab DB第四章1) 定义 正则表达式 设为给定字母表,RE表示上正则表达式之集,则定义: 1.,RE 2.若a,则aRE 3.若e1,e2RE,则(e1|e2)RE,(e1e2)RE,(e1)*RE 定理 设e1 ,e2RE,则有: 1:L(e1|e2)=L(e2|e1) 2:L(e1|e2)|e3)=L(e1|(e2|e3) 3:L(e1e2)e3)=L(e1(e2e3) 4:L(e1(e2|e3)=L(e1e2|e1e3) 5:L(e1|e2)e3)=L(e1e3|e2e3) 6:L(e1)=L(e1)=L(e1) 2) 定义 设eRE,则定义函数L(e)如下: L()= F L()= L(a)=a L(e*)= L(e)* L(e1|e2)= L(e1)L(e2) L(e1 e2)= L(e1)L(e2)例子:=a,b L(a*)=,a,aa L(ba*)=b,ba,baa L(a|ba*)=a,b,ba L(aa|bb|ab|ba)=aa,bb,ab,ba 1、写出非负整数的正则表达式。例子:1234或0或1023 0123或123 非法|0|1|2|91|2|9 3) 确定自动机:2、写出以非5数字为开头的所有非负整数之集的正则表达式。例子:1234或0或1023 0123或5123 非法解:D=1|2|9 E=1|2|3|4|6|7|8|9 L=0|E(0|D)* 总结: 对于简单的自动机,利用构造算法消除边,然后进行确定化。 对于复杂的自动机,利用闭包的算法进行处理。1、构造下列正则式相应的DA: (1)1(0|1)*101 (2)1(1010*|1(010)*1)*0 (3)a(a|b)*|ab*a)b (4)b(ab)*|bb)*ab2、已知NDA=(x,y,z,0,1,M,x,z), 其中:M(x,0)=z,M(y,0)=x,y, M(z,0)=x,z, M(x,1)=x, M(y,1)=,M(z,1)=y,构造相应的DA。第五章一、自顶向下方法:从文法的初始符出发导出句型。 实际上是一种穷举的试探方法。例:G(S): SABc AaB|a BAb|b判别 aabc 是否为文法G的句子 。解:SABc AAbc Aabc aabcFirst集、follow集、select集* 求select(A)的算法: 求first()。若first(),则令Select (A)=first()。否则求follow(A)并令Select(A)=first()follow(A)。例子: GZ: ZaA Abfirst(Z)=afirst(A)=bfollow(Z)=#follow(A)= follow(Z)=#select(ZaA)=aselect(Ab)=b例子: GZ: ZAB Aa| Bb|first(AB)=a,b,Follow(Z)=#select(ZAB) =first(AB)follow(Z)=a,b# =a,b,#例子:求first(X)其中XaBc first(X)=a 求follow(B)其中XaBc follow(B)=c求select(AaBc)其中XaBc select(AaBc)= first(X)=a1、设有文法G:SAaB|aAAB|BbB| 试消除空产生式。解:=A,B 消除产生式得:(1) SAaB|a (2) AAB(3) BbB再扩充下列产生式:(4) SaB (5) SAa(6) AB (7) Bb1、 定义 LL(1)文法:如果对任一非终极符B都有select(B,i)select (B,j)=,(ij)。2、非LL(1)文法的等价变换一、提取左公因式 将产生式Ab|g等价转换为 A A Ab|g 这样产生式右部的frist集相交不为空。例子:XaB Xab Bbc Bba 提取公因式有: Xa(B|b) Bb(c|a)改写: XaX X(B|b) BbB B(c|a)例子:XaB XBb Bac Bba 改写: XaB Xacb Xbab Bac Bba提取公因式有: Xa(B|cb) B 二、消除左递归AAb|g AgA AbA|e 一般而言: AAb1|Ab2|.|Abn|g1|g2|gm 则有: A g1A|g2A|gm A Ab1A|b2A|bnA|e 例子: 考虑文法,分别求 first,follow,select集 GE:ETE E+TE| TFT T*FT| Fi|(E)first(E)=first(T)=first(F)=i,( first(E)=+,first(T)=*,follow(E)=),#follow(E)= follow(E)=),#follow(T)=first(E)efollow(E) =+, ee ),# =+,),#follow(T)=follow(T)=+,),#follow(F)= first(T)efollow(T) =*,ee +,),# =*,+,),#select(ETE)=first(T)=i,(select(E+TE)=+select(E)=follow(E)=),#select(TFT)=first(F)=),#select(T*FT)=*select(T)=follow(T) =+,),#select(Fi)=iselect(F(E)=(2)因为select(BBb)select(Bb) =bb=b,所以,G2为非LL(1)文法。(3)select(AaABe)select(ABa) =ad,#= select(BdB)select(B ) =da,e=所以,G3是LL(1)文法。3、试判断下列文法是否为LL(1)文法: G1:AaBC,Ba,Ca G2: AaABe,BBb,Bb G3: AaABe,ABa,BdB,B解:(1)对A,B,C都只有一个产生式所以,G1为LL(1)文法。LL矩阵的构造算法:处理P,N,R操作: 当遇到小写字母时进行N操作,删除小写字母。 当遇到大写字母时进行P操作,保留源大写字母。例子:G(E): EE+E EE*E E(E)|i 1.构造LL矩阵 2.符号串i+i*i#的LL分析过程解:首先此文法有二义性应该去除。 G(E): EE+T|T TT*E|F F(E)|I 其次此文法有左递归应该去除。 G(E): ETE E+TE|e TFT T*FT|e F(E)|i各产生式的SELECT集合为:select(ETE)=first(T)=i,(select(E+TE)=+select(E)=follow(E)=),#select(TFT)=first(F)=),#select(T*FT)=*select(T)=follow(T)=+,),#select(Fi)=iselect(F(E)=( 将符号串进行逆序转换。4、设有文法G: ZbMb Ma|(L LMa)(1)试写出文法G的LL矩阵。(2)试写出b(aa)b的LL分析过程。解:select(ZbMb)=b select(Ma|(L)=a,( select(LMa)=first(M)=a,(select(ETE)=first(T)=(,a,b,select(E+E)=+select(E)=follow(E)=),#select(TFT)=first(F)=(,a,b,select(TT)=first(T)=(,a,b,select(T)=follow(T)=+,),#select(FPF)=first(P)=(,a,b,select(FF)=*select(F)=follow(F) =(,a,b,+,),# select(P(E)=(select(Pa)=aselect(Pb)=bselect(P)=相同字符选择集的交集为.所以为LL(1)文法。5、对下面的文法G:ETE E+E|TFT TT|FPF F*F|P(E)|A|B|Aa Bb(1) 计算这个文法的每个非终极符的First集和follow集。(2)证明这个文法是LL(1)的(3)构造他的转换矩阵。解:first(E)=first(T)=first(F) =first(P)=(,a,b, first(E)=+, first(T)=first(T) =(,a,b, first(F)= *,follow(E)=follow(E) #=),#follow(E)= follow(E)= ),#follow(T) = first(E)-follow(E)follow(T) =+,),#follow(T)=follow(T)=+, ), #follow(F)=first(T)- follow(T) =(,a,b,+,),#follow(F)=follow(F) =(,a,b,+,),#follow(P)=first(F) -follow(F) =*,(,a,b,+, ),#2、设有文法GS: SV VT|ViT TF|T+F F)V*|(是否为优先文法,若是给出(+(i(的分析过程。第六章1、简单优先算法定义: 满足下面两个条件的文法称为简单优先文法。 1.任意两个符号至多成立一种关系 2.任意两个产生式具有不同右部 下面文法均不为简单优先文法 1、写出下列文法的的优先关系矩阵。ZaAAaAbFbFFFcF|c2、算符优先第七章(LR0、SLR1)LR0:二义性结点:可归前缀图的一个结点包含多个归约项目或同时包含移进项目和归约项目。LR(0)文法:文法的可归前缀图不包含二义性结点(可用于判是否LR(0)文法)。例: G(E): EaA|bB AcA|d BcB|d1.用形式化方法作可归前缀图。2.求LR(0)矩阵。3.写出输入串bccd的LR(0)分析过程。解:第1步:拓展文法的新文法如下:G(S): SE 0 EaA1 EbB2 AcA3 Ad 4 BcB5 Bd 61、试问下一文法是不是LR(0)文法 SaA AAb|b拓展文法:SaA AAb Ab改写文法:SaA AbA AbA| Ab去边:SaA Sab AbA Ab Ab (P49)作出前缀图进行判断。第2步:可归前缀图31步LR(0)矩阵 s表示状态 r表示归约第4步分析栈2、SLR1SLR(1)方法:是只在LR(0)可归前缀图的二义性状态下向前看一符。 当有I=xabb Ar Bd FOLLOW(A)FOLLOW(B)=f, FOLLOW(A)b=f; FOLLOW(B)b=f 则称该冲突可以解决。满足上述条件则可利用SLR(1)方法。例子:SAa.bBc Ad BeFOLLOW(A)=a,FOLLOW(B)c所以:FOLLOW(A)FOLLOW(B)=f, FOLLOW(A)b=f; FOLLOW(B)b=f 所以本文法是SLR(1)文法。3、已知文法AaAd|aAb|,判断该文法是否为SLR(1)文法,若是构造相应分析表,并对输入串ab#给出分析过程。解: 把A项目为A。为SLR(1)文法。设:AA0 AaAd1 AaAb2 A3 冲突可以解决继续,冲突不能解决就停止。第八章常见的中间代码形式有逆波兰式,三元式,四元式,树等。一、逆波兰式 运算符跟在所有运算对象的后面的表示法写出的式子称为后缀法或逆波兰法。表示:ab+。a*(b+c/d)abcd/+*的推导。二、三元式的一般形式:i:(,OPR1,OPR2) i是三元式编号,不同三元式不能有相同编号。 是运算符部分。OPR1和OPR2是运算对象部分例子: a:=b*c+b*d的相应三元组三、树 二目运算对应二叉树,多目运算对应多叉树。三元式可以用二叉树表示。四、四元式 四元式的一般形式是: (,OPR1,OPR2,RESULT)* 其中是运算符。* OPR1和OPR2是第一,二分量,* RESULT是运算结果变量名。例子: 求a:=b*c+b*d 的四元式1)(*,b,c,T1) b*c 2)(*,b, d,T2) b*d3)(+,T1,T2,T3) b*c+b*d 4)(:=,T3,-,a) 例子: (a+b*(c-d)-e/f的树。该树的根后序为:abcd-*+ef/-,为该式的逆波兰式。五、程序语句的四元式表示下面是语句四元式的形式定义:二、过程语句的四元式结构当Xi为赋值形参时,i部分为1,当Xi为引用型形参时, i部分为0 。 如果是函数调用,那么最后一条为: (call,EADDR(g),,NEWT) 在上述四元式中,Xi(i=1,2,.,n)为g的形参名。OFF(Xi)表示形参Xi的off值。2.试写出下列语句的四元式中间代码. a.IF x0 THEN x:=0 ELSE x:=1b.WHILE x0 DO x:=x-1c.IF x0 THEN x:=x-1 ELSE IF x0 DO WHILE y0 DO BEGIN y:=y-x;x:=x-1 END解:a. 1. (, x , 0 , T1) 2. (then, T1, , ) 3. (:=, 0, , x ) 4. (else, , , ) 5. (:=, 1, , x ) 6. (ifend, , ,)b. 1.(while,) 2.( , x , 0 ,T1) 3.(do , T1,) 4.(, x, 1,T2) 5.(:=, T2,x) 6.(whend,)c. 1.(, x , 0 , T1) 2.(then, T1, , ) 3.(, x , 1 , T2) 4.(:=, T2, , x ) 5.(else, , , ) 6.( , x , 0 ,T1) 3.( do , T1, , ) 4.(while, , , ) 5.( , y , 0 ,T2) 6.( do , T2, , ) 7.( , y ,x , T3) 8.( := , T3, y ) 9.( , x , 1 ,T4)10.( := , T4, ,x )11.(whend, , , )12.(whend, , , )1.设有表达式A*(B*C-A)B+CDa.试写出逆波兰式中间代码。b.试写出三元式中间代码。c.试写出树中间代码。d.试写出四元式中间代码。解:a.ABC*A-*BC+D两种形式b. (*, B, C) (-, A) (*, A,) (+, B, C) (,) (,D)c、d. 1.(*, B, C, T1) 2.(-, T1, A, T2) 3.(*, A, T2, T3) 4.(+, B, C, T4) 5.(,T3, T4, T5) 6.(, D, T5, T6)3.试写出下列赋值语句的四元式中间代码: a.Ai+1:=Ai-1+Ai b. R.f:=R.x+ai c.Bi.x:=R1.Dj.y d. AAi:=R2.R.f e.Di+1j:=Di+1j+1d. 1.(-, i, 1, T1) 2.(*, T1, l, T2) 3.( , A, T2, T3) 4.(-, T3, 1, T4) 5.(*, T4, l, T5) 6.( , A, T5, T6) 7.(。, R2, offR.f, T7) 8.(。, R, offf, T8) 9.(:=, T8, -, T6) e. 1.(+, i, 1, T1) 2.(-, T1, 1, T2) 3.(*, T2, l, T3) 4.( , D, T3, T4) 5.(-, j, 1, T5) 6.(*, T5, l, T6) 7.( , T4, T6, T7) 8.(+, T7, 1, T8) 9.(:=, T8, -, T7)5.设有表达式 A-(A*B-D*(A-B*D)/A 写出生成三元式的过程。解: (*, A, B) (*, B, D) (-, A, ) (*, D, ) (-, , ) (1, , A) (-, A, ) 其中各数组的各界类型为1.10 a. 1.( +, i, 1, T1) 2.(, T1, 1, T2) 3.( *, T2, L, T3) 4.(, A, T3, T4) (Ai+1) 5.( -, i, 1, T5) 6.(, T5, 1, T6) 7.( *, T6, L, T7) (Ai-1) 8.(, A, T7, T8) 9.(, i, 1, T9) 10.( *, T9, 5, T10) 11.(, A, T10, T11) (Ai) 12.( +, T7, T11, T12) 13.(:=, T12, , T13)b. 1.(. , R, offf, T1) (R.f) 2.(. , R, offx, T2) (R.x) 3.(- , i, 1, T3) 4.( *, T3, 5, T4) 5.(, A, T4, T5) (Ai) 6.( +, T2, T5, T6) 7.(:=, T6, , T7) c. 1.(-, i, 1, T1) 2.(*, T1, l, T2) Bi 3.( , B, T2, T3) 4.(., T3, offx, T4) 5.(., R1, offDj.y, T5) 6.( -, j, 1, T6) 7.(*, T6, l, T7) Dj 8.( , D, T7, T8) 9.(., T8, offy, T9) 10.(:=, T9, _, T4)4.试写出下列过程语句的四元式中间代码: a.f(X*(X+1),i+1) b.f(g(X-1), X) c.f(g(h(X),g(X)其中f,g,h的形参均为赋值形参变量。 c.1.(act,x,1, 4 ) 2.(call, h, _,T1) h(x) 3.(act,T1, 1, 4 ) 4.(call, g, _, T2) g(h(x) 5.(act, x, 1, 4 ) 6.(call, g, _, T3) g(x) 7.(act,T2, 1, 4 ) 8.(act, T3, 1, 5 ) 9.(call, f, _, _ )解:a.1.( +, x, 1, T1)2.( *, x, T1, T2)3.( +, i, 1, T3) 4.( act, T2, 1, 4) 5.( act, T3, 1, 5)6.(call, f, ,) b. 1.( - , x, 1, T1) 2.(act, T1, 1, 4 ) g(x-1) 3.(call, g, _, T2) 4.(act, T2, 1, 4 ) 5.(act, x, 1, 5 ) 6.(call, f, _, _ ) 第九章1、类型表TYPEL结构形如: TCLASS部分结构如下:记录信息表 RINFL的表项结构形如: 数组信息表 AINFL的结构形如:一个记录类型要占几个RINFL表项,不同记录类型所占表项个数不一,而在表项中没有链接部分,因此在不同记录的RINFL表之间可放置一条空项,以表示记录类型的RINFL表中的结束。例1:设有数组类型ARRAY110 OF ARRAY 15 OF integer 则其内部表示如下图所示。 例2:记录类型RECORD u:integer; a:ARRAY110 OF boolean; r:RECORD x,y:real END END 则表示如下图所示。 ICLASS的具体结构如下:2、标识符语义字的一种结构:IADDR部分的具体意义依赖于ICLASS内容。1、若ICLASS.c=1,则IADDR是CONSL表地址。 例子:设有PASCAL过程说明段:PROCEDURE P(VAR X:real; Y:boolean);CONST pai=3.14;TYPE arr=ARRAY110 OF integer;VAR m:integer; a:arr;FUNCTION f(Z:real;FUNCTION G(U,W:real):real;K:integer):integer;BEGINENDBEGINEND3、抽象地址表格每当一个过程说明的子程序被调用时,就要给其中的变量分配一串单元,称这一串单元为该过程的一个活动区。从第3号单元开始分配给过函名、形参等。例子:在下面程序中,每个对偶(l,i)表示此刻的LEVEL和OFF值。(l,10)LABEL 100,200;(l,10)CONST pai=3,14;(l,10)TYPE arr=ARRAY110OF integer;(l,10)VAR x:integer;(l,11) a:ARRAY15OF integer;(l,16) FUNCTION f(l+1,4)VAR x:real;(l+1,5) a:arr; (传值) (l+1,15)VAR c:arr; (传地址)(l+1,16)PROCEDURE G( );(l+1,18)FUNCTION F(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论