董XX
经过一个星期的编译原理课程设计,在老师的指导以及小组同学的互相帮助下顺利完成该课程设计。通过该课程设计,收获很多。
此次课设,我们小组用的是java语言,在课设过程中,用到了以前开发过程中所没有的探索过的很多新方法,最直接的影响就是让我对java语言的认识与理解更近一层。并且掌握了什么是编译程序,编译程序工作的基本过程及其各阶段的基本任务,对课本上的知识有了更深的理解。
因为本实验用了java语言编写,个人觉得相比C语言模块更加清晰明了。在该词法分析程序中,我们用了java中的split方法对输入串进行分割,简单易懂。其次,在字符匹配过程中,引进了正则表达式,让输入串与之匹配,极大地缩减程序的繁琐性。同时,java的面对对象的性质在程序中得到充分的体现,在代码的编写过程中,将各种判定封装为函数,主函数通过调用这些封装函数完成功能,摒弃了C语言结构化的繁琐,使整个处理函数清晰可读。在测试多个用例时,发现程序的很多小错误,但最后都能够一一解决,尤其在这个过程中,我也充分体会到了团队合作的力量。此次课设更加深了对java语言的认识,并熟悉了java语言中正则表达式的用法。
通过该课程设计,全面系统的理解了编译原理程序构造的一般原理和基本实现方法。能够把学过的计算机编译原理的知识强化,并通过自己设计的程序表现出来,加深了对理论知识的理解,同时也激发了学习的积极性。课程设计中的第二个程序对简单表达式文法构造算符优先分析器比较复杂,在调试时出现了很多问题,经过大量的修改和一遍又一遍地调试,最后把错误全都改正没有做到根据文法得到相应的算符优先表,而是在程序中直接给出,这是程序的一个小缺陷。
下载本文