实验一:词法分析一、实验目的通过设计一个具体的词法分析程序,加深对词法分析原理的理解。
并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。
编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。
并依次输出各个单词的内部编码及单词符号自身值。
二、实验预习提示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
ZeroTurnaround公司于2016年6月14号发布的交互式监控分析器XRebl3.1.2最新版本,上传文件为本人zoakerc自用完美破解版,无需license-server激活。
授权版本:dedicated授权时间:2014.7.14~2179.12.31官方网站:https://zeroturnaround.com/software/xrebel使用方法:https://zeroturnaround.com/software/xrebel/quick-start/感谢zhengyu6814交流分享的授权验证思路。
2016.7.8
2024/10/15 7:27:32 7.51MB 0turnaround
1
小米推出的米兔积木机器人是一款可以自由DIY的积木机器人,它通过让玩家自主的进行造型设计、结构设计,电子模块搭建以及程序设计等几个步骤让玩家搭建起自己的机器人。
按照小米一贯的产品思路,这款米兔积木机器人可以称为年轻人的第一台自己建造的机器人。
小米官方给出的文档是叫做平衡战士的978个积木零件,第一次接触这个领域的人有可能会拼装四到五个小时,而大部分玩家在拼好机器人后除了遥控玩几次就当成了摆件,并没有去接触模块化的编程。
有人说仅仅享受了不到50%的乐趣,而真正机器人的乐趣在编程的阶段。
为了引导广大玩家能编程控制自己的机器人,我们推出了这个文档。
力求使用很少的积木零件让大家能快速上手,掌握机器人的编程。
2024/10/13 22:51:17 22.22MB 小米机器人 米兔 编程指南
1
一个简单而完整的由C语言编写的连连看程序源码。
可以给练习开发游戏的朋友一点思路。
2024/10/13 3:50:56 12KB 连连看 源码 代码 C语言
1
E6术的研究和自动测试实例的设计与实现摘要随着计算机软件的规模越来越大,软件测试成为了软件质量保障的关键环节,软件测试自动化也成为了软件测试领域所无法逾越的发展阶段....第一章引言1.1选题背景软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保障的关键步骤。
其定义可简略概括为:为了发现错误而运行程序的过程。
随着软件规模的不断扩大,软件质量问题已成为制约计算机发展的主要因素之一......1.2本文的目标和主要工作第二章性能测试研究2.1软件测试概述2.2.1性能测试2.2.2测试工具2.2主流性能测试工具比较第三章项目分析与规划测试3.1《学生XX管理系统1.3版》项目分析3.1.2功能概述3.1.3系统组件与配置3.1.4分析使用模型及任务分布3.2定义负载测试目标3.3测试思路与测试方案设计3.3.1设计压力应用思路3.3.2测试方案设计3.3.3性能测试用例第四章学生XX管理系统性能测试实例的实现4.1创建用户脚本4.2完善测试脚本4.2.1事务设置4.2.2用参数化取代常量值4.2.3集合点4.2.4脚本检验4.3方案执行4.3.1场景创建4.3.2加压计划4.3.3多IP地址4.4运行结果处理分析4.4.1Throughput4.4.2TransactionResponseTime4.4.3分解界面4.4.4针对测试用例3的图表分析第五章测试总结致谢参考文献
1
随着区块链技术的发展,各种具有不同特点、适用于不同应用场景的区块链如比特币、以太坊等公有链以及私有链、联盟链大量共存.由于区块链的相互独立性,现存各区块链之间的数据通信、价值转移仍面临挑战,价值孤岛现象逐渐显现.区块链的跨链技术是区块链实现互联互通、提升可扩展性的重要技术手段.对跨链技术领域的成果进行了系统总结:首先,分析了跨链技术的需求及面临的技术难点;其次,总结了正在发展的跨链技术,并介绍了24种主流跨链技术的原理与实现思路;然后,综合分析了跨链技术存在的安全性风险,并列举了12项主要问题;最后,总结探讨了跨链技术的未来发展趋势.
2024/10/9 12:43:58 1.15MB 区块链 跨链技术 文献论文
1
经过这几天的学习与调试,终于在STM32F103VCT6+W5500(SPI1)+Freemodbus平台上,实现Modbus-TCP协议的功能。
其实很简单,只要熟悉Modbus-RTU通讯,明白Modbus帧的结构等,Modbus-TCP只是在原来的帧结构上加个头,去个尾,然后用TCP传输即可。
关键的内容就是怎样获取W5500新接收的数据包,并发送给Modbus事件状态机驱动协议的执行,数据的处理。
主要参考Freemodbusdemo里的Modbus-TCP协议实现的思路,获取缓存区的读写与发送响应。
1
该文档主要讲解马尔可夫聚类算法(TheMarkovClusterAlgorithm,MCL),配有计算公式,转化方法,结合实例讲解算法过程,个人感觉思路很清晰,讲解的很详细。
2024/10/2 21:02:39 726KB The Markov Cluster Algorithm
1
利用汇编语言实现的可选择关卡的贪吃蛇游戏,文档包含作者当初学习时的设计思路和源码,在Console下运行即可
2024/9/26 19:01:44 211KB 汇编
1
本书主要分两篇,第一篇以软件解题思路作为主线,介绍了软件的基本知识、基本操作、各种接口及用户如何快速灵活地掌握软件的使用;
第二篇以软件使用技巧和经验作为主要内容,帮助用户解决使用过程中遇到的一些问题并掌握软件的使用技巧。
2024/9/22 17:12:35 7.83MB comsol
1
共 680 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡