实验报告编译原理.doc

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验报告编译原理

北京科技大学 计算机与通信工程学院 实 验 报 告 实验名称:_________编译原理实验报告_______ 学生姓名:_________ ________________ 专 业:_________ _________________ 班 级:_________ _________________ 学 号:_________________________ 指导教师:_________ _________________ 实验成绩:________________________________ 实验地点:________________________________ 实验时间:____2015___年___07__月_______日 一、实验目的与实验要求 1、实验目的 通过一个词法分析程序将一段给出的C语言代码的词法部分分析出来; 通过一个语法分析程序将一段给出的C语言代码的语法分析出来。 2、实验要求 二、实验设备(环境)及要求 Win7家庭普通版;Visual Studio 2013; 三、实验内容与步骤 1、实验1 (1)实验内容 对于给定一段代码,通过词法分析程序将程序中的各个类型的字表分析,包括保留字、分隔符表、运算符表、标识符、整型数、浮点类型数、字符类型、字符串类型等表文件。 (2)主要步骤 通过读入程序的文本文件,然后将分析的结果一次保存在本地文本文件。 然后通过指定的命令来将分析的结果读取出来。 附录:源码 #include stdio.h #include string.h #include stdlib.h char *key0[] = { , auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, _Complex, _Imaginary, union, unsigned, void, volatile, while }; /*保留字表*/ char *key1[] = { , (, ), [, ], {, }, ,, ;, }; /*分隔符表*/ char *key2[] = { , +, -, *, /, %, , , ==, =, =, !=, !, , ||, , , ~, |, ^, , =, ?:, -, ++, --, ., +=, -=, *=, /= }; /*运算符表*/ int xx0[35], xx1[10], xx2[31]; int temp_key3 = 0, temp_c40 = 0, temp_c41 = 0, temp_c42 = 0, temp_c43 = 0; /******* 初始化函数 *******/ void load() { int mm; for (mm = 0; mm = 34; mm++) { xx0[mm] = 0; } for (mm = 0; mm = 9; mm++) { xx1[mm] = 0; } for (mm = 0; mm = 30; mm++) { xx2[mm] = 0; } FILE *floading; if ((floading = fopen(key0.txt, w)) == NULL) { printf(Error! Cant create file : key0.txt); return; } fclose(floading); /*建立保留字表文件:key0.txt*/ if ((floading = fopen(key1.txt, w)) == NULL) { printf(Error! Cant create file : key1.txt); return; } /*建立分隔符表文件:key1.txt*/ if ((floading = fopen(key2.txt, w)) == NULL) { printf(Error! Cant create file : key2.txt); return; } fclose(floading); /*建立运算符表文件:key2.txt*/ if ((floading = fopen(key3.txt, w)) == NULL) { printf(Error! Cant create file : key3.

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档