编译原理实验二C语言实现,编译原理实验报告(c语言).pdf
编译原理实验报告(c语言)
编译原理实验报告
1
实验项目 :词法分析程序实验
一、实验的目的与任务:
编译原理是计算机类专业特别是计算机软件专业的一门重要专业课。设置该课程的目的在于系统地向
学生讲述编译系统的结构、工作流程及编译程序各组成部分的设计原理和实现方法,使学生通过学习既掌
握编译理论和方法方面的基本知识,也具有设计、实现、分析和维护编译程序等方面的初步能力。编译原
理是一门理论性和实践性都比较强的课程。进行上机实验的目的是使学生通过完成上机实验题目加深对课
堂教学内容的理解。同时培养学生实际动手能力。
编译实验由三个独立实验组成,按照由浅入深进行排列,希望通过本实验使学生更深学习并理解编译
的主要过程和相关方法。
词法分析的目的是将输入的源程序进行划分,给出基本符号 (token)的序列,并掠过注解和空格等
分隔符号。基本符号是与输入的语言定义的词法所规定的终结符。
本实验要求学生编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本
保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。(遇
到错误时可显示 “Error”,然后跳过错误部分继续进行)
二、题目分析
1.这里采用C语言编写的源程序作为词法分析程序的输入数据,输入数据保存在 “in.txt”记事本中,将分
析结果存在 “out.txt”记事本中。词法分析器的源代码使用C语言编写。
2. 下面就词法分析程序中的主要变量进行说明:
主函数main():
打开要分析的C语言源程序,若不能正确打开,则报错。
先从源程序中读入一个字符ch,然后进行如下处理:
1、cp消耗掉空格,制表符,换行符后,cp数组复位,开始检测cp;
2、数字检测,对照符号表输出,若匹配成功,则返回序号;
3、字符串检测, 对照符号表输出,若匹配成功,则返回序号;
4、基本保留字检测,对照符号表输出,若匹配成功,则返回序号;
5、运算符检测,对照符号表输出,若匹配成功,则返回序号;注意这里碰到 ‘/’时,要判断后面是
否跟着是注释语句。是则跳过,不是则输出运算符。
6、分隔符 (界符)检测,对照符号表输出,若匹配成功,则返回序号;
7、排错处理;
结束。
3.以下给定一个C语言的符号表的设计和结构:
C语言基本保留
字表
main 1 if 12 sizeof 23
void 2 else 13 return 24
int 3 switch 14
float 4 case 15
double 5 for 16
char 6 do 17
struct 7 while 18
const 8 goto 19
extern 9 continue 20 常数 28
register 10 break 21 自定义字符 29
static 11 default 22
运算符 分隔符
‘+' 31 ; 41
‘-’ 32 : 42
‘*’ 33 , 43
‘/'
编译原理实验二C语言实现,编译原理实验报告(c语言).pdf相关推荐
- 20145207《Java程序设计》实验二(Java面向对象程序设计)实验报告
<Java程序设计>实验二(Java面向对象程序设计)实验报告 目录 改变 Java面向对象程序设计实验要求 实验成果 课后思考 改变 看了下之前实验二的整体,很搞笑,大图+代码,没了.. ...
- 20155328 《Java程序设计》 实验二(Java面向对象程序设计) 实验报告
20155328 <Java程序设计> 实验二(Java面向对象程序设计) 实验报告 单元测试 一.单元测试和TDD 编程时需理清思路,将编程需求等想好,再开始编.此部分可用伪代码实现. ...
- 实验二 无线网络环境RSSI测量实验
无线网络技术教程第四版实验二 无线网络环境RSSI测量实验 目录 无线网络技术教程第四版实验二 无线网络环境RSSI测量实验 1 实验要求和目的 2 实验原理和背景 3 实验环境和软件 4 实验过程与 ...
- 实验二《面向对象程序设计》_实验报告
实验二<面向对象程序设计>_实验报告 一.实验前期预习准备 Junit的安装和配置 选择File->Setting打开设置对话框,在设置对话框中选择Plugins, 单击Instal ...
- Linux内核实验孟宁,《linux内核分析》实验二:时间片轮转多道程序运行原理
一.概述 本文通过分析一个简单的时间片轮转多道程序的内核 mykernel,来理解操作系统是如何工作的. mykernel 是孟宁老师的一个开源项目,借助 Linux 内核部分源代码模拟存储程序计算机 ...
- 2016-2017-2 20155117实验二《Java面向对象程序设计》实验报告
实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验要求 1.参考Intellj IDEA 简易教程 提交 ...
- java构成对象的三要素_20155237 《JAVA程序设计》实验二(JAVA面向对象程序设计)实验报告...
20155237 <JAVA程序设计>实验二(JAVA面向对象程序设计)实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S ...
- 实验二 面向对象(一)(预习报告)
面向对象--Java实验报告 实验二:Java面向对象(二) 实验二 面向对象(一)(预习报告) <center> <strong>姓名:</strong> < ...
- c语言贪吃蛇大作业报告,C语言贪吃蛇实验报告
C语言贪吃蛇实验报告 C 语言程序设计实训报告姓 名 专 业 班 级 指导教师 二 011 年 7 月 14 日I I目录1 实训目的和要求 11.1 实训目的和任务 11.2 实训要求 12 实训任 ...
- java面向对象程序基础实验_20165115 实验二《Java面向对象程序设计》实验报告
20165115 实验二 面向对象程序设计 这一次的实验,老师按照实验内容的不同将实验分成了五个部分进行.五个部分的侧重难易都有区别,实验报告中的叙述也会有所区别. 第一部分 先上实验结果截图: 这一 ...
最新文章
- 《C++ Primer Plus》第8章 函数探幽 学习笔记
- 【听课笔记】国立交通大学《如何成功投稿国际科学期刊》 投稿准备+审稿流程剖析...
- 记一次 Git 操作的糟心之旅
- linux下,MySQL默认的数据文档存储目录为/var/lib/mysql。
- 【Linux】一步一步学Linux——passwd文件详解(107)
- 发动机压缩比怎么计算公式_2020沃德十佳发动机出炉:这三款机头,20万内就能买到...
- 一天学会php(下)
- Cron 触发器及相关内容 (第一部分)
- WPF Demo20 模板
- 译:在C#中使用LINQ To SQL
- 微信公众号+web后台的工资条发放功能的实现
- json对象数组转数组方法
- python 公众号付费视频地址_Python下载微信公众号文章内的视频
- ps3 2.0固件升级导致wifi失败
- java 加背景颜色_Java 给PPT幻灯片添加背景颜色和背景图片
- c#微信企业号开发之消息推送
- 【vue】To install them, you can run: npm install --save aws-sdk module
- 湖州智慧社保显示服务器繁忙,湖州智慧社保
- 『NLP自然语言处理』中文文本的分词、去标点符号、去停用词、词性标注
- Lumerical官方案例、FDTD时域有限差分法仿真学习(十七)——Y分支功分器