- 博客(3)
- 收藏
- 关注
原创 【编译原理】中间代码生成的实现(实验报告+C/C++源程序)
在语法分析过程中,每当一个产生式用于推导(自顶向下分析)或归约(自底向上分析)时,就调用该产生式所对应的语义子程序,以完成既定的翻译任务。首先输入表达式,进行词法分析,把词法分析的结果存在字符数组中,之后调用递归下降分析器中的表达式子程序进行分析,最后得到四元组并输出,最后判断程序的输入是否结束,如果没有结束,就再次输入表达式,重复上述步骤,如果结束,则程序退出。对于测试一,读取表达式,依次调用函数S、E、T、F、E、T、F,再回退到E,产生四元式“+”操作,再依次调用...最后得到四元式序列。
2024-05-30 20:27:28
2223
原创 【编译原理】语法分析器的设计与实现---递归下降法(实验报告+C/C++源程序)
从开始符号S依次入栈,识别输入串的第一个字符,匹配所用的产生式,再将产生式右部依次入栈。为每个非终结符编制一个子程序,子程序的名字表示一个产生式左部的非终结符,程序体则是按该产生式右部的符号串顺序编写的。每匹配一个终结符,则再读入下一个符号,对于产生式右部的每个非终结符,则调用相应子程序。通过设计、开发一个高级语言的递归下降语法分析程序,加深对相关课堂教学内容(包括自顶向下语法分析、FIRST集、FOLLOW集、SELECT集、对某一输入串的分析过程)的理解,提高语法分析方法的实践能力。
2024-05-30 20:06:09
1886
原创 【编译原理】词法分析器的设计与实现(实验报告+C/C++源码)
与预期的结果相比,我认为我的实验结果还有一些改进的空间,但我会继续努力,不断提高自己的能力。在编写完代码后,程序无法正确识别某些词法单元,输入文件中的运算符等内容无法被识别,考虑到正则表达式可能没有覆盖掉所有可能的输入情况,比如'*=','+=','@','^','$',等符号。词法分析器读取的主要功能是输入源程序,输出二元式,对源程序从左到右,从上到下对逐个字符进行扫描,识别开具有独立含义的最小语法单位(单词、符号),把构成源程序的字符串转换成单词符号的序列,把单词变换成属性字,输出二元式用于语法分析。
2024-05-30 19:34:07
2494
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人