复习
复习
引言·编译器、解释器·步骤(Phase)、“趟”(Pass)
引言 • 编译器、解释器 • 步骤(Phase)、“趟”(Pass)
源程序字符流中间表示↓词法分析机器无关的代码优化符号表词法单元流中间表示?+语法分析代码生成语法树目标机器代码++语义分析机器相关的代码优化语法树+目标机器代码中间代码生成
源程序字符流 词法分析 语法分析 语义分析 中间代码生成 机器无关的代码优化 代码生成 机器相关的代码优化 目标机器代码 词法单元流 语法树 语法树 中间表示 中间表示 目标机器代码 符号 表
position initial + rate * 60+词法分析器(id,1)(=)(id,2)《+)(id,3)(*)(60)语法分析器(id,11(id,2)position..2(id, 3)60initial"★3rate...语义分析器(id,符号表(id,2)(id, 3)inttofloat 60+中间代码生成器t1=inttofloat(60)t2=id3*t1t3id2+t2id1=t3/代码优化器Yt1=id3*60.0id1-id2+t11代码生成器LDFR2,id3MULFR2,R2,#60.0LDFR1,id2ADDFR1,R1,R2STFidi,Ri
词法分析·正则表达式·状态转换图·有限自动机:NFA、DFA·互相转换·非形式描述的语言正则表达式·正则表达式→NFA·非形式描述的语言NFANFA→DFA·DFA→最简DFA·非形式描述的语言台DFA(或最简DFA)
词法分析 • 正则表达式 • 状态转换图 • 有限自动机:NFA、DFA • 互相转换 • 非形式描述的语言 正则表达式 • 正则表达式 → NFA • 非形式描述的语言 NFA • NFA → DFA • DFA → 最简DFA • 非形式描述的语言 DFA(或最简DFA)