第七章中间代码生成序71中间语言72说明语句73赋值语内容摘要:
个 statement)。 18 switch语句的目标代码结构: 对 expression求值并置于 t的有关代码 goto test L1: 有关 statement1的代码 goto next L2: 有关 statement2的代码 goto next …………………………………… Ln1: 有关 statement n1的代码 goto next Ln: 有关 statementn的代码 goto next 19 (接上页) test : if t= value1 goto L1 if t= value2 goto L2 ……………………. if t= valuen1goto Ln1 goto Ln next: expression: 选择器,将被计算出一个值。 valueE1,valueE2,… , value n1: 表达式可能取的 值。 default: “缺席值”。 用来在 expression的值不等 于任何 value i时来匹配 expression。 20 回填 两遍扫描 : • 从给定的输入构造出一棵语法树; • 对语法树按深度优先遍历,来进行定义中给出的翻译。 一遍扫描 : • 先产生暂时没有填写目标标号的转移指令。 • 对于每一条这样的指令作适当的记录, • 一旦目标标号被确定下来,再将它“ 回填 ”到相应的指令中。 21 使用回填翻译布尔表达式 布尔表达式文法 : ( 1) E→E1 or M E2 ( 2) |E1 and M E2 ( 3) |not E1 ( 4) |(E1) ( 5) |id1 relop id2 ( 6) |true ( 7) |false ( 8) M→ε 插入非终结符号 M是为了引入一个语义动作,以便在适当的时候获得即将产生的下一个四元式的索引,或说四元式的标号 22 翻译模式用到如下三个函数: 1. makelist(i): 创建一个仅包含 i的新表, i 是四元式数组的一个索引(下标),或说 i是四元式代码序列的一个标号。 2. merge(p1, p2): 连接由指针 p1和 p2指向 的两个表并且返回一个指向连接后的表的 指针。 3. backpatch( p, i): 把 i作为目标标号回 填到 p所指向的表中的每一个转移指令中 去。 此处的“表”都是为“反填”所拉的链 23 图 使用一遍扫描的布尔表达式的翻译模式 EE1 OR ME2 {backpatch(,)。 :=merge(,)。 := } EE1 AND ME2 {backpatch(,)。 :=。 :=merge(,)。 } 24 Enot E1 { :=。 := } E ( E ) {:=。 :=} E id1 relop id2 {:= makelist(nextquad)。 := makelist(nextquad+1)。 emit(180。 if180。第七章中间代码生成序71中间语言72说明语句73赋值语
相关推荐
數月報酬率 1 0 . 0 0 % 5 . 0 0 %0 . 0 0 %5 . 0 0 %1 0 . 0 0 %1 5 . 0 0 %2 0 . 0 0 %2004/82004/92004/102004/112004/122005/12005/22005/32005/42005/52005/62005/72005/82005/92005/102005/112005/122006/12006/220
得逆变换例:求为因果序列 解: )(1 nxz x(z)按 z的降幂排列 0321223212)1()(nnnzzzzzzzzzzx )()( nnunx 注意: 长除法适用于看出 x(n)规律的变换,局限性很大。 )( )()( zN zDzX mzzzzzx )((三)部分分式展开法 方法思路: 把各逆变换相加即可得
4.写入数据 :通过 WriteLine方法将数据写入目的文件。 5. 关闭文件,完成操作: 通过 StreamWriter对象关闭目的文件。 6. 定义控件 :定义 panel、 button、 textbox等表单控件。 第 2题 第 3题 【 操作要求 】 将文件 C:\2020AN\Unit7\Y703复制到考生文件夹。 打开考生文件夹中的 ,分别参照样图 703A和
连接方式。 程序选项卡 可以指定 Windows自动用于每个 Inter服务的程序 高级选项卡 主要用于 IE个性化设置 IE收藏夹的基本使用 如果要经常查看某一页,可将其添加到个人收藏夹中。 在 IE浏览器中,要迅速将网页保存到收藏夹列表,请按 Ctrl+D键 可以选择“允许脱机使用”,将添加到收藏夹中的内容设置成能够脱机浏览的方式。 返回 Inter搜索引擎的使用