词法分析器制作与应用 设计思想 (1)程序主体结构部分: 说明部分 %% 规则部分 %% 辅助程序部分 (2)主体结构的说明 在这里说明部分告诉我们使用的LETTER,DIGIT, IDENT(标识符,通常定义为字母开头的字母数字串)和STR(字符串常量,通常定义为双引号括起来的一串字符)是什么意思.这部分也可以包含一些初始化代码.例如用#include来使用标准的头文件和前向说明(forward ,references).这些代码应该再标记"%{"和"%}"之间 规则部分> 可以包括任何你想用来分析的代码 我们这里包括了忽略所有注释中字符的功能,传送ID名称和字符串常量内容到主调函数和main函数的功能. (3)实现原理 程序中先判断这个句语句中每个单元为关键字、常数、运算符、界符,对与不同的单词符号给出不同编码形式的编码,用以区分之。 PL/0语言的EBNF表示 <常量定义>::=<标识符>=<无符号整数> <标识符>::=<字母>={<字母>|<数字>} <加法运算符>::=+|- <乘法运算符>::=*|/ <关系运算符>::==|#|<|<=|>|>= <字母>::=a|b|…|X|Y|Z <数字>::=0|1|2|…|8|9
上传时间: 2015-11-04
上传用户:zhengzg
变量和相等问题的设计和实现将a、b、c、d、e、f这6个变量排成如图所示的 三角形,这6个变量分别取 1——6的整数,且均不相同。求使三角形三条边上的变量之和相等的全部解,如 3 6 2 1 4 5 为一个解。 程序引入变量a,b,c,d,e,f,并让它们分别取1——6的整数,在它们互不相等的 条件下, 测试由它们排成如图所示的三角形三条边上的变量之和是否相等,如相等即为一种满足要求的排列,把它们输出。当这些变量取尽所有的组合后,程序就可得到全部可能的解。
上传时间: 2015-11-04
上传用户:GavinNeko
1、 :编写并调试一个模拟的进程调度程序,采用“最高优先数优先”调度算法对进程进行调度。 “最高优先数优先调度算法的基本思想是把CPU分配给就绪队列中优先数最高的进程。尝试静态优先数与动态优先数两种方法: a) 静态优先数是指优先数在整个进程运行期间不再改变。优先数可以在数据输入时指定,也可以根据到达顺序、运行时间确定。 b) 动态优先数是指进程的优先数在创建进程时可以给定一个初始值,并且可以按一定原则修改优先数。例如进程获得一次CPU后就将其优先数减少1。或者进程等待的时间超过某一时限时增加其优先数的值。 2、 编写并调试一个模拟的进程调度程序,模拟实现多级反馈队列调度算法。 3、 编写并调试一个模拟的进程调度程序,模拟实现最低松弛度优先算法。 4、 程序与报告要求: a) 对上述要求1、2、3,至少要完成一项,鼓励尝试多种算法。 b) 输出结果要尽量详细清晰,能够反映调度后队列变化,PCB内部变化。 c) 可以选择在Windows或Linux环境下编写、运行程序 d) 鼓励使用不同的开发工具在不同平台环境上进行开发比较。 e) 在实验报告中,一方面可以对实验结果进行分析,一方面可以对各种算法进行比较,分析它们的优劣,说明各种算法适用于哪些情况下的调度。
上传时间: 2015-11-13
上传用户:zq70996813
一 . 需求分析: 1) 输入形式和输入值范围: 输入形式是要压缩(或者要解压)的文件路径,输入范围是字符串,而且要是文件的路径。 2) 输出形式: 输出相应的编码压缩文件和解码原文件 3) 程序所能达到的功能: 利用哈夫曼对ASCII文件做不等长编码,达到压缩文件。利用哈夫曼树的遍历,达到解压文件的目的。程序的功能也就是实现压缩和解压ASCII类型文件的目的。 4)测试数据:(包括正确的输入数据及其输出结果和含有错误输入及其输出结果) 测试输入或者输出文本框是不是有空的,是不是不是有效路径。进行条件判断,实现错误处理。 比如要压缩:c:\a.txt 文件路径就是:c:\a.txt。如果输入框是空的,就判断,然后用MessageBox处理信息。 如果文件路径和文件的输出路径都写正确的话,就会输出相应的压缩或者解压文件,否则用函数MessageBox提示错误。然后进行更正。 二 . 概要设计: 1) 哈夫曼树的特点 a) 是二叉树的一种,而且是一种没有度数是1的二叉树 b) 一棵树有n个叶子,就会用2n-1个节点 c) 一种“最优”二叉树,由于树的带权路径(WPL)最小 d) 由于它是由下到上顺序构造的,使得分支节点和叶子节点从下到上,权值都是从小到大的顺序排列的
上传时间: 2013-12-03
上传用户:zsjzc
一 . 需求分析: 1) 输入形式和输入值范围: 输入形式是某集体的“人名”,输入的是人名的拼音,而且字符长度不超过19。 2) 输出形式: 输出相应的“人名”哈希表,并实现查找的功能,且平均查找长度不超R. 3) 程序所能达到的功能: 利用哈希函数对“人名”拼音做编码,建立哈希表。并实现查找的功能,且平均查找长度不超R。 4)测试数据:(包括正确的输入数据及其输出结果和含有错误输入及其输出结果) 测试输入是不是有效的。进行条件判断,实现错误处理。 如果输入是正确的话,就会按程序的5个功能一步步建立起哈希表、查看哈希表、哈希表的查找。否则用函数MessageBox提示错误。然后进行更正。 二 . 概要设计: 1) 哈希表的特点 a) 据哈希函数和处理冲突的方法将一组关键字映像到一个有限的区间上 b) 以关键字在地址集中的“像”作为记录在表中的存储位置 c) 不经过任何比较,一次存取便能得到所查记录
上传时间: 2014-01-08
上传用户:498732662
结合单片机和M a t l a b 两者的优点,基于事件驱动的中断通信机制,提出一种Matlab 环境下PC 机与 单片机实时串行通信及数据处理的方法;完成单片机数据采集系统与PC 机的RS-232/RS-485 串行通 信及其通信数据的分析处理、文件存储、F I R 滤波及图形显示;简化系统开发流程,提高开发效率。 该方法已成功应用于一个P I C 1 6 F 8 7 6 单片机应用系统实例之中
标签: 单片机
上传时间: 2014-01-19
上传用户:yzy6007
n皇后问题求解(8<=n<=1000) a) 皇后个数的设定 在指定文本框内输入皇后个数即可,注意: 皇后个数在8和1000 之间(包括8和1000) b) 求解 点击<Solve>按钮即可进行求解. c) 求解过程显示 在标有Total Collision的静态文本框中将输出当前棋盘上的皇后总冲突数. 当冲突数降到0时,求解完毕. d) 求解结果显示 程序可以图形化显示8<=n<=50的皇后求解结果. e) 退出程序,点击<Exit>即可退出程序.
上传时间: 2016-01-28
上传用户:ztj182002
b样条插值滤波,是个很好的代码程序,有需要的尽管下啊
上传时间: 2016-03-04
上传用户:yy541071797
< B语言与方法:实用形式化开发指南>> 本书介绍了B抽象机符号语言以及用于支持形式化规格说明和高集成 系统开发的方挂。首先,介绍了B 语言的发展历史及与其他语言的关系,然 后,从集合、序列等基本数学符号表示到B 语言的结构化机制,再到它所支 持的大型程序设计方法,全面地介细了B 符号语言的描述方法。
上传时间: 2014-11-29
上传用户:康郎
本程序要求用户在控制台里输入非终极符,终结符与产生式,然后对用户输入的文法进行分析,得出first集 与follow 集,并打印出预测分析表用户决定是否继续进行句型分析,如继续则给出符号分析栈的实现,从而判断刚输入的句子是否为符合该文法的句子。 该程序遵循LL(1) 文法FIRST(A)的构造:是A的所有可能推导的开头终结符或可能的ε FOLLOW(A)是所有句型中出现在紧接A之后的非终结符或“#” 预测分析程序 构造LL(1)分析表 ⅰ,构造文法中所有元素的FIRST和FOLLOW集合 ⅱ,对文法G的每个产生式A->α执行第三步和第四步 ⅲ,对每个终结符a∈FIRST(α),把A->α加至M[A,a] ⅳ,若ε∈FIRST(α),则对任何b∈FOLLOW(A)把A->α加至M[A,b]中 ⅴ,把所有无定义的M[A,a]标上“出错标志”
上传时间: 2013-12-27
上传用户:jackgao