词法分析器(实现报告)
实验报告
名称: 编译原理:词法分析器
设计: 03 计算机B班 kikikind 086
指导老师: 周艳明
时间: 2006-4-13
一. 编程实现
1.本程序在VC++6.0上,以C++语言实现
2.在winxp+sp1上测试通过
二. 程序设计说明
1. 界面(没有实现)
a) 初定文档/视图界面
b) 设定文件路径
2.程序初始化
a) 读入关键字
所有关键字指定保存在根目录的 keywold文件中,程序运行时读入
b) 读入内部字符
所有关键字指定保存在根目录的 CharTable文件中,程序运行时读入
c) 建立二叉排序树
将读入的关键字以建立二叉排序树,这样在词法分析讲入关键字时,减
少平均查找时间,优化程序
3.源程序读入,词法分析
a) 将读入字符送入缓冲
b) 分析
4.输出
a) 输出分析结果
b) 形式:<字符,机内码>
c) 保存结果
5.出错处理
a) 出错提示
二.说明
1.本程序是有参考网上C语言版例子,主要还是书上的例子,但是看了后发觉网上的例子都太麻烦,自己做一个更加容易,所以就对着书上的说明,完全自己编写了,主要有如下改进:
a) 完全以C++语言重新改写
b) 将关键字,所有字符以外部文件形式读入,可以随时增减
c) 加入二叉排序树查找关键字,优化程序
d) 分析结果保存(未完成)
e) 错误提示
2.可能由于时间问题,尚有部不不太完善,希望老师指定
3.我的邮箱: kejieleung@163.com 如果老师您对程序有什么问题或需要对程序提示什么改进的地方,请老师以这个邮箱通知我,谢谢J
4.程序文件说明
main.cpp 程序主文件
BSTree.h 二叉排序树头文件
BSTree.cpp 二叉排序树实现
Analysis.h 词法分析类的头文件
Analysis.cpp 词法分析类实现
(以下文件可以修改,程序动态读入)
source.txt 要读进的程序
keyworld.txt 关键字文件
OperatorTable.txt 操作符文件
4. 程序调试记录(Created 4.7 Update 4.13)
l 字符串识别有问题,比如输出时"X..."应为全输出而不用考虑是否为关键字 (OK)
l 二元操作符无法识别 (OK)
l 编码出现负数 (OK)
l 空格时无法正确确认 (OK)
l 释放二叉树出错 (OK)
l 变量未初始化(构造函数不能自己调用引起) (OK)
l 对关键字还是普通字符串的判断出现逻辑错误 (OK)
l 缓冲指示 bufPos 值异常 (OK)
l 操作符不完全
l 变量重复(应该保存在符号表中,用指针指示)
l 无法去除读入注释 (OK)
l 错语输入选择是没有处理
l 常量表没有做
词法分析器(实现报告)相关推荐
- c语言字符串算法判断实验原理,C语言词法分析器实验报告
<C语言词法分析器实验报告>由会员分享,可在线阅读,更多相关<C语言词法分析器实验报告(22页珍藏版)>请在人人文库网上搜索. 1.计算机科学与工程系编译原理课程设计实验报告姓 ...
- 【SEUSE】编译原理 - 词法分析器实验报告
[SEU&SE]编译原理 - 词法分析器实验报告 README 一. 实验目的 二. 实验环境 1. 开发环境: 2. 运行环境 三. 实验内容 1. 主要内容 2. 主要功能 3. 种别码 ...
- 实验一 词法分析java,java词法分析器实验报告
java词法分析器实验报告 Java 词法分析器实验报告 --07111101 --奥特曼 一.词法分析器功能概述: 1. 使用DFA实现词法分析器的设计: 2. 实现对Java 源程序中注释和空格( ...
- 语法分析器 java实验报告_词法分析器实验报告.doc
Java 语言词法分析器 班级学号:1120111822 姓名:徐少杰 实验目的 强化对系统软件综合工程实现能力.规划能力的训练: 加强对词法分析原理.方法和基本实现技术的理解. 实验内容 用 C++ ...
- 词法分析器实验报告(C++源码、状态图、流程图、打包.exe方式)
实验一 词法分析器的设计与实现 [实验目的] 通过设计编制一个具体的词法分析程序,加深对词法分析原理的理解,并掌握在对程序 设计语言源程序进 ...
- java词法分析器实验报告_词法分析器实验报告(JAVA)
实验一.词法分析实验 商业软件工程专业 张树恒 201506110093 一.实验目的 通过设计一个词法分析程序,对词法进行分析,加强对词法的理解,掌握对程序设计语言的分解和理解. 二.实验内容 ...
- html解析器编译原理,编译原理实验报告词法分析器(内含源代码).docx
编译原理实验报告词法分析器(内含源代码) 编译原理实验(一) --词法分析器 实验描述 运行环境:vc++2008 对某特定语言A ,构造其词法规则. 该语言的单词符号包括: 1该程序能识别的单词符号 ...
- c语言词法分析器报告,C语言词法分析器构造实验报告.doc
C语言词法分析器构造实验报告 02计算机(2) 2002374203 冯绍欣 一.题目要求: 完成一个C语言的词法分析器的构造.此词法分析器能识别附值语句.循环语句.条件语句.并能处理注释. 二.设计 ...
- c语言词法分析器实验原理,词法分析器的设计与实现 编译原理实验报告.doc
词法分析器的设计与实现 编译原理实验报告 中北大学软件学院 实 验 报 告 专 业 软件工程 课程名称 编译原理 学 号 姓 名 辅导教师 张静 成绩 实验日期2015.5.19实验时间14:00~1 ...
最新文章
- Titanium Developer
- iOS编程——经过UUID和KeyChain来代替Mac地址实现iOS设备的唯一标示(OC版)
- centos7离线安装oracle11g,CentOS 7.5离线安装Oracle 11gR2
- thymeleaf 获取yml中的值_Thymeleaf模板引擎学习
- 手机抓包HTTPS (Fiddler Packet Capture)
- Python批量替换掉某些值为新的值
- 单例设计模式 优缺点 及 使用场景
- 厨师刀行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- vue list数组合并和插入数据
- python中sorted_关于python中sorted方法的key参数
- 超市仓库管理系统(过期提醒)
- LNK2005符号重定义问题
- 谈谈移动硬盘或者手机连接到PC提示“无法访问,拒绝访问”或“您没有访问该设备的权限”的解决办法
- linux下的/usr目录
- Python repr函数——学习笔记
- 《Oracle内核技术解密》读书笔记(一)
- C++: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
- 玩机搞机-----安卓全机型刷机卡fastboot模式解决方法与故障解析
- 谁动了妙可蓝多的奶酪?
- 数据库连接池 DBCP和c3p0数据库连接池