编译技术编辑课程设计报告模版

编译技术编辑课程设计报告模版

ID:14329152

大小:305.50 KB

页数:14页

时间:2018-07-28

编译技术编辑课程设计报告模版_第1页
编译技术编辑课程设计报告模版_第2页
编译技术编辑课程设计报告模版_第3页
编译技术编辑课程设计报告模版_第4页
编译技术编辑课程设计报告模版_第5页
资源描述:

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

1、课程设计报告(2011--2012年度第一学期)名称:编译技术课程设计题目:指针检查工具院系:控制与计算机工程学院班级:软件0901学号:10912510119/10912510119学生姓名:王峰、姬玮指导教师:齐林海设计周数:一周成绩:日期:2011年12月30日课程设计报告1课程设计的目的和要求黑体小二号,英文同中文字体,居中,段间距1.5倍行距,段前、段后行1.1课程设计的目的黑体小三号,英文同中文字体,左对齐,段间距1.5倍行距,段前、段后0行本次设计的时间为1周,目的是通过使用高级语言实现部分算法加强对编译技术和理论的理解。设计的题

2、目要求具有一定的规模,应涵盖本课程内容和实际应用相关的主要技术。1.2课程设计的要求利用符号表,检查C语言中对指针的使用。需要完成以下的检查,并指出可能出错的位置。假设源程序已经编译通过,即不用对其进行语法的检查了,只检查指针变量的语义是否正确。要求进行以下的检查:1.指针变量是否初始化;2.指针类型是否定义正确;3.使用前是否已经申请的内存;4.引用是否正确,是否引用了释放掉的内存空间;本次实验使用windows7的Eclipse软件,利用传统扫描算法,来确定各个指针作对应的类型,及是否已经分配内存空间。程序运行结果直接显示在程序的下面的文本

3、框内,而一些调试的过程结果显示在编程软件中的显示栏上。主要是为了修改程序,分析错误方便。2.1指针引用的描述C中函数调用是按值传递的,传入参数在子函数中只是一个初值相等的副本,无法对传入参数作任何改动。但实际编程中,经常要改动传入参数的值。这一点我们可以用传入参数的地址而不是原参数本身,当对传入参数(地址)取(*)运算时,就可以直接在内存中修改,从而改动原想作为传入参数的参数值。2.2指针引用功能分析指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值

4、或者叫指针所指向的内存区,还有指针本身所占据的内存区。由于所占内存区为操作系统的范畴,本次课程设计不予考虑。下面详细解释一下其它三组:指针类型、所指向类型、指针的值;指针类型应保证和他所指向的类型符合,否则视为错误,编译软件给予提示。charm;int*p;13课程设计报告m=&p;(错误,类型不匹配)在编译的过程中如发现指针为空的时候指针所指向地址不允许赋值,否则视为错误。但对于指针赋予一个地址值可以如下:intm,*p;*p=45;(错误,此时p为空指针不能赋值)p=45;(正确,因为此时45代表的是内存地址的值可以允许。)在使用引用时,同

5、样必须类型匹配。是否引用了空地址如;int*p;int&m=p;(错误,引用了空地址)表2-1几种指针引用错误产生式错误原因int*p;*p=34charm;int*p;p=&m;intm;p=&m;charm;int&p=m;int*p;int&m=p;空指针赋值指针类型不匹配指针未声明。引用类型不匹配引用了空地址的左右两端没有边框3概要设计5.1概要设计(体现系统的设计思路和主要功能)在一个C语言系统中,“;”是所有句子结束的标志,因此可用“;”作为断句的标志。把所有的句子进行断句。所有变量必须先声明后使用,所以要先扫描一遍把有C语言声明变

6、量的句子中,声明变量后面的单词即为变量名,记录变量的类型,是否为引用指针,并记录列号。如果在生命的时候就有赋值的话就必须检验赋值是否正确。进行第二次扫描,把所有赋值语句进行分析,也就是找出带有等号的句子,同时也分析那些带有malloc,free语句。这些对指针有非常重要的作用。在赋值的时候要注意检查类型是否匹配,空指针是否赋予值,发现这些错误要及时报错,并指出错误的类型以错误的位置。13课程设计报告3.2系统用例图【必须有】图3-1系统用例图3.3系统用例【必须有】1.指针编译软件:系统的重要组成部分。也是操作界面的实现,其他的类只是其内部类。

7、2.断句:只要是出现“;”表示一个句子的结束,另一个句子的开始,所以断句是重要的部分。3.断词:只要出现了一个空格就是基本上出现了一个词语,但空格之间未必出现的就是词语,如“inta=3;”,这当中a=3就是一个词,而这个词不是编译器所接受的词,所以这一步得到的未必是真正的词语。4.变量声明检查:这一步重点检查申明短语,如int,char,float这些词语是在断词中所得到的词语中寻找出这些词语,则后面的必为申请的变量名称,但如inta=3;a=3为一个词,需要再次中寻找是否有“=”出现,如果出现则表示变量申请的时候赋值,这是应注意引用,是否正

8、确。同时检查指针指向是否正确。同时也应注意检查等号前面的变量是否和已经声明过的变量重复出现。5.复制检查,一个个招所有的断词后所得到的单词是否有等号,

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

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

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