编译原理词法语法分析等实验1 .pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

实验一:熟悉C语言的运行环境

1.实验目的

1.1、熟悉利用VisualC++6.0编辑运行C程序的方法和步骤。

1.2、运行调试简单的C语言程序。

2、实验方法及步骤

2.1、熟悉利用VisualC++6.0编辑运行C程序的方法和步骤:

(1)打开VisualC++6.0如图1所示,单击“文件”→“新建”→“工程”→“Win32

ConsoleApplication”,输入工程名,选择存储位置。

图1

2)文件”→“新建”→“文件”→“C++SourceFile”,输入C程序文件名并

添加到工程,如图2所示。注意:如果文件名不写后缀,系统会默认指定为.cpp,

表示要建立的是C++源程序,因此命名时要加上后缀.c。

图2

(3)编写程序代码,如图3所示。

图3

4)点击菜单栏中“组建”菜单下的“编译”、“组建”、“执行”按钮,运行程

序。如果在编译、组建、执行过程中出现错误,修改程序后重新运行“编译”、

“组建”和“执行”过程。

(5)根据需要输入、输出数据。

(6)点击“文件”→“关闭”。

2.2、输入并调试下列程序,熟悉C语言程序的调试过程,程序如下:

#includestdio.h

voidmain()

﹛doublea,b,area;

a=1.2;

b=3.6;

area=a*b;

printf(“a=%f,b=%f,area=%f\n”,a,b,area);

执行以上程序后的输出结果为:

a=1.200000,b=3.600000,area=4.320000

三、输入并调试下列程序,理解为什么会出现这样的结果。

#includestdio.h

main()

{charch1,ch2,ch;

unsignedcharc;

inta;

ch1=78;

ch2=67;

ch=ch1+ch2;

c=ch1+ch2;

a=ch1+ch2;

printf(“ch1+ch2=%d\n”,ch1+ch2);

printf(“ch=%d\n”,ch);

printf(“c=%d\n”,c);

printf(“a=%d\n”,a);

}

运行结果:

结果分析:

运行结果中ch=-111原因是因为ch定义为char型,所以其值不能大于128,而

ch1+ch2=145,145大于128,即ch=ch1+ch2溢出。

3.实验总结

由以上程序运行结果可知,在编写程序代码时,一定要定义函数类型和变量,

变量类型的定义要确保在可执行的范围内。

实验二词法分析器

1.实验目的及要求

本次实验通过用C语言设计、编制、调试一个词法分析子程序,识别单词,实现一个C

语言词法分析器,经过此过程可以加深对编译器解析单词流的过程的了解。

运行环境:

硬件:windowsxp

软件:visualc++6.0

2.实验步骤

1.查询资料,了解词法分析器的工作过程与原理。

2.分析题目,整理出基本设计思路。

3.实践编码,将设计思想转换用c语言编码实现,编译运行。

4.测试功能,多次设置包含不同字符,关键字的待解析文件,仔细察看运行结果,

检测该分析器的分析结果是否正确。通过最终的测试发现问题,逐渐完善代码中

设置的分析对象与关键字表,拓宽分析范围提高分析能力。

3.实验内容

本实验中将c语言单词符号分成了四类:关键字key(特别的将main说明为主函数)、

普通标示符、常数和界符。将关键字初始化在一个字符型指针数组*key[]中,将界符分别由

程序中的case列出。在词法分析过程中,关键字表和case列出的界符的内容是固定不变的

(由程序中的初始化确定),因此,从源文件字符串中识别出现的关键字,界符只能从其中

选取。标识符、常数是在分析过程中不断形成的。

对于一个具体源程序而言,在扫描字符串时识别出一个单词,若这个单词的类型是关键

字、普通标示符、常数或界符中之一,那么就将此单词以文字说明的形式输出.每次调用词

法分析程序,它均能自动继续扫

文档评论(0)

***** + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8032132030000054
认证主体社旗县清显文具店
IP属地河南
统一社会信用代码/组织机构代码
92411327MA45REK87Q

1亿VIP精品文档

相关文档