西北工业大学软件软件编译原理实验 欢迎大家下载交流参考,共同进步!欢迎
2021-04-10 19:46:21 613KB 西北工业大学 软件学院 实验 大作业
1
合工大编译原理实验一词法分析李宏芒 一、实验目的 通过本实验的编程实践,使学生了解词法分析的任务,掌握词法分析程序设计的原理和构造方法,使学生对编译的基本概念、原理和方法有完整的和清楚的理解,并能正确地、熟练地运用。 二、功能描述 1) 可在界面文本框上手动输入或由文件读取方式导入.c或.txt文件内需要分析的程序段。 2) 如果发现错误则报告出错ERROR且将统计的行数和列数用于错误单词的定位 3) 删除空格类字符,包括但不限于‘\t’, ‘\r’, ‘\n’, ‘ ’. 4) 按拼写单词(关键字、标识符、常数、运算符、关系运算符、分界符号,错误),分别对应内码1,2,3,4,5,6,7,并用(内码,属性)二元式表示 5) 根据需要可任意扩充标识符表供以后更加广泛的范围使用 6) 对于二元运算符 ++、 --、 ==、 >=、 <= 可进行整体识别
2021-04-09 13:47:11 7KB lexic analyze 编译原理
1
C-Minus 的词法规则 (1)关键字: if else int return void while (2)专用符号: + - * / < >= == ~= = ; , ( ) [ ] { } /* */ (3)其他标记为 ID 和 NUM ,通过下列正则表达式定义: ID = letter letter* NUM = digit digit* letter = a|..|z|A|..|Z digit = 0|..|9 (4)空格由空白、换行符、制表符组成。 (5)注释由 /*...*/ 围起来,不能嵌套。 C-Minus 的语法规则 C-Minus 的 BNF 语法如下: 1. program -> declaration_list 2. declaration_list -> declaration_list declaration | declaration 3. declaration -> var_declaration | fun_declaration 4. var_declaration -> type_specifier ID; | type_specifier ID [ NUM ]; 5. type_specifier -> int | void 6. fun_declaration -> type_specifier ID ( params ) compound_stmt 7. params -> param_list | void 8. param_list -> param_list , param | param 9. param -> type_specifier ID | type_specifier ID [ ] 10. compound_stmt -> { local_declarations statement_list } 11. local_declarations -> local_declarations var_declaration | empty 12. statement_list -> statement_list statement | empty 13. statement -> expression_stmt | compound_stmt | selection_stmt | iteration_stmt | return_stmt 14. expression_stmt -> expression ; | ; 15. selection_stmt -> if ( expression ) statement | if ( expression ) statement else statement 16. iteration_stmt -> while ( expression ) statement 17. return_stmt -> return | return expression 18. expression -> var = expression | simple_expression 19. var -> ID | ID [ expression ] 20. simple_expression -> additive_expression relop additive_expression | additive_expression 21. relop -> <= | | >= | == | ~= 22. additive_expression -> additive_expression addop term | term 23. addop -> + | - 24. term -> term mulop factor | factor 25. mulop -> * | / 26. factor -> ( expression ) | var | call | NUM 27. call -> ID ( args ) 28. args -> arg_list | empty 29. arg8list -> arg_list , expression | expression 对以上每条文法规则,给出了相关语义的简短解释。 1. program -> declaration_list 2. declaration_list -> declaration_list declaration | declaration 3. dec
2021-04-08 18:59:04 9KB 编译原理实验
1
将终端用户输入的一个中缀表达式转换为等价的后缀表达式后输出;若用户输入的表达式有误,则程序输出相应的错误信息
2021-04-08 15:16:40 6KB 后缀表达式 Postfix 编译原理实验
1
带代码的实验报告,非原创,包含所有库。可直接运行。 使用DFA从文件读入词法分析表 实现所有加分项 关键字、标识符、+-*/%、字符串常量、16进制,8进制,浮点数………
2021-04-06 17:43:05 5.24MB 编译原理 哈工大 词法分析 dfa
1
采用面向对象方法和Java 语言开发一个基于命令行交互方式的议程(agenda)管理系统。 已注册到系统的用户(user)可添加(add)、删除(delete)、查询(query)系统中记录的会议(meeting)安排;系统还提供新用户注册(register)、清除(clear)某一用户所有会议安排等管理功能。
2021-04-06 10:05:02 13KB 议程管理系统 Agenda 编译原理实验
1
四个实验词法、分析语法分析、LR(0)、语义分析等
2021-04-04 22:05:42 955KB 实验报告
1
实验目的: (1) 掌握词法分析的原理。 (2) 熟悉保留字表等相关的数据结构与单词的分类方法。 (3) 掌握词法分析器的设计与调试。
2021-04-01 21:56:18 450KB 编译原理 实验 词法分析器
1
中间代码生成实验报告.doc
2021-03-29 16:09:31 72KB 中间代码生成 编译原理 实验报告
这是中国海洋大学2020年春季学期编译原理课程实验的源代码,所有源码都可以编译运行,大家可以下载进行参考,里面总共有8个实验的代码,加一份实验要求。
1