![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译原理实验
白马无缰
我心匪石,不可转也。我心匪席,不可卷也。
展开
-
编译原理——LR(0)分析器
直接输入根据己知文法构造的LR(0)分析表,对于输入的文法和符号串,所编制的语法分析程序应能正确判断此串是否为文法的句子,并要求输出分析过程。#include<bits/stdc++.h>using namespace std;const string ERROR="出错,该句子不被当前文法识别!";const int MAX=100; int gone=...原创 2019-11-27 11:42:07 · 3028 阅读 · 2 评论 -
编译原理——中间代码生成(逆波兰表示)
1、编制一个中间代码生成程序,能将算术表达式等翻译成逆波兰形式; 2、程序具有通用性,即能接受各种不同的算术表达式等语法成分。 3、对于语法正确的算术表达式,能生成逆波兰表示,并输出结果;C++实现如下:#include<bits/stdc++.h>using namespace std;char st[1000]; //保存符号的堆栈数组 ...原创 2019-11-23 20:20:22 · 1186 阅读 · 0 评论 -
编译原理——LL(1)语法分析
直接输入根据已知文法构造的分析表M,对于输入的文法和符号串,所编制的语法分析程序应能正确判断此串是否为文法的句子,并要求输出分析过程。C++实现如下:#include<bits/stdc++.h>using namespace std;const int L_NUM=100000;const int MAX=100; //预测分析表容量 const st...原创 2019-11-23 20:16:08 · 776 阅读 · 6 评论 -
编译原理——词法分析器
输入为字符串(或待进行词法分析的源程序),输出为单词串,即由(单词,类别)所组成的二元组序列;有一定的错误检查能力,例如能发现2a这类不能作为单词的字符串。 保留字表没有做全,用时自行添加即可。C++实现如下:#include<fstream>#include<cstring>#include<string>#i...原创 2019-11-23 19:56:36 · 394 阅读 · 1 评论