编译原理
文章平均质量分 80
Magic__Conch
这个作者很懒,什么都没留下…
展开
-
编译原理 实验5 中间代码生成(将算术表达式等翻译成逆波兰形式)
文章目录1 实验任务2 实验内容3 算法描述4 代码5 运行结果1 实验任务编写一个中间代码生成程序,能将算术表达式等翻译成逆波兰、三元组或四元组形式(选择其中一种形式即可)。2 实验内容(1)实验要求将算术表达式等翻译成逆波兰、三元组或四元组形式(2)输入格式包含各种算术表达式的文本文件。(3)输出格式程序能输出生成的逆波兰、三元组或四元组序列。3 算法描述人们常用的算术表达式是中序表达式,而逆波兰表达式是后续表达式,在计算机编程中,后续表达式更易于求得表达式结果。此处实现的算法主原创 2021-11-24 21:02:34 · 2623 阅读 · 0 评论 -
编译原理 实验4 语义分析(基于PL/0,使用C++代码编写)
1 实验任务审查每一个语法结构的静态语义,即验证语法正确的结构是否有意义。此部分不再借助已有工具,需手写代码来完成。2 实验内容(1)实验要求你的程序需要对输入文件进行语义分析并检查错误进行输出。(2)输入格式一个包含源代码的文本文件,程序需要能够接收一个输入文件名作为参数。(3)输出格式要求通过标准输出打印程序的运行结果。对于那些没有语义错误的输入文件,你的程序不需要输出任何内容。对于那些存在语义错误的输入文件,你的程序应当输出相应的错误信息,这些信息包括错误类型、出错的行号以及说明文字,原创 2021-11-24 20:50:53 · 10123 阅读 · 0 评论 -
编译原理 实验3 基于LR(0)方法的语法分析
#include<cstdio>#include<map>#include<iostream>#include<fstream>#include<iomanip>#include<vector>#include<set>#include<string>#include<algorithm>using namespace std;const int wordnumPerLine =原创 2021-03-26 15:28:46 · 2841 阅读 · 3 评论 -
编译原理 实验2 自顶向下的语法分析程序
1 运行结果(1)测试文法一(输入文件产生式右部与句子全部以单个空格隔开):E->T E’E’->+ T E’E’->#T->F T’T’->* F T’T’->#F->iF->( E )测试句子:i + i * i测试结果如下图所示(由于图太大,分割成几部分展示)。(2)测试文法二:E->T E’E’->+ EE’->#T->F T’T’->TT’->#F->P F’F’-原创 2021-11-24 20:19:00 · 8216 阅读 · 8 评论 -
编译原理 实验1 词法分析
1 运行结果t1.txt:const a = 10;var b,c;procedure p; begin c:=b+a end; begin read(b); while b # 0 do begin call p;write(2*c);read(b) end end.t2:const a = 78;var b,c;begin a := 20; c := 5; if a < c then c := 2 * c else原创 2021-11-23 22:03:12 · 2736 阅读 · 0 评论