实验一:词法分析一、实验目的通过设计一个具体的词法分析程序,加深对词法分析原理的理解。
并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。
编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。
并依次输出各个单词的内部编码及单词符号自身值。
二、实验预习提示1、 词法分析器的功能和输出格式词法分析器的功能是输入源程序,输出单词符号。
词法分析器的单词符号常常表示成以下的二元式(单词种别码,单词符号的属性值)。
本实验中,采用的是一类符号对应一个种别码的方式。
2、 单词的BNF表示---_----_----_-+---_--等等3、 模块结构(见课本P95-96)(可根据自己的理解适当修改)三、实验过程和指导:(一) 准备:1. 阅读课本有关章节,明确语言的语法,写出基本保留字、标识符、常数、运算符、分隔符和程序例。
2. 初步编制好程序。
3. 准备好多组测试数据。
(二) 上机:(三) 程序要求:1. 要求用C++Builder或者Dephi或者VC、VB等可视化编程工具编写;
要求有界面(即一般windows下应用程序界面)。
2. 输入为某语言源代码。
程序输入/输出示例:如源程序为C语言。
输入如下一段:main(){inta,b;a=10;b=a+20;}要求输出如下(并以文件形式输出)。
(2,”main”)(5,”(“)(5,”)“)(5,”{“}(1,”int”)(2,”a”)(5,”,”)(2,”b”)(5,”;”)(2,”a”)(4,”=”)(3,”10”)(5,”;”)(2,”b”)(4,”=”)(2,”a”)(4,”+”)(3,”20”)(5,”;”)(5,”}“)注:为右大括号要求(可根据实际情况加以扩充和修改):识别保留字:if、int、for、while、do、return、break、continue等等,单词种别码为1。
其他的标识符,单词种别码为2。
常数为无符号数,单词种别码为3。
运算符包括:+、-、*、/、=、>、=、<=、!=;
单词种别码为4。
分隔符包括:“,”“;
”“(”“)”“{”“}”等等,单词种别码为5。
(四) 程序思路(仅供参考):0. 定义部分:定义常量、变量、数据结构。
1. 初始化:从文件将源程序输入到字符缓冲区中。
2. 取单词前:去掉多余空白。
调用过程GETNB();3. 提取字符组成单词,利用课本P97图4.5转换图构造单词扫描过程SCAN(),需要根据实际情况加以修改。
4. 判断单词的种别码,调用过程LOOKUP();5. 显示(导出)结果。
2024/10/19 0:44:54 433KB 编译原理 词法分析实验
1
如何在VB中调用OpenGL,以及一些初始化工作过程
2024/10/18 9:26:48 144KB OpenGL 三维图形
1
我学习ssh时用来练习的项目,实现了三大框架的整合应用。








2024/10/17 10:36:54 162KB 商品管理信息系统 ssh struts2
1
基于JSP技术开发BBS论坛系统的设计与实现本系统基于B/S模式,采用流行的JSP+JavaBean+后台数据库三层架构。
客户端:Windows2000/XP,InternetExplorer(IE)等。
服务器端:WindowsNT/Windows2000,Tomcat5.0,JDK1.5及其以上版本,IE等;
数据库:采用MYSQL,运行于服务器端。
2024/10/17 6:32:31 457KB 毕业论文 JSP技术 BBS论坛系统
1
基于MATLAB的三电平逆变仿真模型基于MATLAB的三电平逆变仿真模型基于MATLAB的三电平逆变仿真模型
2024/10/17 6:19:05 969KB 三电平 逆变
1
这是今年三月份深圳莎斐沙老师进行的电磁兼容测试方面培训的课件原件
2024/10/17 6:34:28 12.67MB 电磁兼容技术 EMC测试 电磁兼容标准
1
切换控制的相关书籍,以下为序言部分翻译:本书的主体由三部分组成。
第一部分介绍读者阅读本书研究的系统类。
第二部分致力于切换系统的稳定性理论;它涉及单个和多个Lyapunov函数分析方法,李代数稳定性准则,有限速率切换下的稳定性,以及具有各种有用特殊结构的切换系统。
第三部分致力于切换控制设计;它描述了几类广泛的连续时间控制系统,基于逻辑的切换范例作为控制设计工具自然而然地出现,并提出了几个特定问题的切换控制算法,如非完整系统的稳定性,有限信息的控制和切换自适应控制不正当系统
2024/10/16 18:55:31 3.92MB Switching_in_Sys
1
一、 实验目的通过实验主要掌握黑盒法和白盒法设计测试用例的技术。
二、实验内容为以下的三角形程序设计一组测试用例。
这个程序的功能是,读入代表三角形边长的3个整数,判断他们能否组成三角形。
如果能够组成,则输出三角形是等边,等腰或任意三角形的识别信息。
三、实验要求先用黑盒法设计测试用例,然后用白盒法进行检验与补充。
用某种高级语言写出程序代码,然后将选好的测试用例输入,给出打印输出结果。
该程序的流程图和流
2024/10/16 16:40:34 221KB 软件测试 黑盒
1
凯度消费者指数与贝恩公司发布《2020年中国购物者报告(系列二)》。
报告显示,受新冠疫情影响,今年前三季度中国快速消费品市场整体销售额与去年同期近乎持平。
长期来看,“双速增长”将会延续,高端化和追求性价比两大趋势将同时并存。
2024/10/16 14:30:54 3.39MB 报告
1
冯网络便携式开发级别的IndyNode网络,包括LedgerBrowser。
分类帐浏览器(例如BCGov的的)允许用户查看网络节点的状态并浏览/搜索/过滤分类帐交易。
von-network正在作为可验证组织网络(VON)的一部分进行开发。
有关VON的更多信息,请参见。
甚至更好-加入我们的工作,为VON,Aries和Indy社区做出贡献。
VON-NetworkLedger浏览器和API使用“分类帐浏览器”(例如::),您可以看到:分类帐节点的状态JSON格式的分类帐节点的详细状态(单击“详细状态”链接)Indy网络的三个分类帐-域,池和配置(单击相应的链接)IndyNetwork实例的GenesisTransactions。
在IndyAgent中,使用URL/genesis来获取要用于初始化Agent的创世纪文件。
2024/10/16 11:18:10 109KB Python
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡