“编译原理”课程设计报告 CPR-1206010231 return false; } }
else if(d=='T') //当栈顶元素为T时
{
if(s[b]=='+')
//若输入串为+
{
sc.pop();
//栈顶元素出栈
for(int i=0;i sc.push(T.a1[i]); //TA+入栈 } strcpy(css,\return true; } else if(s[b]=='#') //若输入串为# { sc.pop(); //栈顶元素出栈 strcpy(css,\return true; } else if(s[b]==')') //若输入串为) { sc.pop(); //栈顶元素出栈 strcpy(css,\return true; } Page 21 of 24 “编译原理”课程设计报告 CPR-1206010231 else { cout<<\return false; } } else if(d=='#') //当栈顶元素为#时 { cout<<\接受\return false; } else //当栈顶元素不满足以上条件时 { cout<<\return false; } } 【实验4.4】调试与测试数据 输入字符不在分析范围中的错误界面: Page 22 of 24 “编译原理”课程设计报告 CPR-1206010231 错误分析:输入串a不在题目的终结符集中 以下为正确执行情况下的界面: 开始界面: 输入界面: 输出界面: Page 23 of 24 “编译原理”课程设计报告 CPR-1206010231 3 总结与体会 在这次《编译原理》课程设计实践课, 我遇到很多的问题,例如C语言中某个函数的如何编写,某些符号如何使用等等。面对这些问题,我们首先通过询问其他同学或者通过书籍,网络查找等方法解决问题,直到把问题解决。在完成课程设计的时候,我对于编译原理有了很多的认识,同时个人编程能力也得到了很大提升。 在整个课程设计过程中,我逐渐对于程序设计过程,以及编写程序的模块思想和对类和数据结构有了全新的认识,对文法、词法分析和语法分析的知识点加深了很多,同时我们对于计算机的这门学科,编译原理的课程设计以及程序编写产生更多的兴趣和激情。 致谢: 首先,感谢余宇峰老师细心地指导、提供给我的支持和给予这个锻炼的平台,其次,感谢课程设计中帮助我的同学,谢谢大家。 附录: 1. 第一题源程序:bianyi1.cpp 2. 词法分析流程图vsd文件:bianyi1.vsd 3. 词法分析流程图jpg文件:bianyi1.jpg 4. 第四题源程序:bianyi2.cpp 5. 语法分析流程图vsd文件:bianyi4.vsd 6. 语法分析流程图jpg文件:bianyi4.jpg Page 24 of 24
相关推荐: