编译原理作业_第1页
编译原理作业_第2页
编译原理作业_第3页
编译原理作业_第4页
编译原理作业_第5页
已阅读5页,还剩18页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1对于下列语言分别写出它们的正规表达式。1英文字母组成的所有符号串,要求符号串中顺序包含五个元音。答令LETTER表示除这五个元音外的其它字母。LETTERALETTERELETTERILETTEROLETTERULETTER2英文字母组成的所有符号串,要求符号串中的字母依照词典顺序排列。答ABZ30,1上的含偶数个1的所有串。答0|10140,1上的含奇数个1的所有串。答0|10115具有偶数个0和奇数个1的有0和1组成的符号串的全体。答设S是符合要求的串,|S|2K1K0)。则SS10|S21,|S1|2KK0),|S2|2KK0)。且S1是0,1上的串,含有奇数个0和奇数个1。S2是0,1上的串,含有偶数个0和偶数个1。考虑有一个自动机M1接受S1,那么自动机M1如下和LM1等价的正规表达式,即S1为00|11|01|1000|1101|1001|1000|11类似的考虑有一个自动机M2接受S2,那么自动机M2如下和LM2等价的正规表达式,即S2为00|11|01|1000|1101|10因此,S为00|11|01|1000|1101|1001|1000|110|00|11|01|1000|1101|1016不包含子串011的由0和1组成的符号串的全体。答1|100|101|7由0和1组成的符号串,把它看成二进制数,能被3整除的符号串的全体。答假设W的自动机如下对应的正规表达式10101|02给出接受下列在字母表0,1上的语言的DFA。1所有以00结束的符号串的集合。2所有具有3个0的符号串的集合。答1DFAM0,1,Q0,Q1,Q2,Q0,Q2,其中定义如下(Q0,0)Q1(Q0,1)Q0(Q1,0)Q2(Q1,1)Q0(Q2,0)Q2(Q2,1)Q02正则表达式1010101DFAM0,1,Q0,Q1,Q2,Q3,Q0,Q3,其中定义如下(Q0,0)Q1(Q0,1)Q0(Q1,0)Q2(Q1,1)Q1(Q2,0)Q3(Q2,1)Q2(Q3,1)Q33下面是用正规式表示的变量声明INT|FLOATID,ID请改用上下文无关文法表示,也就是写一个上下文无关文法,它和该正规式等价。答DTLTINT|FLOATLL,ID|ID4试分析下面给出的IFTHENELSE语句的文法,它的提出原本是为了矫正DANGLINGELSE悬而未决的ELSE文法的二义性STMTIFEXPRTHENSTMT|MATCHEDSTMTMATCHEDSTMTIFEXPRTHENMATCHEDSTMTELSESTMT|OTHER试说明此文法仍然是二义性的。答考虑句子IFETHENIFETHENOTHERELSEIFETHENOTHERELSEOTHER它具有如下所示的两种分析树STMTEXPRTHENEIFSTMTIFMATCHEDSTMTEXPRTHENMATCHEDSTMTEOTHERIFESLESTMTMATCHEDSTMTEXPRTHENMATCHEDSTMTEOTHERESLESTMTMATCHEDSTMTOTHERSTMTMATCHEDSTMTIFEXPRTHENMATCHEDSTMTEIFESLESTMTESLESTMTMATCHEDSTMTEXPRTHENESTMTOTHEREXPRTHENMATCHEDSTMTEOTHERIFMATCHEDSTMTOTHER则上面给出的IFTHENELSE文法仍是二义性的。5证明下面文法是SLR1文法,并构造其SLR分析表。EET|TTTF|FFF|A|B答该文法的拓广文法G为0EE1EET2ET3TTF4TF5FF6FA7FB其LR0项目集规范族和GOTO函数识别活前缀的DFA如下I0EE,EET,ET,TTF,TF,FF,FA,FBI1EE,EETI2ET,TTF,FF,FA,FBI3TF,FFI4FAI5FBI6EET,TTF,TF,FF,FA,FBI7TTF,FFI8FFI9EET,TTF,FF,FA,FB求FOLLOW集FOLLOWE,FOLLOWT,A,BFOLLOWF,A,B,构造的SLR分析表如下显然,此分析表无多重定义入口,所以此文法是SLR文法。6为下面的文法构造LALR1分析表SEEET|TTE|A答其拓广文法G0SS1SE2EET3ET4TE5TA构造其LR1项目集规范族和GOTO函数识别活前缀的DFA如下I0SS,SE,EET,/,ET,/,TE,/,TA,/I1SS,I2SE,EET,/I3ET,/I4TE,/,EET,/,ET,/,TE,/,TA,/I5TA,/I6EET,/,TE,/,TA,/I7TE,/,EET,/I8ET,/I9TE,/,EET,/,ET,/,TE,/,TA,/I10TA,/I11EET,/I12TE,/I13EET,/,TE,/,TA,/I14TE,/,EET,/I15EET,/I16TE,/合并同心的LR1项目集,得到LALR的项目集和转移函数如下I0SS,SE,EET,/,ET,/,TE,/,TA,/I1SS,I2SE,EET,/I3,8ET,/I4,9TE,/,EET,/,ET,/,TE,/,TA,/I5,10TA,/I6,13EET,/,TE,/,TA,/I7,14TE,/,EET,/I11,15EET,/I12,16TE,/LALR分析表如下7(1)通过构造识别活前缀的DFA和构造分析表,来证明文法EEID|ID是SLR1文法。答先给出接受该文法活前缀的DFA如下再构造SLR分析表如下动作转移IDE0S211S3ACC2R2R23S44R1R1表中没有多重定义的条目,因此该文法是SLR1的。(2)下面左右两个文法都和(1)的文法等价EEMID|IDEMEID|IDMM请指出其中有几个文法不是LR1文法,并给出它们不是LR1文法的理由。答只有文法EMEID|IDMEEEEIDEIDI0EEEEIDI1EIDI2EIDEEIDI3EEIDI4ID状态不是LR1文法。因为对于句子IDIDID来说,分析器在面临第一个ID时需要做的空归约次数和句子中ID的个数一样多,而此时句子中ID的个数是未知的。8根据自上而下的语法分析方法,构造下面文法的LL(1)分析表。DTLTINT|REALLIDRR,IDR|答先计算FIRST和FOLLOWFIRSTDFIRSTTINT,REALFIRSTLIDFIRSTR,FOLLOWDFOLLOWLFOLLOWTIDFOLLOWRLL1分析表如下INTREALID,DDTLDTLTTINTTREALLLIDRRR,IDRR9下面的文法产生的表达式是对整型和实型常数应用算符形成的。当两个整数相加时,结果仍为整数,否则就是实数。EET|TTNUMNUM|NUM(A)给出一个语法制导定义以确定每个子表达式的类型。(B)扩充(A)中的语法制导定义把表达式翻译成前缀形式,并且决定类型。使用一元算符INTTOREAL把整型值转换成相等的实型值,以使得前缀形式中的的两个操作对象是同类型的。答A产生式语义规则EE1TIFE1TYPEINTEGERANDTTYPEINTEGERTHENETYPEINTEGERELSEETYPEREALETETYPETTYPETNUMNUMTTYPEREALTNUMTTYPEINTEGERB产生式语义规则EE1TIFE1TYPEINTEGERANDTTYPEINTEGERTHENBEGINETYPEINTEGERPRINT,E1VAL,TVALENDELSEBEGINETYPEREALIFE1TYPEINTEGERTHENBEGINE1TYPEREALE1VALINTTOREALE1VALENDIFTTYPEINTEGERTHENBEGINTTYPEREALTVALINTTOREALTVALENDPRINT,E1VAL,TVALENDETETYPETTYPEEVALTVALTNUMNUMTTYPEREALTVALNUMNUMLEXVALTNUMTTYPEINTEGERTVALNUMLEXVAL10假设说明是由下列文法产生的DIDLL,IDL|TTINTEGER|REAL(A)建立一个翻译模式,把每一个标识符的类型加入到符号表中。(B)从(A)中的翻译模式构造一个预翻译程序。答A产生式翻译模式DIDLDTYPELTYPEADDTYPEIDENTRY,DTYPEL,IDL1LTYPEL1TYPEADDTYPEIDENTRY,LTYPELTLTYPETTYPETINTEGERTTYPEINTEGERTREALTTYPEREALBPROCEDUREDBEGINIFLOOKAHEADIDTHENBEGINMATCHIDDTYPELADDTYPEIDENTRY,DTYPEENDELSEERRORENDFUNCTIONLDATATYPEBEGINIFLOOKAHEAD,THENBEGINMATCH,IFLOOKAHEADIDTHENBEGINMATCHIDLTYPELADDTYPEIDENTRY,LTYPERETURNLTYPEENDELSEERRORENDELSEIFLOOKAHEADTHENBEGINMATCHLTYPETRETURNLTYPEENDELSEERRORENDFUNCTIONTDATATYPEBEGINIFLOOKAHEADINTEGERTHENBEGINMATCHINTEGERRETURNINTEGERENDELSEIFLOOKAHEADREALTHENBEGINMATCHREALRETURNREALENDELSEERROREND11为下面的算术表达式文法写一个语法制导的翻译方案,它将每个子表达式E的符号(即值大于零还是小于零)记录在属性ESIGN中(属性值分别用POS或NEG表示)。你可以假定所有的整数都不为零,这样就不用担心零的符号。EEE|E|E|UNSIGNED_INTEGER答EE1E2IFE1SIGNE2SIGNTHENESIGNPOSELSEESIGNNEGEE1ESIGNE1SIGNEE1IFE1SIGNPOSTHENESIGNNEGELSEESIGNPOSEUNSIGNED_INTEGERESIGNPOS12为下面文法写一个语法制导的定义,用S的综合属性VAL给出下面文法中S产生的二进制数的值。例如,输入101101时,SVAL5625。(不得修改文法。)SLR|LLLB|BRBR|BB0|1答SLRSVALLVALRVALSLSVALLVALLL1BLVALL1VAL2BVALLBLVALBVALRBR1RVALR1VALBVAL/2RBRVALBVAL/2B0BVAL0B1BVAL113试问下面的程序将有怎样的输出分别假定(A)传值调用(CALLBYVALUE);(B)引用调用(CALLBYREFERENCE);(C)复制恢复(COPYRESTORE);(D)传名调用(CALLBYNAME)。PROGRAMMAININPUT,OUTPUT);PROCEDUREP(X,Y,Z);BEGINYY1;ZZX;END;BEGINA2;B3;PAB,A,A;PRINTAEND答1传地址所谓传地址是指把实在参数的地址传递给相应的形式参数。在过程段中每个形式参数都有一对应的单元,称为形式单元。形式单元将用来存放相应的实在参数的地址。当调用一个过程时,调用段必须领先把实在参数的地址传递到一个为被调用段可以拿得到的地方。当程序控制转入被调用段之后,被调用段首先把实参地址捎进自己相应的形式单元中,过程体对形式参数的任何引用1或赋值都被处理成对形式单元的间接访问。当调用段工作完毕返回时,形式单元它们都是指示器所指的实在参数单元就持有所指望的值。2传结果和“传地址”相似但不等价的另一种参数传递力法是所谓“传结果”。这种方法的实质是,每个形式参数对应有两个申元,第1个单元存放实参的地址,第2个单元存放实参的值。在过程体中对形参的任何引用或赋值都看成是对它的第2个单元的直接访问。但在过程工作完毕返回前必须把第2个单元的内容行放到第1个单元所指的那个实参单元之中。3传值所谓传值,是一种简单的参数传递方法。调用段把实在参数的值计算出来并存放在一个被调用段可以拿得到的地方。被调用段开始丁作时,首先把这些值抄入形式中元中,然后就好像使用局部名一样使用这些形式单元。如果实在参数不为指示器,那末,在被调用段中无法改变实参的值。4传名所谓传名,是一种特殊的形实参数结合方式。解释“传名”参数的意义过程调用的作用相当于把被调用段的过程体抄到调用出现的地方,但把其中任一出现的形式参数都替换成相应的实在参数文字替换。它与采用“传地址”或“传值”的方式所产生的结果均不相同。A2;B8;C7;D9。14对以下的PASCAL程序画出过程C第二次被激活时的运行栈,控制链和访问链。说明在C中如何访问变量X。PROGRAMENV;PROCEDUREA;VARXINTEGER;PROCEDUREB;PROCEDUREC;BEGINX2;BEND;PROCEDURECBEGINCEND;PROCEDUREBBEGINBEND;PROCEDUREABEGINAENDMAIN答说明C中沿着存取链向前走两步,到过程A的活动记录中就可以访问到变量X。15下面给出一个C语言程序及其在SPARC/SUN工作站上经某编译器编译后的运行结果。从运行结果看,函数FUNC中4个局部变量I1,J1,F1,E1的地址间隔和它们类型的大小是一致的,而4个形式参数I,J,F,E的地址间隔和它们的类型的大小不一致,试分析不一致的原因。注意,输出的数据是八进制的。FUNCI,J,F,ESHORTI,JFLOATF,ESHORTI1,J1FLOATF1,E1ENVABCONTROLLINKCONTROLLINKXCONTROLLINKACCESSLINKCONTROLLINKACCESSLINKACCESSLINKBACCESSLINKCCONTROLLINKACCESSLINKCACCESSLINKCONTROLLINKPRINTF“ADDRESSOFI,J,F,EO,O,O,ON“,PRINTF“ADDRESSOFI1,J1,F1,E1O,O,O,ON“,PRINTF“SIZESOFSHORT,INT,LONG,FLOAT,DOUBLED,D,D,D,DN“,SIZEOFSHORT,SIZEOFINT,SIZEOFLONG,SIZEOFFLOAT,SIZEOFDOUBLEMAINSHORTI,JFLOATF,EFUNCI,J,F,E运行结果是ADDRESSOFI,J,F,E35777772536,35777772542,35777772544,35777772554ADDRESSOFI1,J1,F1,E135777772426,35777772424,35777772420,35777772414SIZESOFSHORT,INT,LONG,FLOAT,DOUBLE2,4,4,4,8,请问为什么答C语言编译器是不做实在参数和形式参数的个数和类型是否一致的检查的,由程序员自己保证它们的一致性。但是对于形式参数和实在参数是不同的整型(如一个是SHORT型,另一个是LONG型),或者是不同的实型,编译器则试图保证目标代码运行时能得到正确的结果,条件是,当需要高级别类型数据向低级别类型数据转换时,不出现溢出。这样,C编译器作的约定是,当整型或实型数据作为实在参数时,分别将它们提升到LONG和DOUBLE类型的数据传递到被调用函数。被调用函数根据形式参数所声明的类型,决定是否要将实在参数向低级别类型转换。在本例中,LONG类型数据占4个字节,而SHORT类型数据只占2个字节。因此被调用函数把实在参数的低位字节的内容当成是自己所需的数据,见图52注意,对于SUN工作站来说,低地址存放整型数据的高位。对于实型来说。DOUBLE类型是8个字节,而FLOAT类型4个字节。被调用函数把实在参数的前4个字节作为自己所需的数据,因为DOUBLE后面4个字节的内容都是为了增加精度用的,见图53。这样在MAIN函数中依次将参数提升后反序进栈,大小分别为8,8,4,4。在FUNC函数中,按形式参数的类型,把这些存储单元的一部分看成是形式参数的存储单元,见图54。从这个图不难理解为什么形式参数的地址间隔和它们的类型大小不一致了。低地址放高位高地址放低位SHORTLONG图52长整型和短整型FLOATDOUBLEE图53双精度型和浮点型E,8个字节在MAIN函数中参数压栈时的观点在FUNC函数中存取形式参数时的观点4个字节,起始地址357777725544个字节,起始地址357777725442个字节,起始地址357777725422个字节,起始地址35777772536F,8个字节J,4个字节I,4个字节栈的增长方向图54参数在栈中的情况注意,现在的编译器将需要进行类型转换的形式参数(类型是CHAR、SHORT、FLOAT等)另行分配在局部数据区,当控制进入被调用过程时,首先将调用过程压栈的需要进行类型转换的实在参数取出,把它们存入所分配的局部数据区存储单元,并同时完成必要的数据类型的转换。在这种情况下,不会出现本题所碰到的现象。另外,在SPARC工作站上,整型数据的高位存放在低地址,而低位存放在高地址。如果是X86机器,数据的高低位不是按这样的次序存放,那也不会出现本题所碰到的现象。下面是某个编译器的类型提升函数,供读者理解用(备注INT和LONG的大小一样)。TYPEPROMOTETYPETYSWITCHTYOPCASEENUMRETURNINTTYPECASEINTIFTYSIZESIZERETURNINTTYPEBREAKCASEUNSIGNEDIFTYSIZESIZERETURNINTTYPEBREAKCASEFLOATIFTYSIZESIZERETURNDOUBLETYPERETURNTY16试把下列C语言程序的可执行语句翻译为A一棵语法树,B后缀式,C三地址代码。MAININTIINTA10WHILEIBMAI0BRL其中BM操作为当表达式为假时转向,BRL是一个一目运算,无条件转向。C三地址代码序列为100IFIT2DOBEGINVSUCC(V;STMTENDENDENDA试考虑下述PASCAL程序PROGRAMFORLOOPINPUT,OUTPUTVARI,INITIAL,FINALINTEGERBEGINREADINITIAL,FINALFORIINITIALTOFINALDOWRITEIEND对于INITIALMAXINT5和FINALMAXINT,问此程序将做些什么其中MAXINT为目标机器允许的最大整数。B试构造一个翻译PASCAL的FOR语句为三地址代码的语法制导定义。答(A)程序将显示如下六个整数MAXINT5MAXINT4MAXINT3MAXINT2MAXINT1MAXINT(B)为简单起见,FOR语句的三地址代码如下T1INITIALT2FINALIFT1T2GOTOSNEXTVT1STMTCODESBEGINIFVT2GOTOSNEXTVSUCCVSTMTCODEGOTOSBEGIN语法制导定义如下产生式动作SFOREDOS1SBEGINNEWLABELSFIRSTNEWTEMPSLASTNEWTEMPSCURRNEWTEMPSCODEGENSFIRST“”EINIT|GENSLAST“”EFINAL|GEN“IF”SFIRST“”SLAST“GOTO”SNEXT|GENSCURR“”SFIRST|GENSBEGIN“”|GEN“IF”SCURR“”SLAST“GOTO”SNEXT|S1CODE|GENSCURRSUCCSCURR|GEN“GOTO”SBEGINEVINITIALTOFINALEINITINITIALPLACEEFINALFINALPLACE18对于下面C语言文件SCF1INTXLONGXX1F2INTXLONGXX1某编译器编译时报错如下SCINFUNCTIONF1SC3WARNINGDECLARATIONOFXSHADOWSAPARAMETER请回答,对函数F2为什么没有类似的警告错误。答对于函数F1,局部变量X声明的作用域是整个函数体,导致在函数体中不可能访问形式参数X。由于这是一个合法的C语言函数,因此编译器给出警告错误。对于函数F2,由于局部变量X的作用域只是函数体的一部分,不会出现上述问题,因而编译器不报错。19考虑一个简单语言,其中所有的变量都是整型(不需要显式声明),并且仅包含赋值语句、读语句和写语句。下面的产生式定义了该语言的语法(其中LIT表示整型常量;OP的产生式没有给出,因为它和下面讨论的问题无关)。PROGRAMSTMTLISTSTMTLISTSTMTSTMTLIST|STMTSTMTIDEXP|READID|WRITEEXPEXPID|LIT|EXPOPEXP我们把不影响WRITE语句输出值的赋值(包括通过READ语句来赋值)称为无用赋值,写一个语法指导定义,它确定一个程序中出现过赋予无用值的变量集合(不需要知道无用赋值的位置)和没有置初值的变量集合(不影响WRITE语句输出值的未置初值变量不在考虑之中)。非终结符STMTLIST和STMT用下面3个属性(你根据需要来定义其它文法符号的属性)(1)USES_IN在本语句表或语句入口点的引用变量集合,它们的值影响在该程序点后的输出。(2)USES_OUT在本语句表或语句出口点的引用变量集合,它们的值影响在该程序点后的输出。(3)USELESS本语句表或语句中出现的无用赋值变量集合。答EXP的属性USES表示它引用的变量集合。PROGRAM的USELESS和NO_INITIAL分别表示程序的无用赋值变量集合和未置初值变量集合。PROGRAMSTMTLISTSTMTLISTUSES_OUTPROGRAMUSELESSSTMTLISTUSELESSPROGRAMNO_INITIALSTMTLISTUSES_INSTMTLISTSTMTSTMTLIST1STMTLIST1USES_OUTSTMTLISTUSES_OUTSTMTUSES_OUTSTMTLIST1USES_INSTMTLISTUSES_INSTMTUSES_INSTMTLISTUSELESSSTMTLIST1USELESSSTMTUSELESSSTMTLISTSTMTSTMTUSES_OUTSTMLLISTUSES_OUTSTMLLISTUSES_INSTMTUSES_INSTMTLISTUSELESSSTMTUSELESSSTMTIDEXPSTMTUSELESSIFIDLEXEMESTMTUSES_OUTTHENELSEIDLEXEMESTMTUSES_INIFIDLEXEMESTMTUSES_OUTTHENSTMTUSES_OUTIDLEXEMEEXPUSESELSESTMTUSES_OUTSTMTREADIDSTMTUSELESSIFIDLEXEMESTMTUSES_OUTTHENELSEIDLEXEMESTMTUSES_INSTMTUSES_OUTIDLEXEMESTMTWRITEEXPSTMTUSELESS,STMTUSES_INSTMTUSES_OUTEXPUSESEXPIDEXPUSESIDLEXEMEEXPLITEXPUSESEXPEXP1OPEXP2EXPUSESEXP1USESEXP2USES20为下列C程序生成目标代码。MAININTIINTA10WHILEIB2,相应的循环是B2。(1)代码外提由于循环中没有不变运算,故不做此项优化(2)强度削弱B2中A和B都是I的归纳变量。优化结果显示在图942中。(3)删除归纳变量变换循环控制条件,删除归纳变量I后的流图显示在图943中23考虑下面的三地址语句序列B1B2IFWXGOTOL2EBGOTOL2L1GOTOL3L2C3B4C6L3IFYZGOTOL4GOTOL5L4GG1H8GOTOL1L5H9(1)在该代码中用水平的横线将代码分成基本块,并给每个基本块一个序号。(2)画出该代码的控制流图,每个基本块就用(1)的序号表示。(3)若有循环的话,列出构成每个循环的结点。答(1)(2)B1B2IFWXGOTOL2(1)EBGOTOL2(2)L1GOTOL3(3)L2C3B4C6(4)L3IFYZGOTOL4(5)GOTOL5(6)L4GG1H8GOTOL1(7)L5H9(8)(3)结点5、7和3构成一个循环,其中5是入口结点。24对下面的程序片段作出其程序流图并计算(1)各基本块的到达_定值集INB;(2)各基本块中各变量引用点的UD链;(3)各基本块出口的活跃变量集V_OUTB;(4)各基本块中变量定值点的DU链。I1J014237865L1JJIREADIIFI100GOTOL2WRITEJHALTL2III答本题程序的程序流图如图961所示。(1)计算各基本块的到达定值集INB。公式为INBOUTPPPBOUTBGENBINBKILLBGENB和KILLB由程序流图直接求出,显示在表961中。表961基本块GENB位向量KILLB位向量B1D1,D211000000D3,D4,D600110100B2D3,D400110000D1,D2,D611000100B3D600000100D1,D410010000B40000000000000000求各基本块到达定值的初值及各遍的执行结果显示在表962中。表962初值第一遍后第二遍后第三遍后基本块INBOUTBINBOUTBINBOUTBINBOUTBB10000000011000000000000001100000000000000110000000000000011000000B20000000000110000110001000011000011100100001100001110010000110000B30000000000000100001100000010010000110000001001000011000000100100B40000000000000000001100000011000000110000001100000011000000110000(2)求各基本块中各变量引用点的UD链假设在程序中某点U引用了变量A,则把能到达U的A的所有定值点,称为A在引用点U的引用定值链(简称UD链)。可以利用到达定值信息来计算各个变量在任何引用点的UD链。由图961的程序流图可知,I的引用点是D3、D5和D6,J的引用点是D3和D8。B2中I和J的引用点D3前面没有对I和J的定值点,其UD链在INB2D1,D2,D3,D6中,所以I在引用点D3的UD链是D1,D6;J在引用点D3的UD链是D2,D3。在B2中I的引用点D5前面有I的定值点D4,且在D4定值后到达D5,所以I在引用点D5的UD链是D4。B3中I的引用点D6前面没有I的定值点,其UD链是INB3中I的所有定值点,所以是D4。B4中J的引用点D8前面没有对J的定值点,其UD链是INB4中J的所有定值点。已知INB4D3,D4,所以,J的引用点D8的UD链是D3。(3)各基本块出口的活跃变量集VOUTB对程序中某变量A和某点P,如果存在一条从P开始的道路,其中引用了A在P点的值,则称A在点P是活跃的。计算公式如下V_INBUSEBV_OUTBDEFBV_OUTBV_INSSSB其中,SB是

温馨提示

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

评论

0/150

提交评论