编译原理词法语法语义分析器的设计.docVIP

  • 100
  • 0
  • 约1.69千字
  • 约 9页
  • 2018-08-30 发布于湖北
  • 举报

编译原理词法语法语义分析器的设计.doc

二、任务及要求 基本要求: 词法分析器 产生下述小语言的单词序列 这个小语言的所有的单词符号,以及它们的种别编码和内部值如下表: 单词符号 种别编码 助记符 内码值 DIM IF DO STOP END 标识符 常数(整) = + * ** , ( ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 $DIM $IF $DO $STOP $END $ID $INT $ASSIGN $PLUS $STAR $POWER $COMMA $LPAR $RPAR - - - - - - 内部字符串 标准二进形式 - - - - - - 语法分析器 能识别由加+ 减- 乘* 除/ 乘方^ 括号()操作数所组成的算术表达式,其文法如下: 使用的算法可以是:预测分析法;递归下降分析法;算符优先分析法;LR分析法等。 (1)A-EB (2)B-EB|EB|ε (3)E-TG (4)G-+TG|-TG|ε (5)T-FS (6)S-*FS|/FS|ε (7)F-(E)|i |i=E 中间代码生成器 产生上述算术表达式的中间代码(四元式序列) 较高要求: 扩充上述小语言的单词; 增加语法分析器的功能,能识别条件语句和循环语句等; 增加中间代码生成器的功能,能产生条件语句和循环语句等的中间代码(四元式序列) 增加报错功能; 将中间代码翻译成汇编语言。 3 具体的种别编码和内部值: 单词符号 种别编码 单词值 int 1   char 2   float 3   if 4   else 5   do 6   while 7   printf 8   main 9   标识符 100  内部字符串 常数(整) 200  二进制数值表示 = = 401   = 402   = 403   404   = 405   406   != 407   ! 408   += 409 ++ 410 + 411 -= 412 - - 413 - 414 *= 415 * 416 /= 417 / 418 ^ 419 ; 501 ( 502 ) 503 [ 504 ] 505 { 506 } 507 : 508 “ 509 %= 510 % 511 , 512 # 513 @ 514 空格 515 $ 0 流程图: 主流程图 扫描程序流程图: (a),标识符词法分析流程图 (b), 数字(整)词法分析流程图 (c), 其他字符流程图 (a) (b) (c) 3 流程图: 主流程图 e函数流程图: 调用t函数p函数流程图: 调用t函数 t函数流程图: f函数流程图:

文档评论(0)

1亿VIP精品文档

相关文档