Microsoft PowerPoint - ch6 [Compatibility Mode]
|
|
- 轸 郝
- 5 years ago
- Views:
Transcription
1 第 6 章 中间代码生成 记号流 分析器 本章内容 静态检查器 中间代码生成器 中间代码 代码生成器 介绍几种常用的中间表示 : 后缀表示 图形表示和三地址代码 用语法制导定义和翻译方案来说明源语言的各种构造怎样被翻译成中间形式 后缀表示表达式 E 的后缀表示可以如下归纳定义 如果 E 是变量或常数, 那么 E 的后缀表示就是 E 本身 如果 E 是形式为 E 1 ope 2 的表达式, 那么 E 的后缀表示是 E 1 E 2 op, 其中 E 1 和 E 2 分别是 E 1 和 E 2 的后缀表示 如果 E 是形式为 (E 1 ) 的表达式, 那么 E 1 的后缀表示也是 E 的后缀表示 后缀表示不需要括号 (8 5) + 2 的后缀表示是 后缀表示的最大优点是便于计算机处理表达 式 计算栈输入串 后缀表示不需要括号 (8 5) + 2 的后缀表示是 后缀表示的最大优点是便于计算机处理表达式 后缀表示很容易拓广到含一元算符的表达式 后缀表示也可以拓广到表示赋值语句和控制语句, 但很难用栈来描述它的计算 图形表示 语法树是一种图形化的中间表示 有向无环图 (DAG) 也是一种中间表示 assign a + assign a uminus uminus c d c d c d b b (a) 语法树 (b) DAG a = ( b + c d) + c d 的图形表示 构造赋值语句语法树的翻译方案修改构造结点的函数可生成有向无环图产生式语义动作 S id =E E E 1 +E 2 E E 1 E 2 E E 1 E (E 1 ) E id {S.nptr = mknode( assign, mkleaf (id, id.entry), E.nptr);} {E.nptr = mknode( +, E 1.nptr, E 2.nptr);} {E.nptr = mknode(, E 1.nptr, E 2.nptr);} {E.nptr = mkunode( uminus, E 1.nptr);} {E.nptr = E 1.nptr;} {E.nptr = mkleaf (id, id.entry);} 1
2 6.1.3 三地址代码一般形式 :x = y op z 例表达式 x + y z 翻译成的三地址语句序列是 = y z t 2 = x + 三地址代码是语法树或 DAG 的一种线性表示 例 a=( b+c d )+c d 语法树 = b t 2 = c d t 3 = + t 2 t 4 = c d uminus t 5 = t 3 + t 4 a = t 5 三地址代码是语法树或 DAG 的一种线性表示 例 a=( b+c d )+c d 语法树 DAG = b = b assign t 2 = c d t 2 = c d a + t 3 = + t 2 t 3 = + t 2 + t 4 = c d t 4 = t 3 + t 2 uminus t 5 = t 3 + t 4 a = t c d 4 b a = t 5 本书常用的三地址语句 赋值语句 x = y op z, x = op y, x = y 无条件转移 goto L 条件转移 if x relop y goto L 过程调用 param x 和 call p, n 过程返回 return y 索引赋值 x = y[i] 和 x[i] = y 地址和指针赋值 x = &y,x = y 和 x = y 静态单赋值形式 (SSA) 一种便于某些代码优化的中间表示 和三地址代码的主要区别 所有赋值指令都是对不同名字的变量进行赋值三地址代码静态单赋值形式 p = a +b p 1 = a +b q = p c q 1 = p 1 c p = q d p 2 = q 1 d p = e p p 3 = e p 2 q = p + q q 2 = p 3 + q 静态单赋值形式 (SSA) 一种便于某些代码优化的中间表示 和三地址代码的主要区别 所有赋值指令都是对不同名字的变量进行赋值 一个变量在不同路径上都被定值的解决办法 if (flag) x = 1; else x = 1; y = x a; 的条件语句改成 if (flag) x 1 = 1; else x 2 = 1; x 3 = (x 1, x 2 ); // 由 flag 的值决定用 x 1 还是 x 2 2
3 本节介绍 为局部名字建立符号表条目 为局部名字分配存储单元 符号表中包含名字的类型和分配给它的存储单元的相对地址等信息 过程中的声明 计算被声明名字的类型和相对地址 P {offset =0} D; S D D ; D D id : T {enter (id.lexeme, T.type, offset); offset = offset + T.width } T integer {T.type = integer; T.width =4;} T real {T.type = real; T.width =8;} T array [ num ] of T 1 {T.type = array (num.val, T 1.type); T.width = num.val T 1.width;} T T 1 {T.type = pointer (T 1.type); T.width =4;} 计算被声明名字的类型和相对地址 P {offset =0} D; S D D ; D D id : T {enter (id.lexeme, T.type, offset); offset = offset + T.width } T integer {T.type = integer; T.width =4;} T real {T.type = real; T.width =8;} T array [ num ] of T 1 {T.type = array (num.val, T 1.type); T.width = num.val T 1.width;} T T 1 {T.type = pointer (T 1.type); T.width =4;} 作用域信息的保存 所讨论语言的文法 P D; S D D ; D id : T proc id ; D ; S 语义动作用到的函数 mktable(previous) enter(table, name, type, offset) addwidth(table, width) enterproc(table, name, newtable) P MD; S {addwidth (top (tblstack), top (offsetstack)); M pop(tblstack); pop (offsetstack); } {t = mktable (nil); push(t, tblstack); push (0, offsetstack); } D D 1 ; D 2 D proc id ; ND 1 ; S {t = top(tblstack); addwidth(t, top(offsetstack)); pop(tblstack); pop(offsetstack); enterproc(top(tblstack), id.lexeme, t); } D id :T {enter(top(tblstack), id.lexeme, T.type, top(offsetstack)); top(offsetstack)=top(offsetstack)+t.width;} N {t = mktable(top(tblstack)); push(t, tblstack); push(0, offsetstack); } 3
4 P MD; S {addwidth (top (tblstack), top (offsetstack)); M pop(tblstack); pop (offsetstack); } {t = mktable (nil); push(t, tblstack); push (0, offsetstack); } D D 1 ; D 2 D proc id ; ND 1 ; S {t = top(tblstack); addwidth(t, top(offsetstack)); pop(tblstack); pop(offsetstack); enterproc(top(tblstack), id.lexeme, t); } D id :T {enter(top(tblstack), id.lexeme, T.type, top(offsetstack)); top(offsetstack)=top(offsetstack)+t.width;} N {t = mktable(top(tblstack)); push(t, tblstack); push(0, offsetstack); } P MD; S {addwidth (top (tblstack), top (offsetstack)); M pop(tblstack); pop (offsetstack); } {t = mktable (nil); push(t, tblstack); push (0, offsetstack); } D D 1 ; D 2 D proc id ; ND 1 ; S {t = top(tblstack); addwidth(t, top(offsetstack)); pop(tblstack); pop(offsetstack); enterproc(top(tblstack), id.lexeme, t); } D id :T {enter(top(tblstack), id.lexeme, T.type, top(offsetstack)); top(offsetstack)=top(offsetstack)+t.width;} N {t = mktable(top(tblstack)); push(t, tblstack); push(0, offsetstack); } 符号表实例图 5.14 的 Pascal 程序 readarray 表头 i sort 空表头 a x readarray exchange quicksort exchange 表头 指向 readarray 指向 exchange quicksort 表头 k v partition partition 记录的域名 T record D end 记录类型单独建符号表, 作为类型表达式的主要部分, 域的相对地址从 0 开始 T record LD end {T.type = record (top(tblstack)); T.width = top(offsetstack); pop(tblstack); pop(offsetstack); } L {t = mktable(nil); push(t, tblstack); push(0, offsetstack); } 符号表的中名字 S id := E { p = lookup(id.lexeme); if (p!= nil ) emit ( p, =,E.place); else error; } E E 1 + E 2 { E.place = newtemp(); emit (E.place, =,E 1.place, +,E 2.place); } 符号表的中名字 E E 1 { E.place = newtemp(); emit (E.place, =, uminus,e 1.place); } E (E 1 ){E.place = E 1.place;} E id { p = lookup(id.lexeme); if (p!= nil ) E.place = p;elseerror; } 4
5 6.3.2 数组元素的地址计算一维数组 A 的第 i 个元素的地址计算 base +(i low ) w 变换成 i w +(base low w) 减少了运行时的计算 二维数组 A: array[1..2, 1..3] of T 列为主 A[1, 1], A[2, 1], A[1, 2], A[2, 2], A[1, 3], A[2, 3] 行为主 A[1, 1], A[1, 2], A[1, 3], A[2, 1], A[2, 2], A[2, 3] base +((i 1 low 1 ) n 2 +(i 2 low 2 )) w (A[i 1, i 2 ] 的地址, 其中 n 2 = high 2 low 2 +1) 变换成 ((i 1 n 2 )+i 2 ) w + (base ((low 1 n 2 )+low 2 ) w) 多维数组下标变量 A[i 1, i 2,, i k ] 的地址表达式 (( ((i 1 n 2 + i 2 ) n 3 + i 3 ) ) n k + i k ) w + base (( ((low 1 n 2 + low 2 ) n 3 + low 3 ) ) n k + low k ) w (( ((i 1 n 2 + i 2 ) n 3 + i 3 ) ) n k + i k ) w + invariant(a) 数组元素地址计算的翻译方案 下标变量访问的产生式 L id [ Elist ] id Elist Elist, E E 不便于在处理下标表达式时到符号表取信息 为便于写语义动作, 改成等价的 L Elist ] id Elist Elist, E id[e 所有产生式 S L := E E E + E E (E ) E L L Elist ] L id Elist Elist, E Elist id [ E L id {L.place =id.place; L.offset = null; } Elist id [ E {Elist.place = E.place; Elist.ndim =1; Elist.array =id.place;} Elist Elis, E { t = newtemp();m = Elis.ndim +1; emit (t, =,Elis.place,, limit(elis.array, m) ); emit (t, =,t, +,E.place); Elist.array = Elis.array; Elist.place = t; Elist.ndim = m;} L Elist ] { L.place = newtemp(); emit (L.place, =,invariant (Elist.array)); L.offset = newtemp(); emit (L.offset, =,Elist.place,,width(Elist.array));} 5
6 E L{if (L.offset == null) / L 是简单变量 / E.place = L.place ; else { E.place = newtemp(); emit (E.place, =,L.place, [, L.offset, ] ); }} E E 1 + E 2 {E.place = newtemp(); emit (E.place, =,E 1.place, +,E 2.place); } E (E 1 ){ E.place = E 1.place ;} S L := E {if(l.offset == null) / L 是简单变量 / emit (L.place, =,E.place) else emit (L.place, [, L.offset, ], =, E.place); } L.place =x L.offset = null x = y * 20 = + z Elist.place =y Elist.ndim =1 Elist.array =A A [ x = t 4 S := t 4 = t 2 [t 3 ] E.place =t 4 t 2 =c //c=a 84 L.place =t 2 t 3 = * 4 L.offset =t 3 Elist.place = Elist.ndim =2 Elist.array =A E.place =y L.place =y L.offset = null, y x := A[ y, z ] 的注释分析树 E.place =z L.place =z L.offset = null z ] 类型转换 例 x=y+i j (x 和 y 的类型是 real,i 和 j 的类型是 integer) 中间代码 =iint*j t 2 = inttoreal t 3 = y real+ t 2 x=t 3 E E 1 + E 2 E.place = newtemp(); if (E 1.type == integer && E 2.type == integer ) { emit (E.place, =,E 1.place, int+, E 2.place); E.type = integer; } else if (E 1.type == integer && E 2.type == real ) { u = newtemp(); emit (u, =, inttoreal,e 1.place); emit (E.place, =,u, real+, E 2.place); E.type = real; } 布尔表达式 布尔表达式有两个基本目的 计算逻辑值 在控制流语句中用作条件表达式 本节所用的布尔表达式文法 B B or B B and B notb (B ) E relop E true false 布尔表达式 布尔表达式的完全计算 值的表示数值化 其计算类似于算术表达式的计算 布尔表达式的 短路 计算 B 1 or B 2 定义成 if B 1 then true else B 2 B 1 and B 2 定义成 if B 1 then B 2 else false 用控制流来实现计算, 即用程序中的位置来表示值, 因为布尔表达式通常用来决定控制流走向 两种不同计算方式可能导致程序结果不一样 6
7 例语句 if or x > 200 and x!= y then x := 0 的短路计算代码如下 if goto L 2 iffalse x > 200 goto L 1 iffalse x!= y goto L 1 L 2 : x = 0 L 1 : 控制流语句的中间代码结构 S if B then S 1 if B then S 1 else S 2 while B do S 1 S 1 ; S 2 (a) if-then S.begin: goto S.begin (c) while-do goto S.next B.false: S 2.code (b) if-then-else S 1.next: S 2.code (d) S 1 ; S 2 if-then 若改成下面形式, 会产生连续的跳转 B.false: (a) if-then S.begin: goto S.begin (c) while-do goto S.next B.false: S 2.code (b) if-then-else S 1.next: S 2.code (d) S 1 ; S 2 设计翻译方案的困难 B.true, B.false, S.begin 和 S.next 都是继承属性 由于 究竟有多少条指令需等 B 翻译结束才能知道, 故在翻译 B 的过程中 (a) if-then 难以知道 B.true 在三地址指令序列中的准确位置 对于 B.false 来说, 情况更严重, 图中没有给出该标号的定义 采用增加标记非终结符 使用全局变量和改写文法等方式都无法解决这种继承属性带来的困难 解决办法 回填技术 1 从概念上说 把跳转到同一个标号的指令放到同一张指令表中 等目的标号确定时再把目的 (a) if-then 标号填写到该表中的各条指令中 2 从写翻译方案的角度 非终结符 B 的综合属性 truelist 和 falselist 用来管理布尔表达式的跳转代码 等跳转的目的标号确定时通过过程调用来回填 7
8 6.4.3 布尔表达式的回填 B B 1 or MB 2 { backpatch(b 1.falselist, M.instr); B.falselist = B 2.falselist; B.truelist = merge(b1.truelist, B2.truelist);} B B 1 and MB 2 { backpatch(b 1.truelist, M.instr); B.truelist = B 2.truelist; B.falselist=merge(B 1.falselist, B 2.falselist); } B not B 1 { B.truelist = B 1.falselist; B.falselist = B 1.truelist;} B ( B 1 ) {B.truelist = B 1.truelist; B.falselist = B 1.falselist;} 布尔表达式的回填 B E 1 relop E 2 { B.truelist = makelist(nextinstr); B.falselist = makelist(nextinstr+1); emit( if, E 1.place, relop.op, E 2.place, goto _ ); emit( goto _ ); } B true { B.truelist = makelist(nextinstr); B.falselist = null; emit( goto _ ); } B false { B.falselist = makelist(nextinstr); B.truelist = null; emit( goto _ ); } M { M.instr = nextinstr;} x < 100 B.t = {102} and M.i = 104 B.f = {103} x > 200 x!= y B.t = {102} and M.i = : goto _ B.f = {103} x > 200 x!= y B.t = {102} and M.i = : goto _ B.f = {103} x > 200 x!= y B.t = {102} and M.i = : goto _ B.f = {103} x > : if x > 200 goto_ x!= y 103: goto _ 8
9 B.t = {102} and M.i = : goto _ B.f = {103} x > : if x > 200 goto_ x!= y 103: goto _ B.t = {102} and M.i = : goto _ B.f = {103} x > 200 x!= y 102: if x > 200 goto_ 104: if x!= y goto_ 103: goto _ 105: goto _ B.t = {102} and M.i = : goto _ B.f = {103} x > 200 x!= y 102: if x > 200 goto : if x!= y goto_ 103: goto _ 105: goto _ B.t = {102} and M.i = : goto 102 B.f = {103} x > 200 x!= y 102: if x > 200 goto : if x!= y goto_ 103: goto _ 105: goto _ 控制流语句的翻译 (a) if-then S if B then MS 1 { backpatch(b.truelist, M.instr); S.nextlist = merge(b.falselist, S 1.nextlist); } M { M.instr = nextinstr;} 控制流语句的翻译 goto S.next B.false: S 2.code (b) if-then-else S if B then M 1 S 1 N else M 2 S 2 { backpatch(b.truelist, M 1.instr); backpatch(b.falselist, M 2.instr); S.nextlist = merge(merge(s 1.nextlist, N.nextlist), S 2.nextlist); } M { M.instr = nextinstr;} N { N.nextlist=makeList(nextinstr); emit( goto_ );} 9
10 6.4.4 控制流语句的翻译 S.begin: goto S.begin (c) while-do S while M 1 B do M 2 S 1 { backpatch(s 1.nextlist, M 1.instr); backpatch(b.truelist, M 2.instr); S.nextlist = B.falselist; emit( goto, M 1.instr);} M { M.instr = nextinstr;} 控制流语句的翻译 S 1.next: S S 1 ; MS 2 { backpatch(s 1.nextlist, M.instr); S.nextlist = S 2.nextlist;} M { M.instr = nextinstr;} S 2.code (d) S 1 ; S 开关语句的翻译 switch E begin case V 1 : S 1 case V 2 : S 2 case V n -1 : S n 1 default: S n end 分支数较少时 t=e L n-2 :ift!=v n-1 goto L n-1 ift!=v 1 goto L 1 S n -1 S 1 goto next goto next L n-1 : S n L 1 : ift!=v 2 goto L 2 next: S 2 goto next L 2 : 分支较多时, 将分支测试代码集中在一起, 便于生成较好的分支测试代码 t=e L n : S n goto test goto next L 1 : S 1 test: ift==v 1 goto L 1 goto next if t == V 2 goto L 2 L 2 : S 2 goto next if t == V n-1 goto L n-1 gotol n L n-1 : S n -1 next: goto next 中间代码增加一种 case 语句, 便于代码生成器对它进行特别处理 test: case V 1 L 1 case V 2 L 2 case V n-1 L n-1 case t L n next: 10
11 6.4.6 过程调用的翻译 S call id (Elist) Elist Elist, E Elist E 过程调用 id(e 1, E 2,,E n ) 的中间代码结构 E 1.place = E 1 E 2.place = E 2 E n.place = E n param E 1.place param E 2.place param E n.place call id.place, n S call id (Elist) { 为长度为 n 的队列中的每个 E.place, 执行 emit( param, E.place); emit( call, id.plase, n); } Elist Elist, E { 把 E.place 放入队列末尾 } Elist E { 将队列初始化, 并让它仅含 E.place} 本章要点 中间代码的几种形式, 它们之间的相互转换 符号表的组织和作用域信息的保存 数组元素定址的翻译方案, 布尔表达式的两种不同实现方式 赋值语句和各种控制流语句的中间代码格式和生成中间代码的翻译方案 过程调用的中间代码格式和生成中间代码的翻译方案 例题 1 Pascal 语言的标准将 for 语句 for v := initial to final do stmt 定义成和下面序列有同样的含义 : begin := initial; t 2 := final; if <= t 2 then begin v:= ; stmt; while v <> t 2 do begin v := succ(v); stmt end end end 例题 1 Pascal 语言的标准将 for 语句 for v := initial to final do stmt 能否定义成和下面序列有同样的含义? begin := initial; t 2 := final; v:= ; while v <= t 2 do begin stmt; v := succ(v) end end 11
12 例题 1 Pascal 语言 for 语句 for v := initial to final do stmt 的中间代码结构如下 : =initial t 2 =final if >t 2 goto L1 v= L2: stmt if v == t 2 goto L1 v=v+1 goto L2 L1: 例题 2 C 语言的 for 语句有下列形式 for (e 1 ;e 2 ;e 3 ) stmt 它和 e 1 ; while (e 2 ){ stmt; e 3 ; } 有同样的语义 例题 2 C 语言的 for 语句 for (e 1 ;e 2 ;e 3 ) stmt 的中间代码结构如下 e 1 L1: e 2 L2: e 3 goto L1 stmt goto L2 假转, 由外层语句决定真转 例题 3 Pascal 语言 var a,b : array[1..100] of integer; a:=b -- 允许数组之间赋值若 a 和 b 是同一类型的记录, 也允许赋值 C 语言数组类型不行, 结构体类型可以 为这种赋值选用或设计一种三地址语句, 它要便于生成目标代码 例题 3 Pascal 语言 var a,b : array[1..100] of integer; a:=b -- 允许数组之间赋值若 a 和 b 是同一类型的记录, 也允许赋值 仍然用中间代码复写语句 x=y, 在生成目标代码时, 必须根据它们类型对应的 size, 产生一连串的值传送指令 习 第一次 :6.1 第二次 :6.4, 6.9, 6.10 题 12
Microsoft PowerPoint - ch7 [Compatibility Mode]
记号流 第七章 分析器 静态检查器 中间代码生成 中间代码生成器 中间代码 代码生成器 本章内容 介绍几种常用的中间表示 (intermediate representation): 后缀表示 图形表示和三地址代码 用语法制导定义和翻译方案来说明源语言的各种构造怎样被翻译成中间形式 7.1.1 后缀表示 E E ope uope (E) id num 表达式 E 的后缀表示可以如下归纳定义 : 表达式
More informationMicrosoft PowerPoint - ch7.ppt [兼容模式]
第七章 中间代码生成 静态中间代码记号分析检查代码中间生成流器器生成代码器器本章内容 介绍几种常用的中间表示 (intermediate representation): 后缀表示 图形表示和三地址代码 用语法制导定义和翻译方案来说明源语言的各种 用语法制导定义和翻译方案来说明源语言的各种构造怎样被翻译成中间形式 7.1.1 后缀表示 7.1 中间语言 E E ope uope (E) id num
More informationMicrosoft PowerPoint - ir
中间语言与中间代码生成 张昱 编译原理和技术 0551-63603804,yuzhang@ustc.edu.cn 中国科学技术大学计算机科学与技术学院 记号流 本章内容 分析器 语法树 静态检查器 语法树 中间中间代码代码生成器 代码生成器 符号表本章内容 中间语言 : 常用的中间表示 (Intermediate Representation) 后缀表示 图表示 三地址代码 LLVM IR 基本块和控制流图
More information编译原理与技术
编译原理与技术 中间代码生成 2015/11/7 编译原理与技术 讲义 1 中间代码生成 - 布尔表达式翻译 - 控制流语句翻译 2015/11/7 编译原理与技术 讲义 2 布尔表达式的翻译 布尔表达式文法 G 4 E E 1 or E 2 E 1 and E 2 not E 1 ( E 1 ) id 1 relop id 2 true false id 3 布尔运算符 or and 和 not(
More information再版前言
第七章中间代码生成 在第一章已经介绍, 编译器的前端把源程序翻译成中间表示, 后端从中间代码产生目标代码, 与目标语言有关的细节尽可能限制在后端 使用独立于机器的中间形式的好处是 : 1. 再目标 (retargeting) 比较容易 把针对新机器的后端加到现成的前端上, 可以得到另一种机器的编译器 2. 独立于机器的代码优化器可用于这种中间表示 第九章将介绍这种代码优化 因此, 虽然可以把源程序直接翻译并生成目标代码,
More informationPowerPoint Presentation
第六章中间代码生成 许畅 南京大学计算机系 2018 年春季 本章内容 中间代码表示 表达式的有向无环图 DAG 三地址代码 :x = y op z 类型检查 类型 类型检查 表达式的翻译 中间代码生成 控制流 回填 2 编译器前端的逻辑结构 前端是对源语言进行分析并产生中间表示 处理与源语言相关的细节, 与目标机器无关 前端后端分开的好处 : 不同的源语言 不同的机器可以得到不同的编译器组合 3
More information编译原理 Compiler Principles 第六章中间代码生成 湖南大学信息科学与工程学院 软件工程系杨金民 2018
编译原理 Compiler Principles 第六章中间代码生成 湖南大学信息科学与工程学院 软件工程系杨金民 2018 什么叫语法制导的翻译 求表达式的值 id 1 + id 2 *id 3 4 + 3 * 5 文法 :E E + E E * E id E 5 E 1 + E 4 id 1 E 2 * E 3 id 2 id 3 四者的语义相同 对于计算机执行的指令流 : E 1 = id 1
More informationMicrosoft PowerPoint - 6 Intermediate-Code Generation.pptx
第六章中间代码生成 陈林 本章内容 中间代码表示 抽象语法树 三地址代码 中间代码生成 表达式 类型检查 控制流 编译器前端的逻辑结构 静态类型检查和中间代码生成的过程都可以用语法制导的翻译来描述和实现 对于抽象语法树这种中间表示的生成, 第五章已经介绍过 表达式的有向无环图 语法树中, 公共子表达式每出现一次, 就有一个对应的子树 表达式的有向无环图 (Directed Acyclic Graph,DAG)
More information内容提要 1 语法制导翻译语法制导定义 S 属性定义的自下而上计算 L 属性定义的自上而下计算 L 属性定义的自下而上计算 2 中间代码生成中间语言声明语句赋值语句布尔表达式和控制流语句
编译原理 第七章语法制导翻译及中间代码生成 方徽星 扬州大学信息工程学院 (505) fnghuixing@yzueducn 2018 年 6 月 内容提要 1 语法制导翻译语法制导定义 S 属性定义的自下而上计算 L 属性定义的自上而下计算 L 属性定义的自下而上计算 2 中间代码生成中间语言声明语句赋值语句布尔表达式和控制流语句 11 语法制导定义 (Syntx-Directed Definition)
More informationMicrosoft PowerPoint - L12-v3.pptx
Lecture 12: 中间代码生成 -II Xiaoyuan Xie 谢晓园 xxie@whu.edu.cn 计算机学院 E301 控制流翻译 控制流语句的翻译 文法 B表示布尔表达式 S代表语句 S if (B) S1 S if (B) S1 else S2 S while (B) S1 代码的布局见右图 继承属性 B.true B为真的跳转目标 B.false B为假的跳转目标 S.next
More information大侠素材铺
编译原理与技术 语法制导翻译 Ⅱ 计算机科学与技术学院 李诚 22/10/2018 Announcement Tutorial on Thursday (25/10/2018) 3B201, Class time Assignment review Q & A Cheng @ Compiler Fall 2018, USTC 2 主要内容 源程序 词法分析器 token 语法分析器 分析树 语义分析
More informationMicrosoft PowerPoint - ch4.ppt [兼容模式]
第四章 语法制导的翻译 本章内容 1 介绍语义描述的一种形式方法: 语法制导的翻译 (syntax-directed translation), 它包括两种具体形式 语法制导的定义 (syntax-directed definition) E E 1 + T E.code = E 1.code T.code + 可读性好, 更适于描述规范 翻译方案 (translation scheme) E E
More informationebook14-4
4 TINY LL(1) First F o l l o w t o p - d o w n 3 3. 3 backtracking parser predictive parser recursive-descent parsing L L ( 1 ) LL(1) parsing L L ( 1 ) L L ( 1 ) 1 L 2 L 1 L L ( k ) k L L ( 1 ) F i r s
More information编译原理原理与技术
编译原理与技术 语法制导翻译 2015/10/12 编译原理与技术 讲义 1 属性文法 语法制导翻译 S- 属性定义 L- 属性定义 语法制导定义与翻译方案 自底向上翻译 S- 属性定义自底向上计算 自底向上计算继承属性 自顶向下翻译 2015/10/12 编译原理与技术 讲义 2 属性文法 属性文法 (Attributed Grammar) 上下文无关文法 + 属性 + 属性计算规则 属性 - 用来描述文法符号的语义特征,
More informationCC213
: (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,
More information.size main,.lfe1-main.local b.comm b,4,4.comm c,4,4.ident "GCC: (GNU) egcs /Linux (egcs release)" 修改图 6.5 中计算声明名字
实验 : 1 阅读并理解 PL/0 语言前端编译器中的词法分析器, 扩展 PL/0 语言及其编译器, 以增加对上述多行注释的支持 2 [11 月 8 日开始检查 ] 参考 flex-examples, 将 PL/0 编译器中的词法分析部分的实现改造成两种构造方式 : 手工构造 ( 即使用原先在 pl0.c 中定义的 getch 和 getsym 函数 ) 用 flex 自动生成词法分析程序 ( 即编写描述
More information修改图 7.5 中计算声明名字的类型和相对地址的翻译方案, 允许名字表而不是单个名字出现在形式为 D id : T 的声明中 即允许 a, b, c : integer 这种形式的变量声明 下面是一个 C 语言程序 : long f1( i
2013.12.8 7.4 修改图 7.5 中计算声明名字的类型和相对地址的翻译方案, 允许名字表而不是单个名字出现在形式为 D id : T 的声明中 即允许 a, b, c : integer 这种形式的变量声明 2013.12.1 6.12 下面是一个 C 语言程序 : long f1( i ) long i; { return(i 10); long f2(long i) { return(i
More informationMicrosoft PowerPoint - L9-v3.pptx
Lecture 9: 语法制导的翻译 -I Xiaoyuan Xie 谢晓园 xxie@whu.edu.cn 计算机学院 E301 Introduction 9.1 概述 语义分析在编译程序中的作用 词法分析 目标代码生成 语法分析 中间代码优化 语义分析 分析 中间代码生成 合成 语法和语义的区别 语法 是描述一个合法定义的程序结构的规则 例如 id( ) 语义 说明一个合法定义的程序的含义
More information大侠素材铺
编译原理与技术 词法分析 Ⅱ 计算机科学与技术学院李诚 13/09/2018 主要内容 记号 (token) 源程序 词法分析器 getnexttoken 语法分析器 符号表 词法分析器的自动生成 正则表达式 NFA DFA 化简的 DFA 词法分析器的生成器 Lex: flex jflex Fst lexicl nlyzer genertor 2/51 Regulr Expr to NFA 正则表达式
More informationMicrosoft PowerPoint - syntaxdirect
本章内容 语法制导的翻译 编译原理和技术 张昱 055-63603804,yuzhang@ustc.edu.cn 中国科学技术大学计算机科学与技术学院 语义描述的一种形式方法 语法制导的定义 (syntax-directed definition) + E.code = E.code.code + 可读性好, 更适于描述规范 翻译方案 (translation scheme) + { pr + 陈述了实现细节
More information<4D F736F F D B1E0D2EBD4ADC0EDA3A8B5DA32B0E6A3A9BFB1CEF3B1ED2E646F63>
编译原理 ( 第 2 版 ) 勘误表 2008-8-31 1 第 2 页倒数第 2 行改成 : 分隔单词的空格通常在词法分析时被删去 2 第 3 页图 1.2 改成 : = = id, 1 + id, 1 + id, 2 id, 2 id, 3 60 id, 3 inttofloat (a) (b) 60 图 1.2 语义分析插入了类型转换 3 第 16 页倒数第 9 行开始的那段改成 : 上一节提到,
More informatione bug 0 x=0 y=5/x 0 Return 4 2
e 1 4 1 4 4.1 4.2 4.3 4.4 4.5 e 2 4.1 bug 0 x=0 y=5/x 0 Return 4 2 e 3 4 3 e 4 (true) (false) 4 4 e 5 4 5 4.2 1 G= V E V={n1,n2,,n m } E={e1,e2,,e p } e k ={n i,n j }, n i,n j V e 6 4.2 4 6 1 e 3 n 1 e
More informationOpen topic Bellman-Ford算法与负环
Open topic Bellman-Ford 2018 11 5 171860508@smail.nju.edu.cn 1/15 Contents 1. G s BF 2. BF 3. BF 2/15 BF G Bellman-Ford false 3/15 BF G Bellman-Ford false G c = v 0, v 1,..., v k (v 0 = v k ) k w(v i 1,
More information2006..,1..,2.,.,2..,3..,3 22..,4..,4 :..,5..,5 :..,5..,6..,6..,8..,10 :..,12..,1..,6..,6..,2 1907..,5,:..,1 :..,1 :..,1 :..,2..,2..,3 :..,1 :..,1..,1.
2006 2005..,5..,2 20 20..,2..,3..,3..,3..,3..,3..,5..,5 :..,8 1861 :..,11..,12 2005..,2..,1..,2..,1..,4..,6..,6 :..,10..,4..,4..,5..,1 :..,4..,6..,3..,4 1910..,5 :1930..,1..,4..,2 :..,2..,2..,1 19.., 1..,1..,1..,3..,3
More informationMicrosoft PowerPoint - ch4.ppt [兼容模式]
第四章语法制导的翻译 本章内容 1 介绍语义描述的一种形式方法 : 语法制导的翻译 (sytax-directed traslatio), 它包括两种具体形式 语法制导的定义 (sytax-directed defiitio) E.code = E 1.code.code 可读性好, 更适于描述规范 翻译方案 (traslatio scheme) { prit } 陈述了实现细节 ( 如语义规则的计算时机
More information, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1
21 , 7, Windows,,,, : 010-62782989 13501256678 13801310933,,,, ;,, ( CIP) /,,. : ;, 2005. 11 ( 21 ) ISBN 7-81082 - 634-4... - : -. TP316-44 CIP ( 2005) 123583 : : : : 100084 : 010-62776969 : 100044 : 010-51686414
More information2011-论文选集-2.cdr
! "#$# $$ "#$#$$" " $% &%!$ $ "#$$ " ! "!#!$ %" #& # ( #$ ) )& )# )$ ** "& ")! ! "" # $% & &( ( # ) )** )*+ )*$ )) ))" ),+ )," -./ ) ) ) " )++ )+" )%,, !"#" $ ! " #$% & ( & ) % #$% #$% & * #$%#$% #$% (
More informationOOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料
OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP
More information第三节 软件测试的过程与策略
...1...4...9...17...25...29...34...40...46...55...65...73 1 2 3 4 5 6 7 8 9 10 11 1 12 13 1 ABCD 2 A B C D 3 ABCD 4 A1/2 B1/3 C1/4 D2/3 5 % A20 B30 C40 D50 6 A B C D 7 A B C D / 8 A B C D 9 A B C D 10
More information集 27. 臺 灣 貿 易 史 薛 化 元 戴 寶 村 3F 558.0933 4421 97 28. 臺 灣 歷 史 的 鏡 與 窗 戴 寶 村 3/6F 733.2 4334 95 29. 樟 腦 鴉 片 與 專 賣 制 度 產 業 文 化 展 示 資 料 調 查 戴 寶 村 6F 555.93
1. 口 述 歷 史 : 細 說 從 前 懷 舊 時 戴 寶 村 曾 秋 美 賴 信 真 6F 733.9317 4334 89 2. 口 述 歷 史 : 說 古 道 今 話 桃 園 戴 寶 村 曾 秋 美 賴 信 真 6F 733.9317 4334-2 89 3. 大 臺 北 都 會 圈 客 家 史 戴 寶 村 溫 振 華 3/6F 536.21 4334 87 4. 小 的 臺 灣 史 蔡 承
More information第5章修改稿
(Programming Language), ok,, if then else,(), ()() 5.0 5.0.0, (Variable Declaration) var x : T x, T, x,,,, var x : T P = x, x' : T P P, () var x:t P,,, yz, var x : int x:=2. y := x+z = x, x' : int x' =2
More informationuntitled
1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override
More information( ) 001 ( 131 ) : 1- ISBN X/I 1091 :
( ) 001 ( 131 ) 850 1168 32 9. 125 4 191 2001 12 1 2001 12 1 : 1- ISBN 7-224-05898-X/I 1091 :13.00 2 ,,,,,,,,,,,,,,,,,,,,?,, 3 ,,?!,,,,,,,?,,,,,,,,,,,!!!!,,,,,,,,!,,?!,,!,,, 1988 10 11 4 ,,,,,,,,,,,,,,,,,!,,,
More informationchap07.key
#include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,
More information没有幻灯片标题
指针作为函数参数 : 原因 : 1 需要修改一个或多个值,( 用 return 语句不能解决问题 ) 2 执行效率的角度 使用方法 : 在函数原型以及函数首部中需要声明能够接受指针值的形参, 具体的写法为 : 数据类型 * 形参名 如果有多个指针型形参, 则用逗号分隔, 例如 : void swap(int *p1, int *p2) 它说明了形参 p1 p2 是指向整型变量的指针 在函数调用时,
More informationOOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数
OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double
More information38 47995529 威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 1059003070 號 39 47995534 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民
1 08414159 惠 鴻 眼 鏡 行 桃 園 市 中 壢 區 福 德 里 中 華 路 一 段 186 號 1 樓 30,000 獨 資 宋 耀 鴻 105/04/27 府 經 登 字 第 1059003866 號 2 17891110 承 元 冷 氣 空 調 工 程 行 桃 園 市 桃 園 區 中 德 里 國 際 路 1 段 98 巷 50 號 2 樓 之 4 200,000 獨 資 詹 安 平
More informationMicrosoft PowerPoint - 5 Syntax-Directed Translation.pptx
第五章语法制导的翻译 陈林 引言 使用上下文无关文法引导语言的翻译 CFG 的非终结符号代表了语言的某个构造 程序设计语言的构造由更小的构造组合而成 一个构造的语义可以由小构造的含义综合而来 比如 : 表达式 x+y 的类型由 x y 的类型和运算符 + 决定 也可以从附近的构造继承而来 比如 : 声明 int x; 中 x 的类型由它左边的类型表达式决定 语法制导定义和语法制导翻译 语法制导定义
More informationMicrosoft Word - 01.DOC
第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的
More information科学计算的语言-FORTRAN95
科 学 计 算 的 语 言 -FORTRAN95 目 录 第 一 篇 闲 话 第 1 章 目 的 是 计 算 第 2 章 FORTRAN95 如 何 描 述 计 算 第 3 章 FORTRAN 的 编 译 系 统 第 二 篇 计 算 的 叙 述 第 4 章 FORTRAN95 语 言 的 形 貌 第 5 章 准 备 数 据 第 6 章 构 造 数 据 第 7 章 声 明 数 据 第 8 章 构 造
More information馬偕醫學院 學生事務工作簡報
馬 偕 醫 學 院 總 務 處 簡 介 報 告 人 申 永 順 總 務 長 總 務 處 織 與 成 員 許 鎂 秀 曾 柏 壽 楊 嘉 華 吳 俊 仲 內 容 校 園 環 境 生 活 機 能 二 期 工 程 配 合 事 項 馬 偕 醫 學 院 一 期 校 園 簡 介 網 球 場 籃 / 排 球 場 三 芝 區 市 中 心 教 學 大 樓 5C 聯 合 行 政 辦 公 區 A 區 B 區 C 區 藝
More information! #$ % & ( ) % & ( ) % & ( ) % & ( ) % & ( ) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # ################################################### % & % & !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
More information《米开朗琪罗传》
! " # ! """"""""""""""""""" """"""""""""""""" """""""""""""""" $% """"""""""""" &# """"""""""""""" %# """"""""""""""" # """""""""""""""!$% """""""""""""""!&!! # $$$$$$$$$$$$$$$$$$ $$$$$$$$$!"#!%& (! "
More information,,!!!?,?,!,,,,,,,,,,!,,, : 1 ,,,,!, :, :,?,,,, 2 ( 1 ) 7 0 ( 11 ) ( 12 ) ( 13 ) ( 14 ) ( 15 ) ( 17 ) ( 18 ) ( 19 ) ( 21 ) ( 22 ) ( 23 ) ( 25 ) ( 26 ) ( 27 ) ( 29 ) ( 30 ) ( 31 ) ( 32 ) ( 33 ) ( 34 ) (
More information常州市建设工程招标公告
常 州 市 建 设 工 程 招 标 公 告 一 招 标 条 件 长 荡 湖 水 厂 及 配 套 管 网 项 目 ( 项 目 名 称 ) 长 荡 湖 水 厂 新 建 工 程 ( 标 段 名 称 ) 已 由 江 苏 省 发 展 和 改 革 委 员 会 ( 项 目 审 批 核 准 或 备 案 机 关 名 称 ) 以 省 发 展 改 革 委 关 于 金 坛 市 城 乡 水 务 有 限 公 司 长 荡 湖 水
More information试卷
( 试 题 中 凡 主 观 题 答 案 意 思 对 即 可, 若 与 答 案 不 同 而 言 之 成 理, 亦 可 酌 情 给 分 ) 一 ~ 二 (45 分 ) 1.B( 原 文 并 未 说 网 络 社 会 生 态 系 统 的 核 心 与 现 实 社 会 生 态 系 统 的 核 心 不 同 ) 2.D( 服 务 网 络 收 集 到 的 数 据 要 和 关 系 网 络 的 数 据 整 合 在 一 起,
More information标题
增幅名列广西第一 增幅名列广西第一 防城港市 2008 ~ 2009 年发展回顾与展望 吴东海 尹晓洲 摘 要: 2008 年防城港市生产总值突破 200 亿元, 达到 212 18 亿元, 增长 20 1%, 增幅名列广西第一 主要经济指标增幅保持在广西前列, 开 放发展成就突出, 各项社会事业全面发展 2009 年, 防城港市将以钢铁 核电两大项目为引领, 以 项目建设攻坚年 为主题, 大力实施产业发展
More information目 录 一 重 要 提 示... 3 二 公 司 主 要 财 务 数 据 和 股 东 变 化... 3 三 重 要 事 项... 8 四 附 录... 15 2 / 28
公 司 代 码 :600549 公 司 简 称 : 厦 门 钨 业 厦 门 钨 业 股 份 有 限 公 司 2015 年 第 三 季 度 报 告 1 / 28 目 录 一 重 要 提 示... 3 二 公 司 主 要 财 务 数 据 和 股 东 变 化... 3 三 重 要 事 项... 8 四 附 录... 15 2 / 28 一 重 要 提 示 1.1 公 司 董 事 会 监 事 会 及 董 事
More informationFY.DOC
高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主
More informationTwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc
TwinCAT 2001.12.11 TwinCAT 1. TwinCAT... 3 2.... 4... 4...11 3. TwinCAT PLC... 13... 13 PLC IEC 61131-3... 14 4. TwinCAT... 17... 17 5. TwinCAT... 18... 18 6.... 19 Maschine.pro... 19... 27 7.... 31...
More information9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B
25 9 2008 9 M ICROEL ECTRON ICS & COMPU TER Vol. 25 No. 9 September 2008 J ava 1,2, 1,2, 1,2 (1, 330022 ; 2, 330022) :,. Apla - Java,,.. : PAR ;Apla - Java ; ;CMP ; : TP311 : A : 1000-7180 (2008) 09-0018
More information无类继承.key
无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo aiming@gmail.com https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255
More informationCC213
: (Ken-Yi Lee), E-mail: feis.tw@gmail.com 177 [P179] (1) - [P181] [P182] (2) - for [P183] (3) - switch [P184] [P187] [P189] [P194] 178 [ ]; : : int var; : int var[3]; var 2293620 var[0] var[1] 2293620
More informationOOP with Java 通知 Project 4: 4 月 19 日晚 9 点
OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d
More informationVHDL(Statements) (Sequential Statement) (Concurrent Statement) VHDL (Architecture)VHDL (PROCESS)(Sub-program) 2
VHDL (Statements) VHDL(Statements) (Sequential Statement) (Concurrent Statement) VHDL (Architecture)VHDL (PROCESS)(Sub-program) 2 (Assignment Statement) (Signal Assignment Statement) (Variable Assignment
More informationC++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1
C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,
More information( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)
( CIP) /. :, 2005. 2 ( ) ISBN 7-5624-3339-9.......... TP311. 1 CIP ( 2005) 011794 : : : : * : : 174 ( A ) :400030 : ( 023) 65102378 65105781 : ( 023) 65103686 65105565 : http: / /www. cqup. com. cn : fxk@cqup.
More information团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生
共 青 团 工 作 简 报 2011 年 第 1 期 共 青 团 大 连 海 洋 大 学 委 员 会 团 学 要 闻 : 导 读 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 我 校 在 大 连 市 大 学 生 创 新 创 意 作 品 大 赛 中 取 得 佳 绩 校 团 委 召 开 学 生 干 部 思 想 动 态 座 谈 会 校 团 委 组 织 开 展 弘 扬 雷 锋
More informationMicrosoft PowerPoint - 7-Semantic&IR.ppt
7.1 中间表示的概念 第七章 : 语义分析和中间代码生成 2008 年秋 抽象语法树 vs 类似目标代码 是否使用目标机和运行时环境的详细信 息 数据类型的尺寸 ; 寄存器 变量的存储位置 前端 IR 后端 是否使用符号表中的全部信息 作用域 嵌套层次 变量的偏移量 其它用处 : 用于代码分析以产生高效目标代码 用于多目标编译 (retargetable) 中间代码生成 中间代码生成位于词法分析和语法分析之后,
More informationMicrosoft PowerPoint - 06 - ShengYang Presentation Slides_240609
沈 阳 水 务 一 体 化 发 展 的 探 索 水 允 办 简 行 各 资 许 表 要 业 位 很 源 我 示 介 的 嘉 荣 周 代 热 绍 基 宾 幸, 表 烈 一 本 再 女 并 沈 的 下 情 次 士 有 阳 祝 沈 况 来 : 们 机 水 贺 阳 到! 会 务 的 美 先 下 与 集 城 丽 生 面 各 团 市 的, 们 位 对 概 狮 : 我 交 活 况 城 向 流 动 和 大 参 在
More information<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>
1. 請 問 誰 提 出 積 體 電 路 (IC) 上 可 容 納 的 電 晶 體 數 目, 約 每 隔 24 個 月 (1975 年 更 改 為 18 個 月 ) 便 會 增 加 一 倍, 效 能 也 將 提 升 一 倍, 也 揭 示 了 資 訊 科 技 進 步 的 速 度? (A) 英 特 爾 (Intel) 公 司 創 始 人 戈 登. 摩 爾 (Gordon Moore) (B) 微 軟 (Microsoft)
More information数 学 高 分 的 展 望 一 管 理 类 联 考 分 析 第 一 篇 大 纲 解 析 篇 编 写 : 孙 华 明 1 综 合 能 力 考 试 时 间 :014 年 1 月 4 日 上 午 8:30~11:30 分 值 分 配 : 数 学 :75 分 逻 辑 :60 分 作 文 :65 分 ; 总
目 录 数 学 高 分 的 展 望... 1 第 一 篇 大 纲 解 析 篇... 1 一 管 理 类 联 考 分 析... 1 二 最 新 大 纲 解 析... 1 三 考 前 复 习 资 料 及 方 法... 第 二 篇 总 结 篇... 4 1 应 用 题 考 点 总 结 与 技 巧 归 纳... 4 代 数 模 块 题 型 归 纳 及 考 点 总 结... 9 3 数 列 模 块 题 型 归
More informationMicrosoft PowerPoint - typecheck
本章内容 类型检查 编译原理和技术 张昱 0551-63603804,yuzhang@ustc.edu.cn 中国科学技术大学计算机科学与技术学院 记号流 语法分析器 语法树语法树类型中间代码中间检查器生成器表示 符号表 语义检查中最典型的部分 类型检查 类型系统 类型检查 符号表的作用 多态函数 重载 其他的静态检查 ( 不详细介绍 ) 控制流检查 唯一性检查 关联名字检查 张昱 : 编译原理和技术
More informationinstructions.PDF
94 SIMATIC (END) (END) Micro/WIN 32 (STOP) (STOP) CPU RUN STOP STOP CPU RUN STOP (WDR) (Watchdog Reset) (WDR) CPU WDR WDR ( ) I/O ( I/O ) SM (SM0 SM5 SM29 ) 25 0 ms 00 ms STOP 300ms 300ms WDR S7-200 CPU
More informationMicrosoft PowerPoint - SyntaxDirectedTranslation [Compatibility Mode]
Outline rror Handling Syntax-Directed Translation xtensions of CFG for parsing Precedence declarations rror handling Semantic actions Constructing a parse tree Originated from Prof. Aiken CS 14 Modified
More information四川省普通高等学校
四 川 省 普 通 高 等 学 校 计 算 机 应 用 知 识 和 能 力 等 级 考 试 考 试 大 纲 (2013 年 试 行 版 ) 四 川 省 教 育 厅 计 算 机 等 级 考 试 中 心 2013 年 1 月 目 录 一 级 考 试 大 纲 1 二 级 考 试 大 纲 6 程 序 设 计 公 共 基 础 知 识 6 BASIC 语 言 程 序 设 计 (Visual Basic) 9
More information帝国CMS下在PHP文件中调用数据库类执行SQL语句实例
帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)
More informationA B C D E A B C F A C. D F. A. B. C. D. E. F.
... 4. 5. 6. 7. A B A C D B E F A, B. C, D. E, F. A. B. C. D. E. F. A B C D E A B C F A C. D F. A. B. C. D. E. F. 40 60 A 0% B GB 8566 88 8 C D E A. B. C E. A. B. C. D. E. 70% GB 8566 88 8 4 A B C D E
More information元 [ 所 17-1-2-3] IA27 ( D ) 下 列 何 項 情 況, 其 夫 妻 所 得 可 免 合 併 申 報? (A) 當 年 度 結 婚 (B) 當 年 度 離 婚 (C) 妻 58 歲, 夫 62 歲 無 所 得 受 其 子 扶 養 (D) 以 上 皆 是 [ 所 17-1-1]
綜 合 所 得 稅 選 擇 題 題 庫 IA01 ( A ) 非 中 華 民 國 境 內 居 住 之 個 人, 取 有 中 華 民 國 境 內 銀 行 給 付 之 活 期 儲 蓄 存 款 利 息 所 得, 依 據 所 得 稅 法 規 定, 應 否 課 徵 綜 合 所 得 稅? (A) 應 就 源 扣 繳 (B) 全 年 在 27 萬 元 以 下 免 納 所 得 稅 (C) 應 該 辦 理 結 算 申
More information汇集全球21位医生的经验和智慧,总结出最实用的专业建议,这些都是最值得你牢记的健康提醒
彙 集 全 球 21 位 醫 生 的 經 驗 和 智 慧, 總 結 出 最 實 用 的 專 業 建 議, 這 些 都 是 最 值 得 你 牢 記 的 健 康 提 醒 top1. 不 是 每 個 人 都 適 合 做 近 視 矯 行 手 術, 除 非 你 在 手 術 前 已 經 持 續 穩 定 地 佩 戴 了 一 年 以 上 的 近 視 眼 鏡 或 者 隱 形 眼 鏡 如 果 你 時 摘 時 戴 眼 鏡,
More information1 行 业 发 展 不 平 衡 我 国 房 地 产 中 介 服 务 业 起 步 较 晚, 专 业 分 工 程 度 和 国 外 发 达 国 家 相 比 还 有 很 大 差 距 房 地 产 中 介 服 务 行 业 的 发 展 水 平 与 房 地 产 开 发 行 业 的 市 场 化 水 平 密 切 相 关
房 地 产 中 介 服 务 : 仍 处 于 成 长 期, 市 场 空 间 巨 大 作 者 : 庞 增 华 房 地 产 中 介 服 务 业 内 的 企 业 包 括 依 法 设 立 并 具 备 房 地 产 中 介 资 格 的 房 地 产 顾 问 策 划 房 地 产 代 理 销 售 房 地 产 评 估 房 地 产 经 纪 等 中 介 服 务 机 构, 是 房 地 产 开 发 价 值 链 中 不 可 或 缺
More informationz x / +/- < >< >< >< >< > 3 b10x b10x 0~9,a~f,A~F, 0~9,a~f,A~F, x,x,z,z,?,_ x,x,z,z,?,_ h H 0~9,_ 0~9,_ d D 0~7,x,X,z,Z
Verilog Verilog HDL HDL Verilog Verilog 1. 1. 1.1 1.1 TAB TAB VerilogHDL VerilogHDL C 1.2 1.2 C // // /* /* /* /* SYNOPSY SYNOPSY Design Compiler Design Compiler // //synopsys synopsys /* /*synopsys synopsys
More informationC/C++程序设计 - 字符串与格式化输入/输出
C/C++ / Table of contents 1. 2. 3. 4. 1 i # include # include // density of human body : 1. 04 e3 kg / m ^3 # define DENSITY 1. 04 e3 int main ( void ) { float weight, volume ; int
More information1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10
Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1
More informationMicrosoft Word - 第3章.doc
第 3 章流程控制和数组 3.1 实验目的 (1) 熟练掌握控制台应用程序的代码编写和调试, 以及运行方法 (2) 掌握选择结构的一般语法格式和应用 (3) 掌握 switch 语句的用法 (4) 掌握选择结构的嵌套的用法, 能灵活使用选择结构解决实际问题 (5) 掌握 while 循环语句的一般语法格式 (6) 掌握 for 循环语句的一般语法格式 (7) 掌握循环嵌套的语法格式 (8) 掌握一维数组的定义
More information《计算概论》课程 第十九讲 C 程序设计语言应用
计算概论 A 程序设计部分 字符数组与字符串 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn 字符数组的定义 #include int main() char a[10] = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' ; for (int i = 0; i < 10; i++) cout
More information書本介紹
班 級 經 營 期 末 報 告 組 員 : 幼 三 甲 4A0I0030 蔡 依 璇 4A0I0048 蘇 家 儀 4A0I0096 張 容 嫣 4A0I0098 袁 少 潔 書 本 介 紹 閱 讀 對 象 : 小 學 低 年 級 的 老 師 新 生 家 長 有 意 從 事 小 學 者 及 關 心 教 育 品 質 的 社 會 人 士 內 容 : 1. 教 師 如 何 成 功 有 效 地 經 營 低
More informationMicrosoft PowerPoint - 7-Semantic_IR12.ppt [兼容模式]
中间代码生成 第七章 : 语义分析和中间代码生成 赵银亮 词法分析 语法分析 中间代码生成 中间代码的表示形式有多种 : 逆波兰表示三地址码 ( 三元式 四元式 ) 抽象语法树 P- 代码 属性文法是实现中间代码生成的常用手段 2012 本章内容 : 几种中间表示说明语句的翻译简单算术表达式和赋值句到四元式的翻译布尔表达式到四元式的翻译控制语句的翻译数组元素的引用过程调用 7.1 中间表示的概念 抽象语法树
More information投稿類別:電子工程類
投 稿 類 別 : 工 程 技 術 類 篇 名 : 井 字 生 死 戰 攻 略 作 者 : 陳 威 宇 國 立 臺 南 高 級 海 事 水 產 職 業 學 校 電 子 科 二 年 甲 班 邱 富 群 國 立 臺 南 高 級 海 事 水 產 職 業 學 校 電 子 科 二 年 甲 班 指 導 老 師 : 林 育 助 老 師 王 彥 盛 老 師 壹 前 言 家 喻 戶 曉 的 井 字 遊 戲 (Tic-Tac-Toe)
More informationaf9c70ccea1f1950c6732b99b2e51134_ pdf
$450 ( $340 ( $900( $670 ( L $2,640 ( M $2,000 ( K E $3730 ( $2,850( $5,740 ( $4,350( X D $790 $590 ( $1,390( $1,040 ( $1,980( $1,480( L M K $4,050 ( $3,060 ( E $3730 ( $2,850( $5,740 ( $4,350( X D +$70
More informationC/C++ 语言 - 循环
C/C++ Table of contents 7. 1. 2. while 3. 4. 5. for 6. 8. (do while) 9. 10. (nested loop) 11. 12. 13. 1 // summing.c: # include int main ( void ) { long num ; long sum = 0L; int status ; printf
More information!!! #!!! $##%!!! $!!!! &!!!! (!! %!! )!!! *!!!!!!! #!!!!! $
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!# $% %!% % % &% % % $% %!% % &% % %! ( ) $ # ## # *# # +# # # #,# # # # $ !!! #!!! $##%!!! $!!!! &!!!! (!! %!! )!!! *!!!!!!! #!!!!! $ !! +# 2 %,# & 0 3 #!!! $%!!!!!!!!!!!!!!!
More information<4D6963726F736F667420576F7264202D20D5D0B1EACEC4BCFEBCB0C7E5BDE0B7FECEF1BACFCDAC28C2C9CAA6B0E631A3A92E646F6378>
投 标 邀 请 书 一 招 标 单 位 : 广 东 白 云 城 市 酒 店 有 限 公 司 二 招 标 地 址 : 广 州 市 环 市 西 路 179 号 三 公 告 时 间 :2016 年 7 月 27 日 2016 年 8 月 1 日 四 工 程 名 称 : 广 东 白 云 城 市 酒 店 外 围 卫 生 清 洁 外 包 项 目 五 工 程 內 容 : 酒 店 外 围 区 域 卫 生 清 洁,
More information<4D6963726F736F667420576F7264202D20B160A5CEA4A4B0EABCF4BB79A5DCA8D22E646F63>
1 此 書 是 美 尚 先 生 遺 稿,2011 年 網 上 版 是 唯 一 版 本 2 小 小 子 ( 兒 ), 坐 門 檻 ( 兒 ), 哭 哭 啼 啼 想 媳 婦 ( 兒 ) 想 媳 婦 ( 兒 ) 幹 嗎? 點 燈 做 伴 ( 兒 ), 吹 燈 說 話 ( 兒 ), 清 早 起 來 梳 個 大 小 辮 ( 兒 ) ------ 就 我 記 憶 所 及, 這 是 我 出 生 兩 三 歲 時 母
More information國立中山大學學位論文典藏.PDF
國 立 中 山 大 學 中 國 文 學 系 碩 士 論 文 漢 初 黄 老 學 說 的 經 世 觀 及 其 實 踐 研 究 生 : 楊 芳 華 撰 指 導 教 授 : 夏 長 樸 教 授 中 華 民 國 九 十 五 年 六 月 論 文 摘 要 黃 老 思 想 在 中 國 學 術 史 上 是 一 個 重 要 課 題, 也 在 漢 初 政 治 上 產 生 過 相 當 大 的 影 響, 漢 初 的 文 景
More information"#" " "" " " "# $ " %( )# #( %& ( " % " " # ) *# " # " $ " #(( " " "#+( % " % $ " & # " " $ $ " " $ % & " #$ % $ "& $ "" " ") # #( "( &( %+"(
")" " "" ( " "((*+, # *( $ ( ) $ $ $ % * $ % #& $ +* $ ( )$ $ + & $ ( ), " " # " # # # "# $# " $ $ # % & $"#$%% & $ $ & " $%&% " $"# $ % $& % & & & (# " % #$ % " * # & %""(#&%)* % $ ")$# #" $ +$ " # $
More information89,,,,,,,,,,,,,,,,?,???,,,,,,,,,,,,,
:,,,,,,,,, : ; ;; ;,,,,, 89,,,,,,,,,,,,,,,,?,???,,,,,,,,,,,,, 90,,,,,,,, ( ),?,,, A B,C C?,,,,?,,,,,,,,,,,,,,,,,, 91 ( ),,,,,,,,,, :,,,,,,,,,,,,,,,,, ; ;, ;,,,,, 92,, (),,, ( ),,,,,,,,,,,,,,,,,,,,,,,,,
More information!##$ %!!##$ & (!##$ %!!##$ &!##$!##(!##$! "
"!! " "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " " " #$$% #$$%! "# $ % &$ & "# $ " ( # $! && % ( "!!# # $ % & "! & # #$ $! #$ %! " !##$ %!!##$ & (!##$ %!!##$ &!##$!##(!##$! " " #$ %& ($ )$ *$ +$,$ %&,# #-.#
More information!"#!" # $% & ($) *! +,-./ 0%)!1"%& 0%2!$!$$$ "$$$$ #$ % $$30!4$4 5,6 *& (+ 0!&" * + 7!!4 & ( )! & ( )! 80)09! 7&! #!1!1$" &&!!%!,-./ 0%)!1"%& 0%2 &1$
!"#!" # $% & ($) *! +,-./ 0%)!1"%& 0%2!$!$$$ "$$$$ #$ % $$30!4$4 5,6 *& (+ 0!&" * + 7!!4 & ( )! & ( )! 80)09! 7&! #!1!1$" &&!!%!,-./ 0%)!1"%& 0%2 &1$ : 8*! +1)7(0707%!1 1(&))717 8*! +1)7(77!& )"&0!1! 1"!7"1!1
More information2016 年 地 质 工 程 系 教 学 工 作 安 排 2016 学 年 我 系 将 在 总 结 过 去 工 作 的 基 础 上, 结 合 今 年 学 院 以 抓 质 量 强 内 涵 促 改 革 调 结 构 建 品 牌 细 管 理 重 过 程 为 宗 旨, 以 规 范 管 理 深 化 内 涵 为
2016 年 地 质 工 程 系 教 学 工 作 安 排 2016 年 教 学 工 作 安 排 2015 2016 学 年 第 二 学 期 教 学 工 作 计 划 二 O 一 六 年 三 月 十 日 2016 年 地 质 工 程 系 教 学 工 作 安 排 2016 学 年 我 系 将 在 总 结 过 去 工 作 的 基 础 上, 结 合 今 年 学 院 以 抓 质 量 强 内 涵 促 改 革 调
More information,,,,,,,,,,,,,, :,,,, 1 ?,,, :,,,?,,?, :,,,,,,,,,? :,, :,,?, :??, :,!,, 2 ,,,,,,,,,,,,,,,,,?,,,,,,,,,,,,,, :, 3 !?!?,!,!,, :,,,,,,,,,,,,,,,,,,,,,,,,,? :??,, 4 ,,,,,,, :?, :,,,,,,,,,,,,,, 5 ,,,,,,,,,,,,,,,,,,,,,,,,,?,??
More information<4D6963726F736F667420576F7264202D203136BCADBBD8D2E4D3EBD1D0BEBF2E646F63>
一 九 八 八 年 创 刊 回 忆 与 研 究 第 十 六 辑 上 海 市 新 四 军 历 史 研 究 会 浙 东 浙 南 分 会 编 二 O 一 三 年 十 二 月 1 ( 封 面 折 页 字 ) 编 委 会 顾 问 丁 公 量 丁 柯 吴 文 达 汪 志 荣 戚 南 强 李 国 经 主 编 陈 晓 光 副 主 编 葛 奇 忠 方 思 朋 编 委 ( 按 姓 氏 笔 画 为 序 ) 方 思 朋 王
More information萧山中学课程建设方案.doc
- 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - 2 2 4 4 4 2 2 4 4 4 4 4 5 5 4 4 4 4 5 5 4 4 4 4 5 5 3 3 3 3 4(2) 4(2) 4(2) 4(2) 4 4 4 4 3 3 3 3 3 3 4 4 4 4 4(2) 4(2) 4(2) 4(2) 2 2 2 2 4 4 4 4 2 2 2 2 2
More information