好文档 - 专业文书写作范文服务资料分享网站

编译原理实验报告四

天下 分享 时间: 加入收藏 我要投稿 点赞

编译原理实验报告

题 目 表达式语法分析程序的构造 学 院 专 业 班 级 学 号 学生姓名 指导教师

西安思源学院教务处制

二〇一 年

实验四 表达式语法分析程序的构造

一、实验目的

1掌握C++语言编译的语法分析程序

2分别掌握LL(1)、算符优先、LR等语法分析方法的构造。

二、实验环境

Microsoft Visual C++ 6.0

三、实验内容

给定某一文法,试构造其简单优先矩阵(或LL(1)矩阵),并编制程序。 给出相应句子的语法分析过程,判其正确性。 例如:给定文法G: E→T E1 E1→+TE1/ε T→FT1 T1→*F/ε F→id/(E)

(1)先构造其SELECT集合,判定其是否为LL(1)文法 (2)是则构造其分析表

(3)给出句子id+id*id$的语法分析过程

四、设计说明

LL(1):

#include #include typedef int datatype; char a[N3]={'$','E'};

char c[N4]={'$','z','*','z','+','z'}; char *B[N1][N2]={

};

\\\\\

\

void FXB() { int i,j;

cout<<\分析表为: \for(i=0;i

for(j=0;j

}

cout<

char *w[5]={\ cout<<\文法为: \ for(s=0;s<5;s++) }

void SELECT() { }

void showa() { int i;

cout<<\分析栈为:\

for(i=0;i

{if(a[i]!=0) cout<

cout<<\集合为:\

cout<<\cout<<\

cout<<\cout<<\cout<<\cout<<\ cout<<\cout<<\cout<<\为LL(1)文法\{cout<

void showb() { int j; } void FX() {

cout<<\分析如下:\

showa();showb(); int i,j,m,n;

i=I();j=J();m=M();n=N(); while(a[m]!='$') {

cout<<\输入流为:\for(j=0;j

cout<

cout<

编译原理实验报告四

编译原理实验报告题目表达式语法分析程序的构造学院专业班级学号
推荐度:
点击下载文档文档为doc格式
01r8n899mo6i8ss1c8w102tjb2ixwe014me
领取福利

微信扫码领取福利

微信扫码分享