Microsoft PowerPoint - 7-Semantic&IR.ppt

Size: px
Start display at page:

Download "Microsoft PowerPoint - 7-Semantic&IR.ppt"

Transcription

1 7.1 中间表示的概念 第七章 : 语义分析和中间代码生成 2008 年秋 抽象语法树 vs 类似目标代码 是否使用目标机和运行时环境的详细信 息 数据类型的尺寸 ; 寄存器 变量的存储位置 前端 IR 后端 是否使用符号表中的全部信息 作用域 嵌套层次 变量的偏移量 其它用处 : 用于代码分析以产生高效目标代码 用于多目标编译 (retargetable) 中间代码生成 中间代码生成位于词法分析和语法分析之后, 是代码生成中的一个阶段 ; 中间代码的形式很多, 如逆波兰记号 抽象语法树 三地址码 ( 三元式 四元式 ) P- 代码, 等等 属性文法是用于中间代码生成的常用的方法 后缀式 - 逆波兰表示 用于表示表达式时 : 变量或常量的后缀式是自身 ; e 1 op e 2 的后缀式是 e 1 e 2 op, 其中 e 1, e 2 分别是 e 1 和 e 2 的后缀式 ; (e) 的后缀式就是 e 的后缀式 ; A+B AB+ A+B*C x/y^z-d*e (a=0 b>3) (e x y) a0=b3> exy 运算对象出现的顺序相同 ; 运算符是按实际计算次序从左到右排列 本章内容 : 1. 中间表示形式 2. 说明语句的翻译 3. 简单算术表达式和赋值句到四元式的翻译 4. 布尔表达式到四元式的翻译 5. 控制语句的翻译 6. 数组元素的引用 7. 过程调用 对后缀式求值 使用一个栈来求值 过程 : 从左到右依次扫描后缀式表示中的各个符号, 每遇到一个运算对象, 就压入栈中 ; 每遇到一个运算符时, 就弹出栈顶 k 个运算对象进行运算, 并将结果压入栈顶 结束时, 栈顶为整个表达式的值 x/y^z-d*e ABC*+ xyz^/de*- xyz^/de*- Yinliang Zhao 1

2 后缀式的推广 op 为 k 目运算符, 则 op 作用于 e 1 e 2 e k 的结果用 e 1 e 2 e k op 来表示 在向量 POST 存放的后缀式 e p 1 p 2 下标 若用? 表示 if-then-else, If a then if c-d then a+c else a*c else a+b a?c-d?a+c:a*c:a+b 表示为 : a cd- ac+ ac*? ab+? x y 符号表 e' p 1 BZ s 1 ' p 2 BR s 2 ' 数组 后缀式表示中注意的问题 属性文法表示 后缀式 : exy? 含义 : e 不等于 0, 取 x, 否则取 y. 这种表示法要求在任何情况下都要把 x,y 都计算出来, 但只会用到其中一个值 语义上的差异 : 如果运算对象无定义或者有副作用, 则后缀表示法不仅无效, 而且可能是错误的 ; 还有代码效率问题 属性 addr: 纪录运算对象的起始位置向量 POST 和指针 p 1 2+T {1.addr=2.addr; POST[p]= + ; p++;} T {.addr=t.addr} T1 T2*F {T1.addr=T2.addr; POST[p]= * ; p++;} T F F () {T.addr=F.addr;} {F.addr=.addr;} F id {F.addr=p; POST[p]=lookup(id); p++;} 后缀式表示实现 步骤分析栈 0 # R a 输入串 +b*c# 动作 push 后缀表示 后缀式存放在一个向量 POST[1..n] 中, 并有如下转移运算 : p BR 无条件转至 POST[p] e p BZ e 是某表达式 e 的后缀表示, 当 e 值为 0 转 POST[p] e1 e2 p BL 当 e1 <e2 时转向 POST[p] 类似地还可以定义 BN( 非 0 转 ) BP( 正号转 ) BM( 负号转 ) #a #F #T # #+ #+b b * b*c# b*c# b*c# *c# c# c# 归约 F->id;Sub6 归约 T->F;Sub4 归约 ->T;Sub2 push push 归约 F->id;Sub6 a a a a a ab 7 #+F * c# 归约 T->F;Sub4 ab IF e THN s 1 LS s 2 e p 1 BZ s 1 p 2 BR s 2 其中 e, s 1, s 2 是 e, s 1, s 2 的后缀表示, p 1 和 p 2 分别表示 s 2 在 POST 中的开始位置以及后邻的位置 # +T # +T* # +T*c # +T*F #+T * c # # # c# # push push 归约 F->id;Sub6 归约 T->T*F;Sub3 归约 ->+T;Sub1 ab ab abc abc* abc*+ e p 1 BZ s 1 p 2 BR p 1 :s 2 p 2 : 13 # # abc*+ Yinliang Zhao 2

3 实现三地址码的数据结构 文法规则 S->id:= -> > 1 * 2 ->- 1 ->( 1 ) ->id 语义规则 S.tree=mkNode(:=, mkleaf( id, id.place),.tree).tree=mknode(+, 2.tree, 2.tree).tree=mkNode(*, 1.tree, 2.tree) T.tree=mkNode(uminus, 1.tree, nil).tree= 1.tree F.tree=mkLeaf(id, id.place) 例 : 2*a+(b-3) + * - 2 a b 3 t1 = 2 * a t2 = b 3 t3 = t1 + t2 t2 = b 3 t1 = 2 * a t3 = t2 + t1 产生临时变量 ; 临时变量跟抽象语法树的内结点对应 ; 语句的次序 ; 操作符扩充 ; 三地址码 x = y op z 以操作符为核心 一个操作符 op 两个操作数 y 和 z 一个结果 x x,y 和 z 通常是内存地址 y 和 z 还可以是常数和常量 一个程序段的三地址代码表示 : read x; if 0 < x then fact := 1; repeat fact := fact * x; x := x 1 until x = 0; write fact end read x; t1 = x > 0 if_false t1 goto L1 fact = 1 label L2 t2 = fact * x fact = t2 t3 = x 1 x = t3 t4 = x == 0 if_false t4 goto L2 write fact label L1 halt 一个程序段的三地址代码表示 : 要产生临时变量 ; 临时变量跟抽象语法树的内结点对应 ; 语句之间可以有不同的次序 ; 操作符可有扩充 ; 比如单目运算 ; 实现三地址码的数据结构 四元组 (op, arg1, arg2, result) op 是一个二元 ( 也可一元或零元 ) 运算符 ; arg1, arg2 分别为两个运算对象, 可以是变量 常数 临时变量等等 ( 可以缺省 ); 运算结果在 result 中 ; 跟符号表有关系 2*a+(b-3) t1 = 2 * a t2 = b 3 t3 = t1 + t2 (*, 2, a, T1) (, b, 3, T2) (+, T1, T2, T3) Yinliang Zhao 3

4 四元组举例 : read x; t1 = x > 0 if_false t1 goto L1 fact = 1 label L2 t2 = fact * x fact = t2 t3 = x 1 x = t3 t4 = x == 0 if_false t4 goto L2 write fact label L1 halt (rd,x,_,_) (gt,x,0,t1) (if_f,t1,l1,_) (asn,1,fact,_) (lab,l2,_,_) (mul,fact,x,t2) (asn,t2,fact,_) (sub,x,1,t3) (asn,t3,x,_) (eq,x,0,t4) (if_f,t4,l2,_) (wri,fact,_,_) (lab,l1,_,_) (halt,_,_,_) 产生三地址码的属性文法 例 : ->id= A A->A+F F F->() num id 属性 name: 记录临时变量名属性 code: 记录已生成的代码 实现三地址码的数据结构 2 三元组 (op, arg1, arg2) op 是一个二元 ( 也可一元或零元 ) 运算符 ; arg1, arg2 分别为两个运算对象 : 可以是变量 常数 临时变量等等 ( 可以缺省 ) ; 也可以是某个三元式的序号 ; 跟符号表有关系 2*a+(b-3) t1 = 2 * a t2 = b 3 t3 = t1 + t2 (1) (*, 2, a) (2) (, b, 3) (3) (+, (1), (2)) 语法规则 1 ->id= 2 ->A A 1 ->A 2 +F A->F F->() F->num F->id 语义规则用符号串表示代码 1 1.name=id.strval 1.code= 2.code++id.strval = 2.nam e.name=a.name.code=a.code A 1.name=newtemp() A 1.code=A 2.code++F.code++ A 1.name = A 2.name + F.name A.name=F.name A.code=F.code F.name=.name F.code=.code F.name=num.strval F.code= F.name=id.strval F.code= ++ 串连接, 包括 1 个换行 ; 串连接, 包括 1 个空格 三元组举例 : (0) (rd,x,_) (1) (gt,x,0) (2) (if_f,(1),11) (3) (asn,1,fact) (4) (mul,fact,x) (5) (asn,(4),fact) (6) (sub,x,1) (7) (asn,(6),x) (8) (eq,x,0) (9) (if_f,(8),(4)) (10) (wri,fact,_) (11) (halt,_,_) (rd,x,_,_) (gt,x,0,t1) (if_f,t1,l1,_) (asn,1,fact,_) (lab,l2,_,_) (mul,fact,x,t2) (asn,t2,fact,_) (sub,x,1,t3) (asn,t3,x,_) (eq,x,0,t4) (if_f,t4,l2,_) (wri,fact,_,_) (lab,l1,_,_) (halt,_,_,_) 语法规则 S->id:= ->- 1 -> >( 1 ) ->id 语义规则 S.code=.code gen(id.place :=.place).place=newtemp().code= 1.code gen(.place := minus 1.place).place=newtemp().code= 1.code 2.code gen(.place := 1.place + 2.place).place= 1.place.code= 1.code.place=id.place.code= 用符号串表示代码 2 ++ 串连接, 包括 1 个换行 ; 串连接, 包括 1 个空格 Yinliang Zhao 4

5 7.2 说明语句的翻译 例 6.3 变量声明 D->TL T->int float L->id, L id 文法规则 D->TL T->int T->float L 1 ->id, L 2 L->id 语义规则 L.dtype=T.dtype T.dtype=integer T.dtype=real id.dtype=l 1.dtype L 2.dtype=L 1.dtype id.dtype=l.dtype 题目 : 求一个 3*3 矩阵对角线元素之和 main() { float a[3,3],sum; int i,j; sum=0; printf("please input rectangle elements:\n"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%f",&a[i,j]); for(i=0;i<3;i++) sum=sum+a[i,i]; printf( Sum of the diagonal elements is %6.2f\n",sum); } Sort a x i j header nil readarray exchange quicksort header i header k v header partitio n header program sort(input,output) var a: array[0..10] of int; x:int; proc readarray; var i:int; begina.end; proc exchange(i,j:int); begin x:=a[i];a[i]:=a[j];a[j]=x end; proc quicksort(m,n:int); var k,v:int; func partition (y,z:int):int; var i,j:int; begin avexchange(i,j); d; beginend; beginend. 过程中的说明语句 P->D D->D;D TL T->int float L->id, L id 文法规则 P->D D 1 ->D 2 ;D 3 D->TL T->int T->float L 1 ->id, L 2 L->id 语义规则 offset=0 题目 : 求一个 3*3 矩阵对角线元素之和 main() { float a[3,3],sum; int i,j; sum=0; printf("please input rectangle elements:\n"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%f",&a[i,j]); for(i=0;i<3;i++) sum=sum+a[i,i]; printf( Sum of the diagonal elements is %6.2f\n",sum); L.type=T.type; L.width=T.width T.type=integer;T.width=4 T.type=real;T.width=8 } lookup(id.name, L 1.type, offset); L 2.type=L 1.type; L 2.width=L 1.width; offset=offset+l 1.width lookup(id.name, L.type, offset); offset=offset+l.width 属性及过程的定义 mktable(tab) 创建一个符号表, 父表指针为 tab; nter(tab,name,type,offset) 在 tab 所指符号表中为名字 name 建立一个登记项, 类型 type 和相对地址 offset 填入该项中 ; addwidth(tab,width) 在 tab 所指符号表表头中记录下该表中所有名字占用的总宽度 ; enterproc(tab, name, newtab) 在 tab 所指符号表中为名字 name 的过程建立一个登记项, 参数 newtab 指向 name 的符号表 作用域 P D D D;D TL proc id;d;s func id;d;s T int float L id, L id program sort(input,output) var a: array[0..10] of int; x:int; proc readarray; var i:int; begina.end; proc exchange(i,j:int); begin x:=a[i];a[i]:=a[j];a[j]=x end; proc quicksort(m,n:int); var k,v:int; func partition (y,z:int):int; var i,j:int; begin avexchange(i,j);end; beginend; beginend. 处理嵌套过程中的说明语句 ( 方法 1) P MD M ε D D;D D proc id;nd 1 ;S D id:t N ε addwidth(pop(s_tab), pop(s_offset)) t:=mktab(nil); push(t, s_tab); push(0,s_offset) t:= pop(s_tab) addwidth(t,pop(s_offset)) enterproc(top(s_tab), id.name, t) nter(top(s_tab), id.name, T.type, top(s_offset)) t:=mktab(top(s_tab)) push(pop(s_offset)+t.width, s_offset) pop(s_) 弹出 s_ 栈顶元素 ; push(t, s_tab) top(s_) 返回 s_ 栈顶元素 ; push(0,s_offset) push(e,s_) 压入 e 到栈 s_. Yinliang Zhao 5

6 P ( 方法 2) L L L L L program sort(input D P L L.intab=mktab(nil); L.ioffs=0 var a: array[0..10 P.symtab=L.outtab D D x:int; proc readarray; D D.outtab=D.intab L D var i:int; id:t nter(d.outtab, id.name, T.type, begina.end; D.ioffs) proc exchange(i,j D.ooffs=D.ioffs+T.width D begin L D D.intab=L.intab; addwidth(d.outtab,d.ooffs)) L.outtab=D.outtab D x:=a[i];a[i]:= D.ioffs=L.ioffs;L.ooffs=D.ooffs end; L 1 L 2.intab=L 1.intab; D.intab=L 2.outtab L proc quicksort(m, L L 2 ;D L 1.outtab=D.outtab; L 2.ioffs=L 1.ioffs D var k,v:int; D.ioffs=L 2.ooffs; L 1.ooffs=D.ooffs D func partition D L.intab=mktab(D.intab); L.ioffs=0 var i,j:int; proc addwidth(l.intab,l.ooffs)) L D begin ave id;l;s D.outtab=D.intab; D.ooffs=D.ioffs enterproc(d.intab,id.name,d.outtab) beginend; beginend. 7.3 赋值语句的翻译 翻译赋值语句和算术表达式的属性文法类型转换数组处理 ( 方法 2) P L D id:t L D L 1 L 2 ;D ot outtab it inttab L.it=mktab(nil); L.io=0 P.st=L.ot D.ot=D.it nter(d.ot, id.name, T.type, D.io) D.oo=D.io+T.width addwidth(d.ot,d.oo)) D.it=L.it; L.ot=D.ot D.io=L.io;L.oo=D.oo L 2.it=L 1.it; D.it=L 2.ot L 1.ot=D.ot; L 2.io=L 1.io D.io=L 2.oo; L 1.oo=D.oo io ioffs oo ooffs it ot L io oo P st it ot io=0 L oo it ot D io oo nil 4 x int 0 f it ot io D oo D L.it=mktab(D.it); L.io=0 proc D.ot=D.it; D.oo=D.io it ot proc f ; L ; S id;l;s addwidth(d.ot,d.oo)) io=0 oo enterproc(d.ot,id.name,l.ot) x : int 语法规则 1 ->id= 2 ->A A 1 ->A 2 +F A->F F->() F->num F->id 语义规则 1.name=id.strval 1.code= 2.code++id.strval = 2.nam e.name=a.name.code=a.code A 1.name=newtemp() A 1.code=A 2.code++F.code++ A 1.name = A 2.name + F.name A.name=F.name A.code=F.code F.name=.name F.code=.code F.name=num.strval F.code= F.name=id.strval F.code= 前面介绍过的一个例子 说明语句的翻译的小结 简单变量的 类型 偏移量 ( 以过程为单位 ) 创建符号表 符号表中添加登记项结构型变量 ( 在后面介绍 ) 数组 结构 指针等 属性及过程的定义 ( 产生四元组 ) NewTemp() 函数过程 每次调用时, 它都回送一个代表新临时变量名的整数码作为函数值 ( 跟符号表有关 ); Lookup(name) 以 name 为名字查符号表 : 查到返回入口指针, 否则填入并返回入口指针 ;.place 表示存放 值的变量名在符号表的入口或者整数码 ( 若为临时变量 ); Gen(op, arg1, arg2, result) 语义过程, 建立四元式 (op, arg1,arg2, result) 并填入四元式表中 Yinliang Zhao 6

7 例 : 翻译简单赋值语句为四元组的属性文法 A V:= {if.place=err or V.place=err then A.place=err else {A.place =ok; Gen(:=,.place,nil,V.place)}} {if 1.place=err or 2.place=err then.place=err else {.place=newtemp(); Gen(+, 1.place, 2.place,.place)}} 1 * 2 {if 1.place=err or 2.place=err then.place=err else {.place=newtemp(); Gen(*, 1.place, 2.place,.place)}} ( 1 ) {.place= 1.place} V num V id {.place=v.place} {.place=lexval(num)} {V.place=(p:=Lookup(id.name))? p : err} 数组元素引用 数组说明与下标变量的语义地址计算公式四元式中数组元素表达形式赋值语句中数组元素的翻译 去掉错误处理部分 数组说明与下标变量的语义 A V:= * 2 ( 1 ) V num V id {Gen(:=,.place,nil,V.place)} {.place=newtemp(); Gen(+, 1.place, 2.place,.place)} {.place=newtemp(); Gen(*, 1.place, 2.place,.place)} {.place= 1.place} {.place=v.place} {.place=lexval(num)} {V.place=Lookup(id.name} 数组说明 float a[siz] ; int i,j; 数组元素引用 a[i+1]=a[j*2]+3; 数组说明 var a: array[0..10] of int; 数组元素引用 a[i]:=a[j]+1; 数组说明 real x(-13,13) integer i,j 数组元素引用 x[i]=x[j]+1 i,j:int; 数组元素的存放区域如何安排? 如何确定数组元素的偏移量? 类型转换 A V:= {Gen(:=,.place,nil,V.place);} {.place=newtemp(); if 1.type=int then if 2.type=int then Gen(addi, 1.place, 2.place,.place) else {tmp=newtemp(); Gen(itor, 1.place, nil, tmp); Gen(addr,tmp, 2.place,.place);} else if 2.type=int then {tmp=newtemp(); Gen(itor, 2.place, nil, tmp); Gen(addr, 1.place,tmp,.place);} else Gen(addr, 1.place, 2.place,.place); 1.type=} 1 * 2 { 跟上面相似, 将 addi 和 addr 分别换成 muli 和 mulr} ( 1 ) {.place=1.place;.type=} V {.place=v.place;.type=} intnum realnum {.place=lexval(num);.type=} V id {V.place=lookup(id.name;V.type=} Addr 为实数加 数组说明与下标变量的语义 a[i+1] a + (i+1) * sizeof(int) a[t] base_address(a) + (t - lower_bound(a)) * element_size(a) Yinliang Zhao 7

8 (1) 地址计算公式对于一维数组 A[i]: 下标的变化范围 : l i u 连续存储区的首址 :base, 每个数组元素占用 w 个单元 则 A[i] 地址为 :base+(i-l)*w base+(i-l)*w=(base-l*w)+i*w 固定部分 :base-l*w ( 在数组说明时即可确定 ) 变化部分 :i*w ( 在数组引用时确定, 即动态确定 ) 对于多维数组 A[i 1,i 2,,i n ]: 下标的变化范围 : l 1 i 1 u 1 ;; l n i n u n 连续存储区的首址 :base, 每个数组元素占用单元 w 个 则 A[i 1,i 2,,i n ] 地址为 : base+((((i 1 -l 1 )*d 2 +(i 2 -l 2 ))*d 3 +(i 3 -l 3 ) ))d n +(i n -l n ))*w =base-((((l 1 *d 2 +l 2 )*d 3 +l 3 ))d n +l n )*w+ i 1 *d 2 **d n +i 2 *d 3 **d n ++i n = base- ConstPart+ (((i 1 )*d 2 +i 2 )*d 3 +i 3 )*d 4 +i 4 ))*d n +i n (2) 数组说明 A[l:u] 的表示 注意 : 名字 A 符号表项 类型地址数组 内情向量表 1 base Type/w C l u d 元素存储区域 A[1] A[2] 固定部分与数组各维的维长 d i 和数组的首址 base 相关 ( 在数组说明时可确定 ); VARPART 部分与下标变量的每个下标相关 ( 在运行时才能确定 ) 计算数组元素的地址时分别计算出 CONSTPART 和 VARPART, 对前者静态算出具体值, 而对后者则产生计算代码 对于一维数组元素引用形式 A[i], 该元素的存储位置为 : base+(i-l)* w= base - C + i*w 地址计算公式 ( 续 ) 静态数组 A[l 1 :u 1,, l n :u n ] 表示形式 对于二维数组 A[i,j]: 下标的变化范围 : l 1 i u 1 ; l 2 j u 2 连续存储区的首址 :base, 每个数组元素占用 w 个单元 则 A[i,j] 地址为 :base+[(i-l 1 )*(u 2 -l 2 )+j-l 2 ]*w base+[(i-l 1 )*(u 2 -l 2 )+j-l 2 ]*w =[base+(-l 1 *(u 2 -l 2 )-l 2 )*w] + [(i*(u 2 -l 2 )+j)*w] 固定部分 : base;(-l 1 *(u 2 -l 2 )-l 2 )*w 变化部分 : (i*(u 2 -l 2 )+j)*w 用维长表示 :(i*d 2 +j)*w 名字 A 符号表项 类型地址数组 内情向量表 n base Type/w C l 1 u 1 d 1 l n u n d n 数组元素存储区域 A[1,1,,1] A[1,1,,2] Yinliang Zhao 8

9 计算可变部分对于不变部分 Constpart, 产生代码 { T1 := base-c }; 可变部分 Varpart, 产生代码形如 {T:=Varpart}; 所以数组引用 A[i 1,i k ] 的地址为 T + T1, 一般使用变址指令 : 形式为 T1[T] (T1 为基址,T 为偏移量 ) 如此, 四元式的形式如下 : 变址取值 X:= T1[T] ( =[], T1[T], _, X) 变址存储 T1[T] := X ( []=, X, _, T1[T]) 属性定义 L.arr 数组名的符号表入口 L.dim 数组维数计数器, 随着归约新的下标而增加 L.place 记存业已形成的 VARPART 的中间结果名字在符号表中的位置, 或者是一个临时变量的整数码 Limit(ARRAY,k) 函数过程, 数组 ARRAY 的第 k 维长度 d k V.place 简单变量 变量名的符号表入口 下标变量 保存 CONSTPART 的临时变量的整数码 V.offset 简单变量 NULL( 用于区分简单变量和下标变量 ) 下标变量 保存 VARPART 的临时变量的整数码 (3) 赋值语句中的数组元素翻译 A V:= V i[l] i L L, + () V A V:= {if V.offset=NULL then Gen(:=,.place,_,V.place) else Gen([]=,.place,_,V.place[V.offset])} { t:=newtemp(); Gen(+, 1.place, 2.place,t);.place := t } ( 1 ) {.place := 1.place } 文法允许数组元素嵌套定义,A[B,C[2]+1] V { if (V.offset=NULL) then.place := V.place; else { t:=newtemp(); Gen (=[],V.place[V.offset],_,t);.place:=t; } } 对下标表 L 在归约过程中需要知道数组名 i 的入口, 以获取登记在符号表中的数组信息 V i[l] i L L, 回顾一下 VARPART 的计算公式, 它是一个乘加式 ((i 1 * d 2 +i 2 ) d 3 + i 3 )+i n-1 )d n +i n L.place limit(i,k),k=3 V L] i L L, i[ V L] { t:=newtemp(); Gen(-,acc_base(L.arr),acc_C(L.arr),t); V.place:=t; t:=newtemp(); Gen(*, acc_w(l.arr), L.place, t); V.offset :=t } V i { V.place:= ntry(i); V.offset:= NULL; } L L 1, { t1:=newtemp(); k:= L 1.dim + 1; d k :=Limit(L 1.arr,k); Gen(*,L 1.place,d k,t1); t2:= NewTemp(); Gen(+,.place,t1,t2); L.arr := L 1.arr; L.place := t2; L.dim := k; } L i[ { L.place :=.place; L.dim := 1; L.arr := ntry(i) } Yinliang Zhao 9

10 例 : A 是一个 10*20 的数组,A[i+2,j+1]:= m+n 的翻译 A V := L ] m+n L, 布尔表达式的语义 ( 续 ) 布尔算符的优先级 : 顺序 :,, ; 其中 和 服从左结合 另外所有关系符的优先级相同, 高于任何布尔算符, 低于任何算术算符 i [ i+2 A V:= V L] i L L, i[ + () V j+1 (+, I, 2, T1) (+, J, 1, T2) (*, T1, 20, T3) (+, T2, T3, T4) (-, A, 21, T5) (+, M, N, T7) ([]=, T7, _,T5[T6]) (*, 4, T3, T6) 由于大部分体系结构没有内置的布尔类型, 所以用 0 和 1( 或非 0) 分别表示 False 和 True 7.4 布尔表达式的翻译 布尔表达式的语义布尔表达式的求值布尔表达式作为条件的处理 布尔表达式在语言中的作用 求值 logical a, b a =.TRU. b = a.and. 3.LT. 5/2 作为控制语句中的条件 if(1 < i && i < 10) 布尔表达式的语义 文法 : () i i rop i C 语言 : &&! < == > <= >=!= if(1 < i && i < 10)... Pascal: AND OR NOT < = > <= >= if (x = 0) AND (a = 2) then... Fortran 逻辑表达式 :.AND..OR..NOT..LT..Q..GT..L..G..N. b = a.and. 3.LT. 5/ 布尔表达式的求值 基本算法 : 如同算术表达式求值一样, 一步步地计算各部分的值, 进而计算出整个表达式的值 例 A B C=D (=, C, D, T1) (, B, T1, T2) (, A, T2, T3) Yinliang Zhao 10

11 基本求值算法的实现 1 2 {.place=newtemp(); gen(, 1.place, 2.place,.place} 1 2 {.place=newtemp(); gen(, 1.place, 2.place,.place} {.place=newtemp(); gen(,.place, NIL,.place} ( 1 ) {.place= 1.place} i {.place=i.name} i 1 rop i 2 {.place=newtemp(); gen(rop, i 1.place, i 2.place,.place)} 布尔表达式作为条件的处理 真出口, 假出口 if 1 then if 2 then S1 else S2 else S2 if 1 then if 2 then goto L-true else goto L-false else goto L-false; L-true: S1; goto L-next; L-false: S2; L-next: if 1 then S1 else if 2 then S1 else S2 if 1 then goto L-true else if 2 then goto L-true else goto L-false; L-true: S1; goto L-next; L-false: S2; L-next: if then S2 else S1 if then goto L-false else goto L-true; L-true: S1; goto L-next; L-false: S2; L-next: 布尔表达式的求值 ( 续 ) 例 IF A B<D THN S1 LS S2 短路算法 : A B if A then true else B A B if A then B else false A if A then false else true 与基本算法的差别 : 运算量减少 适用范围广 if((p!=null)&&(p->val==0)) {} 转向 为假时的目标 转向 为真时的目标 (1) (jnz,a,_,5) (2) (j,_,_,3) (3) (j<,b,d,5) (4) (j,_,_,p+1) (5) {S1} (p) (j,_,_,q) (p+1) {S2} (q) { 下一语句 } 短路算法的实现问题 求值 : 转换成条件语句求值 A B if A then true else B A B if A then B else false A if A then false else true 作为条件 : 等价地转换成嵌套 if 语句 if 1 2 then S1 else S2 if 1 then if 2 then S1 else S2 else S2 if 1 2 then S1 else S2 if 1 then S1 else if 2 then S1 else S2 if then S1 else S2 if then S2 else S1 G1: -> () i i rop i G2: -> ^ () i i rop i ^ -> 填 真链 -> 填 假链 Yinliang Zhao 11

12 a b (jnz,a,-,3) (j,-,-,?) (jnz,a,-,3) (j,-,-,0) 解决办法 (jnz,a,-,?) (j,-,-,?) (jnz,a,-,0) (j,-,-,2) 设 p q r 三条四元式均要转向 t 四元式 (1) 队列法 p( ). q( )..ṙ( )... t( ) p q r Q.rear Q.front x+y<0? c z==8?? G2: ^ () i i rop i ^ (+,x,y,t1) (jlz,t1,-,4) (j,-,-,?) (jnz,c,-,?) (j,-,-,6) (==,z,8,t2) (jnz,t2,-,?) (j,-,-,?) 4 3 (+,x,y,t1) (jlz,t1,-,4) (j,-,-,0) (jnz,c,-,0) (j,-,-,6) (==,z,8,t2) (jnz,t2,-,4) (j,-,-,3) 8 7 (2) 拉链 - 返填法 nxq 下一个四元组的编号 bp 回填 tc 或 fc merge 合并两个 tc 或 fc p(_,_,_,0). q(_,_,_,_) q(_,_,_,p). r(_,_,_,_) r(_,_,_,q). t(_,_,_,_) pq r i {.tc=nxq++; Gen(jnz,i,_,0);.fc=nxq++; Gen(j,-,-,0);} ^ 1 {bp ( 1.tc, nxq); ^.fc= 1.fc;} 1 {bp ( 1.fc, nxq);.tc= 1.tc;} ^ 1 {.tc= 1.tc;.fc=merg (^.fc, 1.fc); } 1 {.fc= 1.fc;.tc=merg (.tc, 1.tc); } i 1 rop i 2 {.tc=nxq++; Gen(jrop,i 1,i 2,0);.fc=nxq++; Gen(j,-,-,0);} ( 1 ) {.fc= 1.fc;.tc= 1.tc;} 1 {.tc= 1.fc;.fc= 1.tc;} (2) 拉链 - 返填法 p(_,_,_,0) p(_,_,_,t). q(_,_,_,p) q(_,_,_,t). r(_,_,_,q) r(_,_,_,t). t(_,_,_,_) qp rqp ->i {.tc=nxq++;.fc=nxq++; 例 :(x a<b c=d ) e>f Gen(jnz,i,_,0); Gen(j,-,-,0);} ^-> 1 {bp ( 1.tc, nxq); ^.fc= 1.fc;} ^ () i 7 -> 1 i rop i 8 {bp ( 1.fc, nxq);.tc= 1.tc;} ^ ^?6 7 -> ^ {.tc= 1.tc;.fc=merg (^.fc, 1.fc); } 5 -> 1 ( 6 ) {.fc= 1.fc;.tc=merg (.tc, 1.tc); } e > f 3 5? 6 x ^ 1 2? a < 3 4 b c = d (jnz, x, -, 0) (j,-,-,0) (j<, a, b, 0) (j,-,-,0) (j=, c, d, 0) (j,-,-,0) (j>, e, f, 0) (j,-,-,0) (3) (2) (6) (5) (7) (5) (3) (7) Yinliang Zhao 12

13 7.5 控制语句 标号和转移语句条件语句分支语句 标号先引用后定义 q1 goto L2 q2 goto L2 q3 L2 : S2 名字 类型 定义 地址 q1 (j, _, _, 0 ) q3 q2 (j, _, _, q1 ) q3 L2 标号 未 q1 q2 q3 1 遇到 goto L2, 填符号表, 未定义, 把 NXQ 填入 L2 的地址部分, 作为链头 产生 ( j, _, _, 0) 2 遇到 goto L2, 查到未定义, 取符号表中 L2 的地址 q1 填入四元式 q2:(j, _, _,q1), 将 q2 填入符号表 3 遇到 L2:S2, 就可以回填 标号和转移语句 标号的两种使用方法 L: S Goto L 语言中允许标号先定义后使用, 也允许先使用后定义 一般而言, 带标号语句产生式 S Label S Label i: Label i: 的语义动作 : 1. 若 i 所指的标识符 ( 假定为 L) 不在符号表中, 则把它填入, 置类型为 标号, 定义否 为 已, 地址为 NXQ 2. 若 L 已在符号表中, 但 类型 不为 标号 或者 定义否 为 已, 则报告出错 3. 若 L 已在符号表中, 则把标志 未 改为 已, 然后, 把地址栏中的链头 ( 记为 q) 取出, 同时把 NXQ 填在其中, 最后, 执行 bp(q,nxq) 标号先定义后引用 L1 : S1 符号表 Goto L1 名字 类型 定义否 遇到 L1 : S1 L1 标号 定义 P 1 : (,,,) 遇到 Goto L1 (j, _, _, P 1 ) 设标号对应的四元组从编号 P 1 开始 地址 P 条件语句 较为复杂的程序控制语句常常是嵌套的 if 1 THN if 2 then S1 else S2 LS S3 S1 后有一条转移指令, 转到本 if 语句之后 与布尔表达式中不同的是, 在 S2 翻译之后, 也不能确定这个转移地址, 它要跨越 S2,S3 所以, 转移地址的确定与语句所处的上下文有关 我们采用一个属性 后续链 来记录, 实现当后续目标位置确定时返填 Yinliang Zhao 13

14 S1 S2 S3 F2 V1 V2 V3 if then S1 else S2; S3; if then begin if F1 then U1 else U2; U3 end else S2; F1 S3; U1 if then begin U2 if F1 then U1 else U2; U3 U3 end else begin if F2 then V1 else V2; V3 end S3; S1 S2 S3 F1 U1 规则 S if then S1.true:=newlabel();.false:= S.next; S1.next:=S.next; S.code:=.code gen(.true : ) S1.code if then begin if F1 then U1 end else S2;S3; S1 S2 S3 F1 U1 U2 U3 规则 S if then S1 else S2.true:=newlabel();.false:=newlabel(); S1.next:=S.next; S2.next:=S.next; S.code:=.code gen(.true : ) S1.code gen( goto S.next) gen(.false : ) S2.code S1 S2 规则 S while do S1 S.begin:=newlabel();.true:=newlabel();.false:=S.next; S1.next:=S.begin; S.code:=gen(S.begin : ).code gen(.true : ) S1.code gen( goto S.begin) if then begin if F1 then U1 else U2; U3 end else S2;S3; while do S1;S2; S1 S2 S3 F1 U1 U2 规则 S if then S1 else S2.true:=newlabel();.false:=newlabel(); S1.next:=S.next; S2.next:=S.next; S.code:=.code gen(.true : ) S1.code gen( goto S.next) gen(.false : ) S2.code if then begin if F1 then U1 else U2 end else S2;S3; 产生三地址码的属性文法 S if then S1 S if then S1 else S2 S while do S1.true:=newlabel();.false:=S.next; S1.next:=S.next; S.code:=.code gen(.true : ) S1.code.true:=newlabel();.false:=newlabel(); S1.next:=S.next; S2.next:=S.next; S.code:=.code gen(.true : ) S1.code gen( goto S.next) gen(.false : ) S2.code S.begin:=newlabel();.true:=newlabel();.false:=S.next;S1.next:=S.begin; S.code:=gen(S.begin : ).code gen(.true : ) S1.code gen( goto S.begin) 采用四元组实现时需要对其中的 goto 语句进行处理 Yinliang Zhao 14

15 嵌套条件语句的拉链返填处理 在四元组表示中 newlabel() 是目标位置的首地址 : if then S1 else S2 语句中 的真假出口的目标位置分别是 S1 和 S2 if then S1 语句中 的真假出口的目标位置分别是 S1 和下一条语句 if then S1 [else S2] 语句中 S1 和 S2 的后续目标位置是该 if 语句下一条语句 嵌套时下一条语句指外层该语法单位的后续目标位置 while do S1 语句中 的真假出口的目标位置分别是 S1 和下一条语句 后续目标的地址只有到那个目标被归约时才知道 示例 C if then { bp (.tc, nxq); C.chain :=.fc; } T p C S (1) else { q := nxq; Gen(j, _, _, 0); bp(c.chain,nxq); T p.chain := merge(s (1).chain,q);} S T p S (1) { S.chain := merge(t p. chain, S (1). chain;} IF THN S (1) LS S (2) C T P S 的代码 S (1) 的代码 q: ( j, _, _, 0) S (2) 的代码 文法修剪 S if then S if then S else S while do S begin L end A L L; S S 属性 : tc, fc ( 真假出口 ) chain ( 后续目标 ) quad (While 条件 ) S C S C 和 S 后续目标相同 T p S T p 和 S 后续目标相同 W d S begin L end A C if then 真出口已知 T p CS else C 后续目标已知 W d W do W while L L s S S L s L; while 语句 W 条件已知 { W.quad := nxq } S C S T p S W d S begin L end A C if then T p CS else W d W do W while L L s S S L s L; S 后续目标已确定 { bp(s (1).chain,W d.quad); Gen(j, _, _, W d.quad); S.chain := W d.chain} W 循环体已知 {bp (.tc,nxq); W d.chain :=.fc; W d.quad := W.quad} C 和 S 后续目标相同 S C S {S.chain := merg( C.chain, S (1). chain)} T p S W d S T p 和 S 后续目标相同 {S.chain := merg(t p.chain, S (1). chain)} 真出口已知 {bp (.tc, nxq); begin L end A C if then T p CS else C 后续目标已知 C.chain :=.fc} W d W do {q:=nxq; Gen(j, _, _, 0); bp(c.chain,nxq); W while T p.chain:=merge(s.chain,q)} L L s S if 语句 S L s L; C if then { bp (.tc, nxq); C.chain :=.fc; } S C S (1) { S.chain := merg(c.chain, S (1). chain);} T p C S (1) else { q := nxq; Gen(j, _, _, 0); bp(c.chain,nxq); T p.chain := merge(s (1).chain,q);} S T p S (1) { S.chain := merge(t p. chain, S (1). chain;} W while { W.quad := nxq; } W d W do { bp (.tc,nxq); W d.chain :=.fc; W d.quad := W.quad ;} S W d S (1) { bp(s (1).chain,W d.quad); Gen(j, _, _, W d.quad); S.chain := W d.chain;} L S { L.chain := S.chain;} L s L; { bp(l.chain,nxq); } L L s S (1) { L.chain := S (1).chain;} S begin L end { S.chain := L.chain;} S A { S.chain := 0;} 空链 Yinliang Zhao 15

16 if then while (1) do S (1) else S (2) C W W d S1 T P 的代码 p C if then { bp (.tc, nxq); C.chain S :=.fc; } (1) 的代码 T p CS (1) else { q := nxq; Gen(j, _, _, 0); bp(c.chain,nxq); T p.chain := merge(s (1).chain,q);} S T p S (1) { S.chain := merge(t p. chain, S (1). chain;} W while { W.quad := nxq; } W d W do{ bp (.tc,nxq); W d.chain :=.fc; q W d.quad := W.quad ;} S (1) 的代码 (j, _, _, p) (j, _, _, 0) p S W d S (1) {bp(s (1).chain,W d.quad); Gen(j, _, _, W d.quad); S (2) 的代码 S.chain := W d.chain;} 关于参数传递 - 传地址 约定 : 把实参地址逐一放在转子指令前 如 CALL S(A+B,Z) 翻成 k-4: T := A+B k-3: Par T k-2: Par Z k-1: Call S 进入子程序 S 之后,S 就可根据返回地址 k 寻找到存放实 k: 参地址的单元 while A<B do if C<D then X:= Y+Z W (1) W d (2) C S 105 (:=,T,_, X) C if then { bp (.tc, nxq); C.chain :=.fc; } 106 (j,_,_,100) T p CS (1) else { q := nxq; Gen(j, _, _, 0); bp(c.chain,nxq); T p.chain := merge(s (1).chain,q);} S T p S (1) { S.chain := merge(t p. chain, S (1). chain;} W d W do{ bp (.tc,nxq); W d.chain :=.fc; W d.quad := W.quad ;} W while { W.quad := nxq; } S W d S (1) {bp(s (1).chain,W d.quad); Gen(j, _, _, W d.quad); S.chain := W d.chain;} S C S (1) { S.chain := merg(c.chain, S (1). chain;} S (2) S (1) 100 (j<,a,b, 0) (j,_,_, 0 ) 102 (j<,c,d, 0) (j,_,_, 0) (+,Y, Z, T) 分析 文法 G: (1) S CALL i(arglist) (2) Arglist Arglist, (3) Arglist 困难 : 如何在处理实参表的过程之中记住每个实参的地址, 以便最后将它们排列在转子指令的前面 解决 : 遇到第一个实参建立一个队列, 后面的依次记录, 要记住队列头 7.6 过程调用 过程的定义 代码首址记录到符号表中 ; 形参记录到符号表中 ; 调用者与被调用者 转移目标 返回地址 参数传递 属性文法 S CALL i(arglist) {for (Arglist.queue 中每个元素 arg) gen(par,_,_,arg); gen(call,_,_,entry(i))} Arglist Arglist (1), {.place 进队列 Arglist (1).queue; Arglist.queue:=Arglist (1).queue} Arglist { 建立一个 Arglist.queue, 它只包含一项.place} Yinliang Zhao 16

17 例 CALL S (A+B,Z) 参考书 S CALL i(arglist) {for (arglist.queue 中每个元素 arg) gen(par,_,_,arg); gen(call,_,_,entry(i))} arglist arglist (1), {.place 进队列 arglist (1).queue; arglist.queue:=arglist (1).queue} arglist { 建立一个 arglist.queue, 它只包含一项.place} Ar Ar S k-4: T := A+B k-3: Par T k-2: Par Z k-1: Call S k: Kenneth C.L. 编译原理与实践 ( 英文版 ), 机械工业 2002 蒋立源 康慕宁, 编译原理 ( 第二版 ), 西北工业大学出版社 2004 本章习题 p : 类型检查 P Dlist;Slist Dlist Dlist;D D D id:t T int bool array [num] of L Slist Slist;S S S if then S id:= 类型检查补充 D->id:T {insert(id.name, T.type)} T->int {.type=integer} T->array [num] of T (1) {T.type=mkTypeNode(array,num.size,T (1).type )} S->if then S {if not typequal(.type,boolean) then type-error(s)} S->id:= {if not typequal(lookup(id.name),.type)then typeerror(s)} -> (1) + (2) {if not (typequal( (1).type,integer) and typequal( (2).type,integer))then type-error();.type=integer} -> (1) or (2) {if not (typequal( (1).type,boolean) and typequal( (2).type,boolean))then type-error();.type=boolean} ->num {.type=integer} ->true {.type=boolean} ->id {.type=lookup(id.name)} Yinliang Zhao 17

Microsoft PowerPoint - 7-Semantic_IR12.ppt [兼容模式]

Microsoft PowerPoint - 7-Semantic_IR12.ppt [兼容模式] 中间代码生成 第七章 : 语义分析和中间代码生成 赵银亮 词法分析 语法分析 中间代码生成 中间代码的表示形式有多种 : 逆波兰表示三地址码 ( 三元式 四元式 ) 抽象语法树 P- 代码 属性文法是实现中间代码生成的常用手段 2012 本章内容 : 几种中间表示说明语句的翻译简单算术表达式和赋值句到四元式的翻译布尔表达式到四元式的翻译控制语句的翻译数组元素的引用过程调用 7.1 中间表示的概念 抽象语法树

More information

Microsoft PowerPoint - 7-Semantic_IR09.ppt

Microsoft PowerPoint - 7-Semantic_IR09.ppt 中间代码生成 第七章 : 语义分析和中间代码生成 中间代码生成位于词法分析和语法分析之后, 是代码生成中的一个阶段 ; 中间代码的形式很多, 如逆波兰记号 抽象语法树 三地址码 ( 三元式 四元式 ) P- 代码, 等等 属性文法是用于中间代码生成的常用的方法 赵银亮 本章内容 : 1. 中间表示形式 2. 说明语句的翻译 3. 简单算术表达式和赋值句到四元式的翻译 4. 布尔表达式到四元式的翻译

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

Microsoft PowerPoint - ch7.ppt [兼容模式]

Microsoft PowerPoint - ch7.ppt [兼容模式] 第七章 中间代码生成 静态中间代码记号分析检查代码中间生成流器器生成代码器器本章内容 介绍几种常用的中间表示 (intermediate representation): 后缀表示 图形表示和三地址代码 用语法制导定义和翻译方案来说明源语言的各种 用语法制导定义和翻译方案来说明源语言的各种构造怎样被翻译成中间形式 7.1.1 后缀表示 7.1 中间语言 E E ope uope (E) id num

More information

Microsoft PowerPoint - ch7 [Compatibility Mode]

Microsoft PowerPoint - ch7 [Compatibility Mode] 记号流 第七章 分析器 静态检查器 中间代码生成 中间代码生成器 中间代码 代码生成器 本章内容 介绍几种常用的中间表示 (intermediate representation): 后缀表示 图形表示和三地址代码 用语法制导定义和翻译方案来说明源语言的各种构造怎样被翻译成中间形式 7.1.1 后缀表示 E E ope uope (E) id num 表达式 E 的后缀表示可以如下归纳定义 : 表达式

More information

Microsoft PowerPoint - ch6 [Compatibility Mode]

Microsoft PowerPoint - ch6 [Compatibility Mode] 第 6 章 中间代码生成 记号流 分析器 本章内容 静态检查器 中间代码生成器 中间代码 代码生成器 介绍几种常用的中间表示 : 后缀表示 图形表示和三地址代码 用语法制导定义和翻译方案来说明源语言的各种构造怎样被翻译成中间形式 6.1.1 后缀表示表达式 E 的后缀表示可以如下归纳定义 如果 E 是变量或常数, 那么 E 的后缀表示就是 E 本身 如果 E 是形式为 E 1 ope 2 的表达式,

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 information

ebook14-4

ebook14-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

Microsoft PowerPoint - ir

Microsoft PowerPoint - ir 中间语言与中间代码生成 张昱 编译原理和技术 0551-63603804,yuzhang@ustc.edu.cn 中国科学技术大学计算机科学与技术学院 记号流 本章内容 分析器 语法树 静态检查器 语法树 中间中间代码代码生成器 代码生成器 符号表本章内容 中间语言 : 常用的中间表示 (Intermediate Representation) 后缀表示 图表示 三地址代码 LLVM IR 基本块和控制流图

More information

Microsoft PowerPoint - 6 Intermediate-Code Generation.pptx

Microsoft PowerPoint - 6 Intermediate-Code Generation.pptx 第六章中间代码生成 陈林 本章内容 中间代码表示 抽象语法树 三地址代码 中间代码生成 表达式 类型检查 控制流 编译器前端的逻辑结构 静态类型检查和中间代码生成的过程都可以用语法制导的翻译来描述和实现 对于抽象语法树这种中间表示的生成, 第五章已经介绍过 表达式的有向无环图 语法树中, 公共子表达式每出现一次, 就有一个对应的子树 表达式的有向无环图 (Directed Acyclic Graph,DAG)

More information

PowerPoint Presentation

PowerPoint Presentation 第六章中间代码生成 许畅 南京大学计算机系 2018 年春季 本章内容 中间代码表示 表达式的有向无环图 DAG 三地址代码 :x = y op z 类型检查 类型 类型检查 表达式的翻译 中间代码生成 控制流 回填 2 编译器前端的逻辑结构 前端是对源语言进行分析并产生中间表示 处理与源语言相关的细节, 与目标机器无关 前端后端分开的好处 : 不同的源语言 不同的机器可以得到不同的编译器组合 3

More information

第5章修改稿

第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 information

优合会计考点直击卷子之财经法规答案——第八套

优合会计考点直击卷子之财经法规答案——第八套 原 题 导 航 基 础 第 一 套 第 1 题 参 考 答 案 : C 试 题 评 析 : 在 社 会 主 义 市 场 经 济 条 件 下, 会 计 的 对 象 是 社 会 再 生 产 过 程 中 主 要 以 货 币 表 现 的 经 济 活 动 第 2 题 参 考 答 案 :B 试 题 评 析 : 在 权 责 发 生 制 下, 本 期 售 货 尚 未 收 到 销 售 货 款 属 于 当 期 收 入

More information

大侠素材铺

大侠素材铺 编译原理与技术 词法分析 Ⅱ 计算机科学与技术学院李诚 13/09/2018 主要内容 记号 (token) 源程序 词法分析器 getnexttoken 语法分析器 符号表 词法分析器的自动生成 正则表达式 NFA DFA 化简的 DFA 词法分析器的生成器 Lex: flex jflex Fst lexicl nlyzer genertor 2/51 Regulr Expr to NFA 正则表达式

More information

编译原理 Compiler Principles 第六章中间代码生成 湖南大学信息科学与工程学院 软件工程系杨金民 2018

编译原理 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 information

2-1 2004 4.0 1.8 2.2 2001 2.83 0.86 1.97 % 41.3 109.3 11.7 2-2 2004 220 194 26 2001 81.3 70 11.3 % 170.6 177.1 130.0 2-3 2004 142 90 41 11 2001 104.5 70.9 26.1 7.5 % 35.9 26.9 57.5 45.3 2-5

More information

chap07.key

chap07.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

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

, 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 information

山东2014第四季新教材《会计基础》冲刺卷第三套

山东2014第四季新教材《会计基础》冲刺卷第三套 2016 年 会 计 从 业 考 试 会 计 基 础 冲 刺 卷 3 一 单 项 选 择 题 ( 本 题 共 20 小 题, 每 小 题 1 分, 共 20 分 在 下 列 每 小 题 的 备 选 项 中, 有 且 只 有 一 个 选 项 是 最 符 合 题 目 要 求 的, 请 将 正 确 答 案 前 的 英 文 字 母 填 入 题 后 的 括 号 内, 不 选 错 选 均 不 得 分 ) 1.

More information

a( a 0) a a( a 0) a = a ( a) = a a( a 0 ) a = a( a ) 0 a = a 4 f x 1 = x a ai a R sinx + a b ab sin x sinx = sinx sin x = 4 y = sinx + sinx - ysinx 4 = 0 sinx sinx x - 3 3= x x- 3 - x- 3 = 0

More information

= 3 + 1 7 = 22 7 3.14 = 3 + 1 7 + 1 15 +1 = 355 3.1415929 113 221221221221 136136136136 221000000000 221000000 221000 221 = 136000000000 136000000 136000 221 1000000000 1000000 1000 1 = 136 1000000000

More information

中華民國青溪協會第四屆第三次理監事聯席會議資料

中華民國青溪協會第四屆第三次理監事聯席會議資料 - 1 - 中 華 民 國 第 八 屆 第 四 次 理 監 事 聯 席 會 議 程 序 表 日 期 中 華 民 國 1 0 4 年 1 2 月 1 9 日 ( 星 期 六 ) 地 點 臺 南 南 紡 夢 時 代 雅 悅 會 館 五 樓 ( 臺 南 東 區 中 華 東 路 一 段 366 號 ) 項 次 程 序 起 訖 時 間 使 用 時 間 主 持 人 或 報 告 人 報 到 16:30~17:00

More information

就 构 成 了 盗 窃 罪 与 破 坏 交 通 设 施 罪 的 想 象 竞 合, 按 照 其 中 处 罚 较 重 的 犯 罪 处 罚 5. 答 案 :B 本 题 主 要 考 察 如 何 区 分 收 买 被 拐 卖 的 妇 女 儿 童 罪 与 拐 卖 妇 女 儿 童 罪 的 共 犯 问 题 ( 对 向

就 构 成 了 盗 窃 罪 与 破 坏 交 通 设 施 罪 的 想 象 竞 合, 按 照 其 中 处 罚 较 重 的 犯 罪 处 罚 5. 答 案 :B 本 题 主 要 考 察 如 何 区 分 收 买 被 拐 卖 的 妇 女 儿 童 罪 与 拐 卖 妇 女 儿 童 罪 的 共 犯 问 题 ( 对 向 新 东 方 全 国 法 律 硕 士 ( 非 法 学 ) 联 考 模 拟 考 试 专 业 基 础 课 答 案 解 析 一 单 项 选 择 题 1. 答 案 D 本 题 主 要 考 查 刑 法 分 则 中 关 于 亲 告 罪 与 非 亲 告 罪 的 规 定 要 注 意 这 些 亲 告 罪 在 有 特 别 的 情 况 下, 是 公 诉 犯 罪 我 国 刑 法 共 规 定 了 5 种 告 诉 才 处 理 的

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

《米开朗琪罗传》

《米开朗琪罗传》 ! " # ! """"""""""""""""""" """"""""""""""""" """""""""""""""" $% """"""""""""" &# """"""""""""""" %# """"""""""""""" # """""""""""""""!$% """""""""""""""!&!! # $$$$$$$$$$$$$$$$$$ $$$$$$$$$!"#!%& (! "

More information

考 查 知 识 点 肝 气 疏 泄 调 畅 气 机 的 作 用, 主 要 表 现 在 以 下 几 个 方 面 :(1) 促 进 血 液 与 津 液 的 运 行 输 布 ;(2) 促 进 脾 胃 的 运 化 功 能 和 胆 汁 分 泌 排 泄 ;(3) 调 畅 情 志 ;(4) 促 进 男 子 排 精

考 查 知 识 点 肝 气 疏 泄 调 畅 气 机 的 作 用, 主 要 表 现 在 以 下 几 个 方 面 :(1) 促 进 血 液 与 津 液 的 运 行 输 布 ;(2) 促 进 脾 胃 的 运 化 功 能 和 胆 汁 分 泌 排 泄 ;(3) 调 畅 情 志 ;(4) 促 进 男 子 排 精 2015 年 全 国 硕 士 研 究 生 入 学 统 一 考 试 中 医 综 合 科 目 试 题 解 析 一 A 型 题 :1~80 小 题, 每 小 题 1.5 分, 共 120 分 在 每 小 题 给 出 的 A B C D 四 个 选 项 中, 请 选 出 一 项 最 符 合 题 目 要 求 的 1. 提 出 阳 常 有 余, 阴 常 不 足 观 点 的 医 家 是 A 朱 丹 溪 B 刘 完

More information

2007年普通高等学校招生全国统一考试

2007年普通高等学校招生全国统一考试 高 考 语 文 陕 西 卷 试 题 以 及 答 案 解 析 本 试 卷 分 第 Ⅰ 卷 ( 选 择 题 ) 和 第 Ⅱ 卷 1 至 4 页, 第 Ⅱ 卷 5 至 8 页 考 试 结 束 后, 将 本 试 卷 和 答 题 卡 一 并 交 回 第 Ⅰ 卷 注 意 事 项 : 1. 答 题 前, 考 生 在 答 题 卡 上 务 必 用 直 径 0.5 毫 米 黑 色 墨 水 签 字 笔 将 自 己 的 姓

More information

! #$ % & ( ) % & ( ) % & ( ) % & ( ) % & ( ) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # ################################################### % & % & !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

More information

20151107083515_題目卷

20151107083515_題目卷 國 中 歷 史 B3:L6 明 代 與 盛 清 的 發 展 練 習 卷 一 單 一 選 擇 題 1. ( ) 明 清 兩 代 的 統 治 措 施 有 何 相 似 之 處? (A) 均 薙 髮 留 辮 (B) 均 種 族 歧 視 (C) 均 興 文 字 獄 (D) 均 設 特 務 機 關 2. ( ) 小 明 參 觀 北 京 的 長 陵, 領 隊 先 生 介 紹 此 乃 明 代 因 發 動 宗 室 之

More information

再版前言

再版前言 第七章中间代码生成 在第一章已经介绍, 编译器的前端把源程序翻译成中间表示, 后端从中间代码产生目标代码, 与目标语言有关的细节尽可能限制在后端 使用独立于机器的中间形式的好处是 : 1. 再目标 (retargeting) 比较容易 把针对新机器的后端加到现成的前端上, 可以得到另一种机器的编译器 2. 独立于机器的代码优化器可用于这种中间表示 第九章将介绍这种代码优化 因此, 虽然可以把源程序直接翻译并生成目标代码,

More information

<4D6963726F736F667420576F7264202D20C1E3B5E3CFC2D4D8C4A3B0E52E646F63>

<4D6963726F736F667420576F7264202D20C1E3B5E3CFC2D4D8C4A3B0E52E646F63> 历 年 MBA MPAcc 联 考 数 学 真 题 及 答 案 详 解 (009-0) 009 年 月 MBA 联 考 数 学 真 题 及 答 案 详 解 一 问 题 求 解 ( 本 大 题 共 小 题, 每 小 题 分, 共 分 下 列 每 题 给 出 的 五 个 选 项 中, 只 有 一 项 是 符 合 试 题 要 求 的 请 在 答 题 卡... 上 将 所 有 选 项 的 字 母 涂 黑 ).

More information

4.进度控制(网络计划)0.ppt

4.进度控制(网络计划)0.ppt 全 国 建 筑 类 执 业 资 格 考 试 共 性 案 例 进 度 控 制 网 络 计 划 1 网 络 计 划 常 用 的 工 程 网 络 计 划 类 型 双 代 号 网 络 计 划 双 代 号 时 标 网 络 计 划 单 代 号 网 络 计 划 A 4 B 单 代 号 搭 接 网 络 计 划 1 D 2 4 C 2 E 5 双 代 号 5 F 2 G 4 2 6 1 工 作 A 4 D 2 4 B

More information

内容提要 1 语法制导翻译语法制导定义 S 属性定义的自下而上计算 L 属性定义的自上而下计算 L 属性定义的自下而上计算 2 中间代码生成中间语言声明语句赋值语句布尔表达式和控制流语句

内容提要 1 语法制导翻译语法制导定义 S 属性定义的自下而上计算 L 属性定义的自上而下计算 L 属性定义的自下而上计算 2 中间代码生成中间语言声明语句赋值语句布尔表达式和控制流语句 编译原理 第七章语法制导翻译及中间代码生成 方徽星 扬州大学信息工程学院 (505) fnghuixing@yzueducn 2018 年 6 月 内容提要 1 语法制导翻译语法制导定义 S 属性定义的自下而上计算 L 属性定义的自上而下计算 L 属性定义的自下而上计算 2 中间代码生成中间语言声明语句赋值语句布尔表达式和控制流语句 11 语法制导定义 (Syntx-Directed Definition)

More information

Ps22Pdf

Ps22Pdf ( 0178) ( CIP). 1 /. :, 2004. 7 ISBN 7-80153 - 956-7.... G726. 9 CIP ( 2004) 069175 : 1 : : : : : : 2 : 100733 : 010-65369524 65369530 : : : 880mm 1230mm 1 /32 : 2400 : 150 : 5000 : 2006 8 1 2 : ISBN 7-80153

More information

3 = 90 - = 5 80 - = 57 5 3 3 3 = 90 = 67 5 3 AN DE M DM BN ABN DM BN BN OE = AD OF = AB OE= AD=AF OF= AB=AE A= 90 AE=AF 30 BF BE BF= BE= a+b =a+ b BF=BC+CF=a+CF CF= b CD=b FD= b AD= FC DFC DM=

More information

1 2 / 3 1 A (2-1) (2-2) A4 6 A4 7 A4 8 A4 9 A ( () 4 A4, A4 7 ) 1 (2-1) (2-2) ()

1 2 / 3 1 A (2-1) (2-2) A4 6 A4 7 A4 8 A4 9 A ( () 4 A4, A4 7 ) 1 (2-1) (2-2) () (39mm E-Mail ( )( ), : : 1 1 ( ) 2 2 ( ) 29mm) WSK ( 1 2 / 3 1 A4 2 1 3 (2-1) 2-1 4 (2-2) 2-2 5 A4 6 A4 7 A4 8 A4 9 A4 10 11 ( () 4 A4, 5 6 7 8 A4 7 ) 1 (2-1) (2-2) () 1 2 (2-1) 3 (2-2) 4 5 6 7 (8 ) 9

More information

e bug 0 x=0 y=5/x 0 Return 4 2

e 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 information

2007 /,. :, 2006. 2 ISBN 7-89994 - 217-9. 2......... D0 2007 : : : : 2 : 100866 : http: / / www. wendu. com : 010-88422102 831, 832 : : : 850 1168 1 /

2007 /,. :, 2006. 2 ISBN 7-89994 - 217-9. 2......... D0 2007 : : : : 2 : 100866 : http: / / www. wendu. com : 010-88422102 831, 832 : : : 850 1168 1 / 2007 /,. :, 2006. 2 ISBN 7-89994 - 217-9. 2......... D0 2007 : : : : 2 : 100866 : http: / / www. wendu. com : 010-88422102 831, 832 : : : 850 1168 1 /32 : 4. 875 : 2006 3 2 2006 3 2 : ISBN 7-89994 - 217-9

More information

4 / ( / / 5 / / ( / 6 ( / / 7 1 2 / 3 ( 4 ( 2003 8 ( 2

4 / ( / / 5 / / ( / 6 ( / / 7 1 2 / 3 ( 4 ( 2003 8 ( 2 : / ( 6 (2003 8 : ( 1 ( ( / / (,, ( ( - ( - (39mm 29mm 2 ( 1 2 3-6 3 6-24 6-48 12-24 8-12 WSK / WSK WSK 1 4 / ( / / 5 / / ( / 6 ( / / 7 1 2 / 3 ( 4 ( 2003 8 ( 2 9 5 ( 10 3 11 / (600 4 5 AA 710 AB 720 730

More information

过 程 排 除 A 正 确 答 案 是 B 14.A 解 析 本 题 考 查 思 修 第 八 章 中 国 人 权, 新 增 考 点 其 中 直 接 考 查 宪 法 保 障 是 人 权 保 障 的 前 提 和 基 础 A 人 权 保 障 的 最 后 防 线 是 司 法 保 障,B 人 权 保 障 的

过 程 排 除 A 正 确 答 案 是 B 14.A 解 析 本 题 考 查 思 修 第 八 章 中 国 人 权, 新 增 考 点 其 中 直 接 考 查 宪 法 保 障 是 人 权 保 障 的 前 提 和 基 础 A 人 权 保 障 的 最 后 防 线 是 司 法 保 障,B 人 权 保 障 的 2016 考 研 政 治 真 题 答 案 及 解 析 ( 完 整 版 ) 来 源 : 文 都 教 育 一 单 选 题 1.B 解 析 此 题 考 查 的 是 适 度 原 则 AC 选 项 表 述 正 确 但 与 题 目 无 关 D 表 述 错 误, 现 象 表 现 本 质 的 只 有 B 与 题 干 相 符, 所 以 答 案 为 B 2.A 解 析 前 一 句 话 " 自 由 不 在 于 幻 想 中

More information

Ps22Pdf

Ps22Pdf 0146) : 2 /. :, 2004. 7 ISBN 7-80153 - 957-5.... G726. 9 CIP ( 2004) 069174 : 2 : : : : : : 2 : 100733 : 010-65369524 65369530 : : : 880mm 1230mm 1 /32 : 2800 : 122 : 5000 : 2006 8 1 2 : ISBN 7-80153 -

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

Create By PageManager

Create By PageManager ^1~2#??! : 15 @3:50@5:00 7O : @ " - 3 4 : B R; :! : @321 " (A) (B) " " 1C) 1D!" ". lal 1Bl (C1 (D) la1 (B@ 1C1 @D@ 4? (A) lb) @C@ (D) " (Al (B1-" (c1 " 1D1" ". (A) (B) ;C) 1D) (104901-C) : (Al 1Bl 1C)

More information

zt

zt #! " #$$%& ()*+, - $% - $./001-2!& & & & "& & & & #& - - $& 3,.0& $ 4(5 #$$%$/1 #$ $.$ - 1%$/%/ % $$ -.$ - $/6.$$$. 7889!! :::& 7;9& ;? $.$ - #$# 66 7889!! :::& 7;9& >@A& >?,, B.$6#.!.1 #$$%.. #$$%.

More information

WinXP

WinXP 2014 行 测 知 识 点 详 解 班 课 程 讲 义 www.b2cedu.com 言 语 理 解 和 表 达 4 第 一 课 言 语 理 解 与 表 达 概 述... 4 第 二 课 : 逻 辑 填 空 实 词 填 空... 6 第 三 课 : 逻 辑 填 空 成 语 填 空... 9 第 四 课 : 阅 读 理 解 -- 表 面 主 旨... 12 第 五 课 : 阅 读 理 解 -- 隐

More information

untitled

untitled 8.1 f G(f) 3.1.5 G(f) f G(f) f = a 1 = a 2 b 1 = b 2 8.1.1 {a, b} a, b {a} = {a, a}{a} 8.1.2 = {{a}, {a, b}} a, b a b a, b {a}, {a, b}{a} {a, b} 8.1.3

More information

主 題 四 : 都 卜 勒 效 應 一 都 卜 勒 效 應 1. 現 象 : 當 波 源 與 觀 察 者 連 線 間 有 相 對 運 動 時, 聽 者 所 接 收 到 的 頻 率 ( 視 頻 ) 將 與 波 源 之 原 頻 率 不 同, 此 現 象 稱 為 都 卜 勒 效 應 例 如 站 於 路 旁

主 題 四 : 都 卜 勒 效 應 一 都 卜 勒 效 應 1. 現 象 : 當 波 源 與 觀 察 者 連 線 間 有 相 對 運 動 時, 聽 者 所 接 收 到 的 頻 率 ( 視 頻 ) 將 與 波 源 之 原 頻 率 不 同, 此 現 象 稱 為 都 卜 勒 效 應 例 如 站 於 路 旁 都卜勒效應 項少龍老師 項少龍老師 主 題 四 : 都 卜 勒 效 應 一 都 卜 勒 效 應 1. 現 象 : 當 波 源 與 觀 察 者 連 線 間 有 相 對 運 動 時, 聽 者 所 接 收 到 的 頻 率 ( 視 頻 ) 將 與 波 源 之 原 頻 率 不 同, 此 現 象 稱 為 都 卜 勒 效 應 例 如 站 於 路 旁, 當 救 護 車 駛 來 時, 觀 察 者 聽 到 之 聲 音

More information

E170C2.PDF

E170C2.PDF IQ E170C2 2002.3. Rotork Rotork * ( ) * * RotorkIQ - IQ * * PC IQ Insight / Rotork * - Rotork IQ www.rotork.com 5 10 5.1 11 1 2 5.2 11 2 3 5.3 11 3 IQ 3 5.4 11 3.1 3 5.5 IQM12 3.2 3 5.6 IQML12 3.3 4 5.7

More information

! $%%&! (!"# $%%& $) * +, -. / 0 *-./ 0 /1 -!!!!!! 21.!!!!!! 31 /!!!!!! 41 0 $%%& )% $%%& 5 $%%& 6 $%%& $%%& ( #!! " #

! $%%&! (!# $%%& $) * +, -. / 0 *-./ 0 /1 -!!!!!! 21.!!!!!! 31 /!!!!!! 41 0 $%%& )% $%%& 5 $%%& 6 $%%& $%%& ( #!!  # !! "#!"#$%& ()*+,-./01234,5 %$$" %$$" 6!7%$$" 8-. (9:2;< %$$" &$ %!!!!!!!!!!!!! ( $$$ $) $$$ #$) *$)!!!! " #$ ! $%%&! (!"# $%%& $) * +, -. / 0 *-./ 0 /1 -!!!!!! 21.!!!!!! 31 /!!!!!! 41 0 $%%& )% $%%& 5

More information

(C) 比 得 上 (D) 如 果 17. ( ) 聖 賢 經 傳 和 傳 奇 小 說 兩 個 傳 字, 其 音 義 關 係 為 何? (A) 音 同 義 異 (B) 音 義 皆 同 (C) 義 同 音 異 (D) 音 義 皆 異 18. ( ) 下 列 選 項 中 的 形 似 字, 何 者 讀 音

(C) 比 得 上 (D) 如 果 17. ( ) 聖 賢 經 傳 和 傳 奇 小 說 兩 個 傳 字, 其 音 義 關 係 為 何? (A) 音 同 義 異 (B) 音 義 皆 同 (C) 義 同 音 異 (D) 音 義 皆 異 18. ( ) 下 列 選 項 中 的 形 似 字, 何 者 讀 音 國 中 國 文 B4:L7 考 試 卷 年 班 座 號 : 姓 名 : 一 國 字 及 注 音 1. 1 謹 ㄔˋ : 2 裝 ㄕˋ : 2. 1 ㄕㄨˊ 大 於 是 : 2 私 ㄕㄨˊ : 3. 歙 縣 : 4. 拘 泥 : 5. 不 宜 痴 : 6. 1 經 傳 : 2 傳 承 : 7. ㄏㄨㄟ 諧 : 8. 徽 州 : 9. 閒 ㄒㄧㄚˊ : 10. 康 ㄒㄧ : 11. 默 而 識 之 :

More information

北京2014年会计从业资格考试《会计基础》备考机试卷一

北京2014年会计从业资格考试《会计基础》备考机试卷一 更 多 内 容 请 查 看 精 品 文 库 网 www.jingpinwenku.com 北 京 2014 年 会 计 从 业 资 格 考 试 会 计 基 础 备 考 机 试 卷 一 1 单 项 选 择 题 ( 下 列 各 题 的 备 选 答 案 中, 请 从 中 选 出 一 个 最 符 合 题 意 的 答 案 本 类 题 共 20 个 小 题, 每 小 题 1 分, 共 20 分 多 选 错 选

More information

C/C++ 语言 - 循环

C/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

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

OOP 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

高二立體幾何

高二立體幾何 008 / 009 學 年 教 學 設 計 獎 勵 計 劃 高 二 立 體 幾 何 參 選 編 號 :C00 學 科 名 稱 : 適 用 程 度 : 高 二 簡 介 一 本 教 學 設 計 的 目 的 高 中 立 體 幾 何 的 學 習 是 學 生 較 難 理 解 而 又 非 常 重 要 的 一 個 部 分, 也 是 高 中 教 學 中 較 難 講 授 的 一 個 部 分. 像 國 內 的 聯 校

More information

!!""# $ %#" & $$ % $()! *% $!*% +,-. / 0 %%"#" 0 $%1 0 * $! $#)2 "

!!# $ %# & $$ % $()! *% $!*% +,-. / 0 %%# 0 $%1 0 * $! $#)2 ! """"""""""""""""""" " !!""# $ %#" & $$ % $()! *% $!*% +,-. / 0 %%"#" 0 $%1 0 * $! $#)2 " !"#$%#$&!!!!!!!!!!!!!!!!!!!!!!!!!!!"#$%& (& #) *+&,"-./%0 1 2"0*-"3* #4 5%&6&4"&00 78 9+& :"/;& 7< 9+& =#4-%%/

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

Chapter12 Derived Classes

Chapter12   Derived Classes 继 承 -- 派 生 类 复 习 1. 有 下 面 类 的 说 明, 有 错 误 的 语 句 是 : class X { A) const int a; B) X(); C) X(int val) {a=2 D) ~X(); 答 案 :C 不 正 确, 应 改 成 X(int val) : a(2) { 2. 下 列 静 态 数 据 成 员 的 特 性 中, 错 误 的 是 A) 说 明 静 态 数

More information

山东2014第四季新教材《会计基础》冲刺卷第二套

山东2014第四季新教材《会计基础》冲刺卷第二套 2016 年 会 计 从 业 考 试 会 计 基 础 冲 刺 卷 2 一 单 项 选 择 题 ( 本 题 共 20 小 题, 每 小 题 1 分, 共 20 分 在 下 列 每 小 题 的 备 选 项 中, 有 且 只 有 一 个 选 项 是 最 符 合 题 目 要 求 的, 请 将 正 确 答 案 前 的 英 文 字 母 填 入 题 后 的 括 号 内, 不 选 错 选 均 不 得 分 ) 1.

More information

CC213

CC213 : (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

Microsoft PowerPoint - ch4.ppt [兼容模式]

Microsoft 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 information

) +!"!"#$ %& ()*! # # +,-./, 0 /, 1&22& 34! 56! " " $ %!! 56 $! % &!! &! &! (!6+!6+. 7) 3 89 :&) ( 9)#; +,- % )*% % + 7<; 3 ). 0 (*!

) +!!#$ %& ()*! # # +,-./, 0 /, 1&22& 34! 56!   $ %!! 56 $! % &!! &! &! (!6+!6+. 7) 3 89 :&) ( 9)#; +,- % )*% % + 7<; 3 ). 0 (*! !""# #!"#$"%&"!""#!"#$%&% ()*$+, (-!"*(.+/(0*+1"2 ()*+!$,)+ % %&$ %%" ( - ( - -! - - ( - (! (+ ("!!"*!+ ("""!! +# :*%+- - 9- - (""".+$(&!""# "%."%&$.(,- -!"#$%& ( )* ( +$,$-.)% $%" $%$/0-.&$/ - &1%.23

More information

instructions.PDF

instructions.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 information

Ps22Pdf

Ps22Pdf ( ) ( 150 ) 25 15 20 40 ( 25, 1, 25 ), 1. A. B. C. D. 2. A. B. C. D. 3., J = 1 H = 1 ( A B, J', J, H ) A. A = B = 1, J' =0 B. A = B = J' =1 C. A = J' =1, B =0 D. B = J' = 1, A = 0 4. AB + AB A. AB B. AB

More information

<4D6963726F736F667420576F7264202D2032303135C4EAC8EBD1A74D4241C1AABFBCD7DBBACFB2CEBFBCB4F0B0B8BCB0CFEABDE22E646F6378>

<4D6963726F736F667420576F7264202D2032303135C4EAC8EBD1A74D4241C1AABFBCD7DBBACFB2CEBFBCB4F0B0B8BCB0CFEABDE22E646F6378> 05 年 入 学 MBA 联 考 综 合 试 卷 参 考 答 案 及 详 解 说 明 : 由 于 05 年 入 学 MBA 联 考 试 题 为 一 题 多 卷, 因 此 现 场 试 卷 中 的 选 择 题 顺 序 及 每 道 题 的 选 项 顺 序, 不 同 考 生 有 所 不 同 请 在 核 对 答 案 时 注 意 题 目 和 选 项 的 具 体 内 容 所 有 解 析 来 自 网 络, 仅 供

More information

安全生产管理知识

安全生产管理知识 2014 年 二 建 管 理 真 题 及 答 案 一 单 项 选 择 题 ( 共 70 题, 每 题 1 分, 每 题 的 备 选 项 中, 只 有 一 个 最 符 合 题 意 ) 1. 关 于 施 工 总 承 包 方 项 目 管 理 任 务 的 说 法, 正 确 的 是 ( ) A. 施 工 总 承 包 方 一 般 不 承 担 施 工 任 务, 只 承 担 施 工 的 总 体 管 理 和 协 调

More information

数 学 高 分 的 展 望 一 管 理 类 联 考 分 析 第 一 篇 大 纲 解 析 篇 编 写 : 孙 华 明 1 综 合 能 力 考 试 时 间 :014 年 1 月 4 日 上 午 8:30~11:30 分 值 分 配 : 数 学 :75 分 逻 辑 :60 分 作 文 :65 分 ; 总

数 学 高 分 的 展 望 一 管 理 类 联 考 分 析 第 一 篇 大 纲 解 析 篇 编 写 : 孙 华 明 1 综 合 能 力 考 试 时 间 :014 年 1 月 4 日 上 午 8:30~11:30 分 值 分 配 : 数 学 :75 分 逻 辑 :60 分 作 文 :65 分 ; 总 目 录 数 学 高 分 的 展 望... 1 第 一 篇 大 纲 解 析 篇... 1 一 管 理 类 联 考 分 析... 1 二 最 新 大 纲 解 析... 1 三 考 前 复 习 资 料 及 方 法... 第 二 篇 总 结 篇... 4 1 应 用 题 考 点 总 结 与 技 巧 归 纳... 4 代 数 模 块 题 型 归 纳 及 考 点 总 结... 9 3 数 列 模 块 题 型 归

More information

! "#$% & ())*! ++, +- +.)! ++ ())* / 0!!""#!

! #$% & ())*! ++, +- +.)! ++ ())* / 0!!#! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

More information

zt

zt !!!!!!!!!!!!!!!!!!!! $ $ $ $ $ $ $ $ $ $ % $ % (!$ $ &% ) $ $ *) $ $ $ $ $ $ +) $ $ $ $ $ $,) $ $ $ $ $ $ -) $ $ $ $ $ $!) $ $ *) $ $ $ +) $ $ $,) $ $ $ -) $ $ $ () $ $ *) $ $ $ +),) -) &) $ $ *) +),)!

More information

( m+ n) a 6 4 4 4 4 7 4 4 4 48 m n m+ n a a = a 4 a 4 3 a a 4 a 4 3 a = a 4 a 4 4 a 4 == 3 = a ma na ( m+ n) a A 0 a m a n m n a m+n 0 B a m a n m n m>n a m-n C 0 (a m ) n m n a mn D (ab) n n a n b n (

More information

untitled

untitled 1 2 3 4 5 6 2005 30 28 36 29 19 33 6 58 1 1 2. 3 1 2 4 5 6 7 8 58 2 30 30 1 01 58 3 2 1 2 3 1 2 3 4 5 58 4 6 7 8 1 9 10 11 12 13 14 15 16 17 18 19 20 1 ( 1 ) 21 22 23 24 25 26 58 5 27 28 29 30 31 32 33

More information

!"#$%"#$!& () #*("+$,# -+(&. )!""# $ $ $ $ $ $ $ $ $ !!!"#$%#$&!"#$% #" %#&# %# (%!) (&#"*%!!!!!!!!!!!!!!!!!!!!!!! " "# (&$")(!*+,*)-%$ ".%).(%/!!!!!!!!!!!!!!!!!!!!!!!!!!!! $ (&$")(!*+ &$*$(&$(!*+,*)-%$

More information

CIP 1500 / ISBN X Ⅰ. Ⅱ. Ⅲ. Ⅳ. D CIP edu. cn

CIP 1500 / ISBN X Ⅰ. Ⅱ. Ⅲ. Ⅳ. D CIP edu. cn 1500 CIP 1500 /. 2006. 8 ISBN 7 5625 2128X Ⅰ. Ⅱ. Ⅲ. Ⅳ. D920. 5 44 CIP 2006 087648 1500 388 430074 027 87482760 027 87481537 E-mail cbb@cug. edu. cn 2006 8 1 2006 8 1 850 1 168 1 /32 8. 625 220 26. 00 1.

More information

爱学习

爱学习 2013 中 建 教 育 二 级 建 造 师 建 设 工 程 施 工 管 理 点 题 班 习 题 ( 一 ) 一 单 项 选 择 题 ( 共 70 题, 每 题 1 分, 每 题 的 备 选 项 中, 只 有 1 个 最 符 合 题 意 ) 1 建 设 工 程 项 目 管 理 就 是 自 项 目 开 始 到 完 成, 通 过 ( ) 使 项 目 目 标 得 以 实 现 A 项 目 策 划 和 项 目

More information

% +$ )!#$ %"!# & #!$ %" " ( ) * $ %!+$ %" -! < % 2 > E B > +? F! = E H > =+!! E H2 > 3 / /!!$ *" ( %, -.!!/ + ( ) %!,! %!, - ) > 3 2 > #= =

% +$ )!#$ %!# & #!$ %  ( ) * $ %!+$ % -! < % 2 > E B > +? F! = E H > =+!! E H2 > 3 / /!!$ * ( %, -.!!/ + ( ) %!,! %!, - ) > 3 2 > #= = #$$%!#&!!$!#(!$$!$) )$ )) $* &) ))!+, -.!,. #&. +-. " "! "#!" # $!* /" 0 1!#* 2" $ #* 0"!+* 1" 2 / +* 2" +%$!* & )$ #($!& #&& 3 -% 4 #&& 4!* & 5 +%$ 6,$* -& 0 (* 0" (&7 #!7+(89 %,7#%8: %,7#%8:!(* 1", (!#!7;

More information

VF---10

VF---10 VF---10 1 2 3 MCCB MC 1K2W 0~10V 0~5V 4~20mA R S T FWD REV X1 X2 X3 X4 X5 X6 COM 10V VS1 VS2 IS AGND U V W E COM PG A+ PG A- PG B+ 24V PG B- A B C Y1 Y2 Y3 COM M 485+ 485- A01 A02 AGND AM FM 6 MCCB

More information

! $%%& $%%#! " $%%# $%%& $%%& $%%# $%%& $%%#! "##$%%

! $%%& $%%#!  $%%# $%%& $%%& $%%# $%%& $%%#! ##$%% ! $$) $$) $$( $$) *+ $$( + $$( #+ $$( %+ $$(,+ $$( $$) $$( $$) $$(, % $$,! *- $$)! $. # / $$(!! " #$% & #($$ ! $%%& $%%#! " $%%# $%%& $%%& $%%# $%%& $%%#! "##$%% !"#$%& ()*+,-. #$ /"0123 456789.!$!$ #$$%!!

More information

科学计算的语言-FORTRAN95

科学计算的语言-FORTRAN95 科 学 计 算 的 语 言 -FORTRAN95 目 录 第 一 篇 闲 话 第 1 章 目 的 是 计 算 第 2 章 FORTRAN95 如 何 描 述 计 算 第 3 章 FORTRAN 的 编 译 系 统 第 二 篇 计 算 的 叙 述 第 4 章 FORTRAN95 语 言 的 形 貌 第 5 章 准 备 数 据 第 6 章 构 造 数 据 第 7 章 声 明 数 据 第 8 章 构 造

More information

!"#$%"#$!& () #*("+$,# -+(&. )!""! # # # # # # # # !!!"#$%#$&!"#$% #" %#&# %# (%!) (&#"*%!!!!!!!!!!!!!!!!!!!!!!! " "# (&$")(!*+,*)-%$ ".%).(%/!!!!!!!!!!!!!!!!!!!!!!!!!!!! $ (&$")(!*+ &$*$(&$(!*+,*)-%$

More information

!"#$%"#$!& () #*("+$,# -+(&. )!""! # # # # # # # # !!!"#$%#$&!"#$% #" %#&# %# (%!) (&#"*%!!!!!!!!!!!!!!!!!!!!!!! " "# (&$")(!*+,*)-%$ ".%).(%/!!!!!!!!!!!!!!!!!!!!!!!!!!!! $ (&$")(!*+ &$*$(&$(!*+,*)-%$

More information

Microsoft PowerPoint - L12-v3.pptx

Microsoft 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

untitled

untitled ISBN 7115489041/Z 132 5.00 1 2 3 1 2 1 2 15 4 1 A B C 2 A B C 3 A B C 4 A B C 5 A B C 6 A B C A B C 1 2 3

More information

广 州 商 学 院 毕 业 生 就 业 质 量 年 度 报 告 (2015 届 ) 广 州 商 学 院 就 业 指 导 中 心 2015 年 12 月 24 日 目 录 前 言 1 一 学 校 简 介 1 二 质 量 年 度 报 告 介 绍 2 第 一 部 分 就 业 状 况 及 分 析 3 一 基 本 情 况 3 ( 一 ) 毕 业 生 分 布 情 况 3 ( 二 ) 初 次 就 业 率 4 二

More information

A. B. C. D. 2. A. B. C. D. 3. A. 4 N B. 18 N C. 40 N D N 1

A. B. C. D. 2. A. B. C. D. 3. A. 4 N B. 18 N C. 40 N D N 1 1 1 3 5 5 8 9 9 11 13 14 16 17 17 19 21 23 25 26 26 29 31 32 32 33 34 35 37 38 1 1. 2. 3. 1. 2. 3. 4. 5. 1 2 3 1. A. B. C. D. 2. A. B. C. D. 3. A. 4 N B. 18 N C. 40 N D. 23. 5 N 1 1 2 3 1. A. B. C. D.

More information

"# $ % & $# $ % & "!! " # $! %(() * )(

# $ % & $# $ % & !!  # $! %(() * )( !""#!$ "$ %$!$ %! & ( &$ %! & ( # "# $ % & $# $ % & "!! " # $! %(() * )( " #$ " %$ " & $ " #($ )*!!!!! +*!!! "*!!!,*! " -$ " #$ " %$ " & $ " #($ "! $$-. $* & /01 2 3 & )* +4"1! 5467! 547"6 8 +* 54 "6 8!

More information

Ps22Pdf

Ps22Pdf 1 ( 1) 2 (52) 3 (71) 4 ( 122) 5 ( 160) 6 ( 194) 7 ( 255) 8 ( 301) 9 ( 331) 10 ( 361) 11 ( 396) 1 1. 1 1. ( ) A. B. C. D. 2. ( ) A. B. C. D. 3. ( ) A. B. C. D. 4. ( ) A. B. C. D. 5. ( ) A., B. C., D. 6.

More information

北京金英杰医学考试中心

北京金英杰医学考试中心 目 录 社 会 主 义 法 治 理 念 备 考 提 示... 1 2013 年 大 纲 变 化... 1 法 理 学 备 考 提 示... 1 2013 年 大 纲 变 化... 1 法 制 史 备 考 提 示... 3 2013 年 大 纲 变 化... 3 宪 法 备 考 提 示... 4 2013 年 大 纲 变 化... 5 经 济 法 备 考 提 示... 8 2013 年 大 纲 变 化...

More information

!# $#!#!%%& $# &% %!# (# )#! "

!# $#!#!%%& $# &% %!# (# )#! ! " "!! " "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " #$$%! # & % ( #$$%! #$$% ) #$$% # #!!# %!!!! ( ) #!!& # &#$$%!* #$$ $+ %%$+ ( # # # # #!+ !# $#!#!%%& $# &% %!# (# )#! " ! " " S1.+(/8.-1.,3(413 516*+/,

More information

!"#$ % & ())*$ $ +,-./0)1)1/.21/.$ 3 4$ 5 4$ 6 789:;9< $ = :; A B CD ())* E )FG(*? H$ $ $ $ $ $ $ $ $ $ % IJ!"#% &$ KLMNO 2(* H 2G))(2 $ PQ R

!#$ % & ())*$ $ +,-./0)1)1/.21/.$ 3 4$ 5 4$ 6 789:;9< $ = :; A B CD ())* E )FG(*? H$ $ $ $ $ $ $ $ $ $ % IJ!#% &$ KLMNO 2(* H 2G))(2 $ PQ R !"#$ % & ())*$ $ +,-./0)1)1/.21/.$ 3 4$ 5 4$ 6 789:;9< $ = >?((@0$ :; A B CD ())* E )FG(*? H$ $ $ $ $ $ $ $ $ $ % IJ!"#% &$ KLMNO 2(* H 2G))(2 $ PQ R STU$ VW ;XY Z [$ \] ^_ a\]b$ c ())* d G ee 2 $ H +,-./0)1)1/.21/.

More information

Microsoft PowerPoint - L9-v3.pptx

Microsoft PowerPoint - L9-v3.pptx Lecture 9: 语法制导的翻译 -I Xiaoyuan Xie 谢晓园 xxie@whu.edu.cn 计算机学院 E301 Introduction 9.1 概述 语义分析在编译程序中的作用 词法分析 目标代码生成 语法分析 中间代码优化 语义分析 分析 中间代码生成 合成 语法和语义的区别 语法 是描述一个合法定义的程序结构的规则 例如 id( ) 语义 说明一个合法定义的程序的含义

More information

2009年挑战乔戈里

2009年挑战乔戈里 2009 年 挑 战 乔 戈 里 活 动 概 况 : 乔 戈 里 峰 海 拔 8611 米, 它 是 喀 喇 昆 仑 山 脉 的 主 峰, 是 世 界 上 第 二 高 峰, 国 外 又 称 K2 峰 乔 戈 里 峰, 国 际 登 山 界 公 认 的 攀 登 难 度 较 大 的 山 峰 之 一 乔 戈 里 峰 峰 巅 呈 金 字 塔 形, 冰 崖 壁 立, 山 势 险 峻, 在 陡 峭 的 坡 壁 上

More information

( CIP. :, 2004. 10 / ISBN 7-5054 - 1005-9.......... D630. 3-44 CIP ( 2004 055306 35 100044 ( 010) 68433166 ( ) ( 010) 68413840 /68433213( ) ( 010) 884

( CIP. :, 2004. 10 / ISBN 7-5054 - 1005-9.......... D630. 3-44 CIP ( 2004 055306 35 100044 ( 010) 68433166 ( ) ( 010) 68413840 /68433213( ) ( 010) 884 , : :,, : ( CIP. :, 2004. 10 / ISBN 7-5054 - 1005-9.......... D630. 3-44 CIP ( 2004 055306 35 100044 ( 010) 68433166 ( ) ( 010) 68413840 /68433213( ) ( 010) 88415258( ) 787 1092 1 / 16 195 8 2004 10 1

More information

网C试题(08上).doc

网C试题(08上).doc 学习中心 姓名 学号 西安电子科技大学网络与继续教育学院 高级语言程序设计 (C) 全真试题 ( 闭卷 90 分钟 ) 题号一二三总分 题分 60 20 20 得分 一 单项选择题 ( 每小题 3 分, 共 60 分 ) 1.C 语言程序的基本单位是 A) 程序行 B) 语句 C) 函数 D) 字符 2. 下列四组选项中, 均是不合法的用户标识符的选项是 A)A B)getc C)include D)while

More information

4 1 1 16 1 0 1 5 3 8 5 8 5 8 7 8 5 1 3 5 1 4 4 5 1 5 1 8 = 1 16 16 10000 16 1 1 5 + 3 8 + = ( = 3 5 3 5 15 1 1 7 4 3 = =. 4 7 4 7 8 4 x y z x + 1 = y + 1 = z + 1 x y z = 1 y z x zx = z-x xy = x-y y-z

More information

BB.3

BB.3 I IURNA L S AN S ï EK VOA ó N m 8 ç 6-8 1 园 叫团团回国 J m l ll m i h M t m t ik i E v l i P g l l A i r L i m b h - T k l ik d i K t T m g i d T r p tc P g r h P r r m P r S t d i T g r T r h d p p r b h K

More information

2015年计算机二级(C语言)模拟试题及答案(三)

2015年计算机二级(C语言)模拟试题及答案(三) 2016 年计算机二级 (C 语言 ) 模拟试题及答案 (3) 1.( A ) 是构成 C 语言程序的基本单位 A 函数 B 过程 C 子程序 D 子例程 2.C 语言程序从 ( C ) 开始执行 A 程序中第一条可执行语句 B 程序中第一个函数 C 程序中的 main 函数 D 包含文件中的第一个函数 3 以下说法中正确的是( C ) A C 语言程序总是从第一个定义的函数开始执行 B 在 C 语言程序中,

More information

!##$!% "&! %( $#!##)!& $!##*!##*! "

!##$!% &! %( $#!##)!& $!##*!##*! "!! " " " " " " " " " " " " " " " " "!!!!!!!!!!!!!!!!!!!!!!!!!!!! " #!$% & &&% (!) &*% ( &++(!( &++* * ( )!+ #* #$ & # *, )!!!* &- &) #-! *, #,! " !##$!% "&! %( $#!##)!& $!##*!##*! " " 92 %, #$ %&#! 8$*2$*112

More information

2011-论文选集-2.cdr

2011-论文选集-2.cdr ! "#$# $$ "#$#$$" " $% &%!$ $ "#$$ " ! "!#!$ %" #& # ( #$ ) )& )# )$ ** "& ")! ! "" # $% & &( ( # ) )** )*+ )*$ )) ))" ),+ )," -./ ) ) ) " )++ )+" )%,, !"#" $ ! " #$% & ( & ) % #$% #$% & * #$%#$% #$% (

More information

高中國文科期末考            年班號姓名:

高中國文科期末考            年班號姓名: 金 陵 女 高 九 十 八 學 年 度 第 一 學 期 國 文 科 期 末 考 試 試 卷 範 圍 ; 翰 林 五 冊 10.12- 附 1. 含 語 練 論 孟 : 論 \ 古 人 成 語 P249-264 補 充 8-10 模 卷 13-14 國 學 : 賦 原 體 諸 子 現 代 詩 韻 文 日 期 :98 年 1 月 14 日 高 三 班 號 姓 名 : 一 單 一 選 擇 題 1 至 25

More information