编译原理
文章平均质量分 59
大和田
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
编译原理 波兰式和四元式及计算
编译原理 波兰式和四元式及计算实验目的将非后缀式用来表示的算术表达式转换为用逆波兰式来表示的算术表达式,并计算用逆波兰式来表示的算术表达式的值。实验环境Microsoft Visual Studio 2019 Community思路转换:首先将‘#’压入栈中,依次读取输入字符串的每一个字符,如果遇到数字则继续读取下一个字符,如果还是数字则进行拼凑,直到读取到的不是数字,表明一个运算数已经读取完毕,将其加入到队列中。如果读取到的是运算符,就比较当前运算符与栈顶运算符之间的优先关系,如果栈顶运算符有原创 2021-07-14 22:54:56 · 1707 阅读 · 0 评论 -
编译原理 词法分析 算符优先分析法
编译原理 词法分析 算符优先分析法实验目的加深对语法分析器工作工程的理解,加强对算符优先分析法实现语法分析程序的掌握;能够采用一种编程语言实现简单的语法分析程序;能够使用自己辨析的分析程序对简单的程序段进行语法翻译。实验环境Microsoft Visual Studio 2019 Community思路首先从文件中读取产生式,并进行分割,将包含“|”的产生式分割成单独的一条产生式。然后根据产生式求Vt和Vn。先获取每条产生式左侧的字符,这些就是所有的Vn,然后在每条产生式右侧中寻找非Vn的字符原创 2021-07-14 22:45:22 · 1143 阅读 · 0 评论 -
编译原理 语法分析---(2)LL(1)分析法
编译原理 语法分析—(2)LL(1)分析法实验目的根据某一文法编制调试LL(1)分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对预测分析LL(1)分析法的理解。实验环境Microsoft Visual Studio 2019 Community思路首先将#与开始符压入栈中,然后依次读取字符串中的字符,并将栈顶元素弹出。如果栈顶元素是终结符,那么就将栈顶元素与字符进行比较,如果不同,则认为出错;如果相同,继续判断,如果两者都是#,则分析成功并结束;如果不是#,则认为匹配成功。原创 2021-07-14 22:36:07 · 2669 阅读 · 5 评论 -
编译原理 语法分析—(1)递归下降分析法
编译原理 语法分析—(1)递归下降分析法实验目的根据某一文法编制调试递归下降分析程序,以便对任意输入的符号串进行 分析。本次实验的目的主要是加深对递归下降分析法的理解。实验环境Microsoft Visual Studio 2019 Community思路为每一个产生式编写一个函数。按照产生式,如果是终结符则直接匹配输入的字符与要求的终结符是否匹配;若是非终结符,调用非终结符对应的函数,传入字符串与开始匹配的位置作为参数。其中任意一步发现不符合语法规则,就认为该字符串有错误。当递归全部终结都没发原创 2021-07-14 22:21:55 · 2033 阅读 · 0 评论 -
编译原理 词法分析 DFA 确定的有限自动机
编译原理 词法分析 DFA实验目的通过本次实验,加深对DFA及其识别的语言的理解,学习对一般的DFA的表达方法与编程实现方法。实验环境Microsoft Visual Studio 2019 Community思路(1)DFA的输入:分别输入DFA的“字符集”、“状态集”、“开始状态”、“接受状态集”、“状态转换表”等内容,并保存在设定的变量中。(2)DFA的存储与读写:将上述DFA的五元组保存在一个文本文件中,扩展名指定为.dfa。请自行设计DFA文件的存储格式,并说明其含义。能将保存在原创 2021-07-14 22:04:47 · 819 阅读 · 0 评论 -
编译原理 词法分析
编译原理 词法分析实验目的:通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理 解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法 分析方法。 编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词, 即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的 内部编码及单词符号自身值。实验环境:Microsoft Visual Studio 2019 Community思路:首先忽略空格读取第一个字符,判断字符的类型:如果是下划线,则该单原创 2021-07-14 21:53:24 · 1048 阅读 · 0 评论
分享