编译原理课程设计课设报告

编译原理课程设计课设报告

ID:14397015

大小:142.00 KB

页数:11页

时间:2018-07-28

编译原理课程设计课设报告_第1页
编译原理课程设计课设报告_第2页
编译原理课程设计课设报告_第3页
编译原理课程设计课设报告_第4页
编译原理课程设计课设报告_第5页
资源描述:

《编译原理课程设计课设报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.课程设计题目名称:语法高亮转换软件2.课程设计任务目的与任务目的:·通过此次课程设计更深一步了解此法分析·培养解决工程问题的能力,例如方案的制定·了解设计和实现一个实际高级语言编译器所面临的各种问题及其复杂程度。主要任务:输入:cpp源代码文件,后缀为.cpp的文件;输出:网页文件,后缀为.html文件;实现功能:将cpp源代码转换成网页文件,在浏览器中打开网页文件时,网页中显示C++源代码并以高亮语法表示显示。3.设计思想和实现方法设计思想:词法分析程序完成从输入文件中读取字符形式的高级语言源程序,并把输入转化为一个由单词符号组成的流。构造词法分析器的一种简单办法是用状态

2、转化图来描述源语言词法记号流,然后手工把这种状态转换图翻译成为识别记号的程序。用这种方法可以产生高效的词法分析器。实现方法:用C++语言编写一个词法分析器,使之能识别输入串,并把分析结果(单词符号,标识符,关键字等等)输出.输入源程序,输入单词符号,本词法分析器可以辨别关键字,标识符,常数,运算符号和某些界符,运用了文件读入来获取源程序代码,再对该源程序代码进行词法分析,这就是词法分析器的基本功能.当词法分析器调用预处理子程序处理出一串输入字符放进扫描缓冲区之后,分析器就从此缓冲区中逐一识别单词符号.当缓冲区里的字符串被处理完之后,它又调用预处理子程序来处理新串.4.程序说明:

3、程序一开始要求读入一个代码文件,接着把读入的源程序打印出来.然后进行词法分析,程序定义两个数组keyword[60]和cha[31],前者用来存放关键字,后者用来存放中断字符。从文件中读入字符,与cha[31]中的中断字符相比较。判断读入的是否为中断字符,如果不是继续读入字符;如果是中断字符,将前面读入的字符放入到一个字符串当中,将此字符串与keyword[60]中存放的关键字比较,如是关键字则做相应处理即着色;如果不是关键字不作处理。程序流程图:1.程序运行结果example.cpp文件中的内容://example.cpp#include#definepi

4、3.1415usingnamespacestd;intmain(){intn=0;floata=12.34;charch='a';cout<<"helloC++";for(inti=0;i<10;i++)a=n+ch;return0;}运行程序:查看wyl.html中的显示内容:1.测试报告:为了更好的检查程序最终输出是否正确,可以用记事本打开wyl.html查看代码。wyl.html代码如下:1.存在问题及分析:刚开始编写程序时,编写程序不知道如何从一个文件中读入字符,如何将一个字符串直接输出到文件当中。这主要是对C++语言中的一些函数不了解造成的。在设计如何过滤中断字符和判

5、断是否为关键字时,出现了迷茫,不知道该如何操作。这主要是算法不成熟导致的,没有正确的算法就不可能设计出正确的。要想设计出一个好的程序首先要有一个好的思想然后将这个思想转化为正确的算法,根据算法编写程序。虽然最终程序写出来了也完成了课程设计的要求,但是编写的程序还是存在一些不足。首先,程序并没有把C++中所有的关键子都添加进去,只是添加了一些最常用的。其次,由于自己编程能力有限所编的程序执行效率有点低。1.总结及体会:经过一个星期的编译原理课程设计,本人在单老师的指导下,顺利完成该课程设计.通过该课程设计,收获颇多。一、对实验原理有更深的理解通过该课程设计,掌握了什么是编译程序,

6、编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程,对课本上的知识有了更深的理解,课本上的知识是机械的,表面的.通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解.二、对该理论在实践中的应用有深刻的理解通过把该算法的内容,算法的执行顺序在计算机上实现,知道和理解了该理论在计算机中是怎样执行的,对该理论在实践中的应用有深刻的理解.三、激发了学习的积极性通过该课程设计,全面系统的理解了编译原理程序构造的一般原理和基本实现方法.把死板的课本知识变得生动有趣,激发了学习的积极性.把

7、学过的计算机编译原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解.以前认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了知识的运用,对计算机编译原理的认识更加深刻.课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意命令的正确性.,培养实践动手能力和程序开发能力.四、理解了该知识点以及学科之间的融合渗透本次课程设计程序部分是用C++语言编写的,把《编译原理》,《算法分析与设计》《C语言》三门学科联系起来,把各个学科之间的知识融合起来,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。