- 博客(4)
- 收藏
- 关注
原创 编译原理实验五:LR(1)分析法(附C/C++完整代码)
本文讲述了LR(1)文法的原理及如何用C语言实现。详细描述了代码的运行流程和结构,并在给出的代码中实现了拓广文法,项目集族的构造与输出,分析表的构造与输出,和对任意输入字符串的分析。程序总流程为:从文件读取文法 -> 输出拓广后的文法信息 -> 计算First集并输出 -> 构造项目集族并输出 -> 构造LR(1)分析表并输出 -> 判断是否是LR(1)文法 -> 手动输入要分析的字符串 -> 输出分析过程和结果读取文件非终结符要求必须是大写字母,一行只能有一条规则,可用‘|’表示或,空用$表示。
2024-12-15 18:52:24
2108
3
原创 编译原理实验四:算符优先分析法(附C/C++源码)
本文讲述了算符优先文法的原理及如何用C语言实现。并在给出的代码中实现了FirstVt集,LastVt集的计算输出,构造优先关系表并输出,和对任意输入字符串的分析程序总流程为:从文件中读取文法 -> 输出文法信息 -> 计算FirstVt集并输出 -> 计算LastVt集并输出 -> 判断是否是算符优先文法 -> 构造算符优先表并输出 -> 手动输入要分析的字符串 -> 输出分析过程和结果读取文件非终结符要求必须是大写字母,一行只能有一条规则,可用‘|’表示或,空用$表示。
2024-11-23 20:00:00
2871
4
原创 编译原理实验二:LL(1)分析法(附C/C++完整代码)
本文讲述了LL(1)文法的原理及如何用C语言实现。并在给出的代码中实现了消除文法的左递归,First集,Follow集,select集的输出,构造预测分析表并输出,和对任意输入字符串的分析。程序总流程为:从文件读取文法 -> 输出文法信息 -> 消除左递归并输出消除后的文法 -> 计算First集并输出 -> 计算Follow集并输出 ->计算select集并输出 -> 判断是否是LL(1)文法 -> 构造预测分析表并输出 ->手动输入要分析的字符串 -> 输出分析过程和结果读取文件。
2024-11-21 19:04:31
4004
5
原创 编译原理实验一:词法分析(附完整C/C++代码)
本文讲述了对C语言进行简单的词法分析的代码如何实现。文中把所有c语言单词分为基本保留字,标识符,常数,运算符,分隔符五大类,并给出了状态转换图组合成的状态转换机。首先要准备三个文件:源程序.txt,预处理.txt,词法分析.txt(注意编码格式为ASCLL,不然中文会乱码把要分析的代码放到源程序.txt中,程序首先会读取此文件中的代码进行预处理(去除注释),把处理好的代码放到预处理.txt。源代码如下//预处理预处理后的代码。
2024-11-20 21:13:22
2374
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人