状态转换图
状态转换图 ppt课件

通常用自然语言+模型,完整、准确、 具体地描述系统的数据要求、功能需求、 性能需求、可靠性和可用性要求、出错 处理需求、接口需求、约束、逆向需求 以及将来可能提出的要求。
软件需求规格说明书,是需求分析阶段 得出的最主要的文档。
软件需求说明书的编写提示 (GB856T—88)
• 需求分析的任务就是借助于当前系统的逻辑模 型导出目标系统的逻辑模型,解决目标系统的 “做什么” 的问题。
3.1 需求分析的具体任务
1 确定对系统的综合要求
---功能需求、性能需求、可靠性和可用性 需求、出错处理需求、接口需求、约束、 逆向需求、将来可能提出的要求。
2 分析系统的数据要求
3 导出系统的逻辑模型
• 为表示实体型之间的联系,又建立两个 关系:
选课 (学号,课程号,听课出勤率, 作业完成率,分数)
教课 (职工号,课程号,授课效果) • 这五个关系,组成了数据库的模型。 • 在每个关系中,属性名下加下划线)指
明关键字。并规定关键字能唯一地标识 一个元组。
• 通常用“范式(Normal Forms)”定义消除数据冗余的 程度。第一范式(1 NF)数据冗余程度最大,第五范 式(5 NF)数据冗余程度最小。但是:
性
状态转换图
规范化的目的是: • 消除数据冗余,即消除表格中数据的重复; • 消除多义性,使关系中的属性含义清楚、
单一;
• 使关系的“概念”单一化,让每个数据项 只是一个简单的数或字符串,而不是一个 组项或重复组;
• 方便操作。使数据的插入、删除与修改操 作可行并方便;
• 使关系模式更灵活,易于实现接近自然语 言的查询方式。
编译原理 3.2正规文法和状态转换图

2020/6/18
B=
状态 vt S1 S2 … Si … Sn
a1 a2 a3 … aj … am
B23 Bij
第25页/共24页
其中,元素 Bij=B[Si,aj] 指明下一状态 Sk 和 扫描器此时应完成的语义动作;
助记符
while if else
switch case id num
+ − * relop relop relop = ;
内码值
— — — — —
id在符号表中位置
num在常数表中位置
—
—
— LE LT EQ — —
第33页/共24页
2 C语言子集对应的状态转换图的设计 首先对输入串做预处理。
即剔除多余的空格、注释、制表符和 换行符等。
由于直接使用整数编码不利于记忆, 故采用一些助记符表示种别编码。
2020/6/18
第32页/共24页
表1 C语言子集的单词符号及内码值
单词符号
while if else
switch case 标识符 常数
+ − * <= < == = ;
2020/6/18
种别编码
1 2 3 4 5 6 7 8 9 10 11 11 11 12 13
(2)状态4识别出一个常数后可以将它 转换成二进制常数再登录到常数表,然后返 回它在常数表中的入口指针作为内码值。
2020/6/18
第37页/共24页
3 状态转换图的实现 状态转换图易于用程序实现,最简单的
办法是让每个状态对应一小段程序。对于 图3–00,首先引进一组变量和过程:
编译原理 3.2正规文法和状态转换图

2020/6/18
第30页/共24页
一个简单的词法分析器示例
1 C语言子集的单词符号表示 2 C语言子集对应的状态转换图的设计 3 状态转换图的实现
2020/6/18
第31页/共24页
1 C语言子集的单词符号表示
大多数程序语言的单词符号都可用 状态转换图予以识别。下面构造一个C 语言子集的简单词法分析器,该C语言 子集的所有单词符号及其种别编码和内 码值如下表所示。
开始符号S作为初始状态; S 设一符号F不属于V作为终止状态; F
2020/6/18
第7页/共24页
形如A→aB的规则:从结点A引一条矢线到结
点B,并用符号a标记这条矢线;
a
A
B
形如A→a的规则:从结点A引一条矢线到终态
结点F,并用符号a标记这条矢线;
a
A
F
2020/6/18
第8页/共24页
则有:S=> a1A1=> a1 a2A2=> a1 a2 a3A3=> … => a1 a2 a3 … an-1An-1=> a1a2a3…an
事实上,在利用状态转换图M对符号串ω进行识别的 过程中,M中的每一次状态转换都模拟了G中的一步 直接推导,所以,上述方法是一个自顶向下的分析
方法。
2020/6/18
a
R
A
2020/6/18
第16页/共24页
例如:G[Z]:Z→U0∣V1 U →Z1∣1 V →Z0∣0
1
2020/6/18
1
U
初态 R
0
V
0
Z
1
0
第17页/共24页
二、状态图的使用——识别句子
chapter3.2正规文法和状态转换图

右=>状 讨论1:消除ε产生式的方法-2
如文法G[S]:
S -> A A -> aX X -> ε 消除ε后,G[S]为 S -> A A -> a 而不是: S -> A A -> aX | a (显然A无法产生终止符串)
右=>状 讨论2 A-other->[[F]] vs [[A]]
A
[other]
L(G) c, cd, ad b | n 0
n
3.2.1(1)右线性文法=>状态转换图
设G=(VN,VT,P,S)是一右线性文法,令|VN|=K, 1) 则所要构造的状态转换图共有K+1个状态. 2) VN中的每个符号分别表示K个状态 2.1) G的开始符S为初态状态
3) 终止状态,用F(VN)标记
1
{return ( ICON= w ); {n++; w=w*10+d;} {return (FCON =w*pow(10,e*p-n) ) ;} {n++;w=w*10+d;} error {p=p*10+d;} e=-1; error {p=p*10+d;} error {p=p*10+d;} {return (FCON=w*pow(10,e*p-n) );
3) 起始状态,用R(VN)标记
R是新加(状态)节点
左线性文法=>状态转换图 转换规则 A -> Ba B R
a
a
A A
A -> a
若A为起始符(G[A])
A
消除ε,重用上述规则
A ->ε
不存在这 种转换
进程状态转换图进程管理

进程状态转换图进程管理2011-06-28进程状态转换图进程管理进程状态转换图进程管理进程管理要点?基础:进程描述及控制?策略:进程调度?实现:互斥与同步?避免:死锁与饥饿?解决:几个经典问题?关于:进程通信进程的概念?现代操作系统的重要特点:程序的并发执行及系统所拥有的资源被共享和系统的用户随机地使用。
?操作系统的重要任务之一:使用户充分、有效地利用系统资源。
程序顺序执行?程序:源代码、目标程序和可执行程序?程序执行:编辑、编译、链接、执行?程序的结构:顺序结构、分支结构和循环结构。
进程的引入(一)?前趋图:是一个有向无环图。
图中的每个结点用于表示一条语句、一个程序段或进程;结点间的有向边表示在两个结点之间存在的偏序或前趋关系。
进程的引入(二)?程序顺序执行:是指若干个程序或程序段之间必须按照某种先后次序逐个执行,仅当前一项操作执行完成后,才能执行后继操作。
?程序顺序执行时具有以下特征:(1)顺序性(2)封闭性(3)确定性(4)可再现性进程的引入(三)?多道程序系统中程序执行环境的变化在许多情况下,需要计算机能够同时处理多个具有独立功能的程序。
批处理系统、分时系统、实时系统以及网络与分布式系统等都是这样的系统。
?执行环境具有三个特点:?独立性:每道程序都是逻辑上独立的,它们之间不存在逻辑上的制约关系。
?随机性:在多道程序环境下,特别是在多用户环境下,程序和数据的输入与执行开始时间都是随机的。
?资源共享:资源共享将导致对进程执行速度的制约。
进程的引入(四)?程序并发执行:是指两个或两个以上的程序或程序段可在同一时间间隔内同时执行。
?程序的并发执行卓有成效地提高了系统的吞吐量。
?程序并发执行的新特征:间断性;失去封闭性;不可再现性;资源共享;程序与计算不再一一对应。
进程的引入(五)?程序的并发执行可进一步分为两种:第一种是多道程序系统的程序执行环境变化所引起的多道程序的并发执行。
第二种并发执行是在某道程序的几个程序段中(例如几个程序),包含着一部分可以同时执行或顺序颠倒执行的代码。
4_触发器的状态转换图

同步RS触发器功能表 同步RS触发器功能表
CLK 1 1 1 1 0 R 0 0 1 1 × S 0 1 0 1 × Qn+1 结论 Qn 维持 1 0 ∅ Qn 置1 置0 不定 关闭
触发器有两个状态, 触发器有两个状态,为1态和0态, 态和0 在两个圆圈内以1 表示之。 在两个圆圈内以1和0表示之。 两状态间用带箭头的弧线连接, 两状态间用带箭头的弧线连接, 箭头指向触发器的次态( 箭头指向触发器的次态 (n+1 态 ) , 箭尾为触发器的现态( 箭尾为触发器的现态(n态)。 弧线旁边标出了状态转换的条件
Qn+1=S+RQn RS=0 约束条件
S=0 R=1 S=0 R=×
1Hale Waihona Puke 0继续触发器的状态转换图
转换状态条件的标 注:R=0,S=1(0→1)
一、RS 触发器的状态转换图 1、同步 触发器的功能表 、同步RS触发器的功能表 2、同步 触发器的特征方程 、同步RS触发器的特征方程 3、同步 触发器的状态转 、同步RS触发器的状态转 换图
JK触发器功能表 JK触发器功能表
J 0 0 1 1 K 0 1 0 1 Qn+1 Qn 0 1
Qn
Qn+1=JQn + KQn
标上表示从0 态转换为1 标上表示从 0 态转换为 1 态的条件。 由真值表知, 态的条件 。 由真值表知 , 若触发器的初态为0,当 J=1 时 , 不管 K为何值 , 只 不管K为何值, CLK的触发边沿一到 的触发边沿一到, 要 CLK 的触发边沿一到 , 均可令触发器置1 均可令触发器置1态。
32 正规文法和状态转换图

S ⇒a1A1 ⇒a1a2A2 ⇒…… ⇒a1a2…an-1An-1 ⇒ a 1 a 2 … an
右线性文法与状态转换图
是一右线性文法 是相应的状态转换图 右线性文法,M 状态转换图,则从前面的 设G是一右线性文法 M是相应的状态转换图 则从前面的 讨论可以看出如下事实: 讨论可以看出如下事实:
(1)在利用M对符号串w进行识别时 M中每次状态的转换都模拟了 在利用M 进行识别时,M 在利用 一步直接推导,即识别方法 或称分析方法) 即识别方法(或称分析方法 一步直接推导 即识别方法 或称分析方法 是“↓”的; (2)因右线性文法只有形如A→aB、A →a的产生式,所以推导的每 因右线性文法只有形如 aB、 的产生式, 一步所得句型只含一个非终结符,所以推导的规范的,每步所 一步所得句型只含一个非终结符,所以推导的规范的 规范 得的句型也必为规范句型 规范句型; 得的句型也必为规范句型; 必存在G中的一个推导 (3)对于M所识别的任一符号串x,必存在 中的一个推导S ⇒* x 对于M 必存在 对于 (即有x∈L(G);反之 对于L(G)中任一句子y,必存在一条从初态S 反之,对于 即有 必存在一条从初态 到终态F的路径,此路径上各矢线的标记依次拼接起来所组成的符 到终态F的路径 此路径上各矢线的标记依次拼接起来所组成的符 号串恰为y
由左线性文法构造状态转换图的例子
已给文法G=({S,U},{0,1},{S→S1 |U1, U→U0 | 0},S) 已给文法
U→0 U →U0 S →U1 S →S1 0 1 1
用左线性文法构造出的状态转 换图来识别文法的句子,其过 换图来识别文法的句子, 程与前面右线性文法构造的状 态转换图用法一样,这里不再 态转换图用法一样, 赘述. 赘述.
宾馆预定管理系统的状态转换图与IPO图

(1)前台管理模块功能编号 1 功能名称前台管理模块所属部门功能描述能处理客房预订、宾馆换房、追加登记输入项姓名性别预付押金付款方式入住类型证件类型和号码地址联系电话、预订入住日期和预离日期、宾客人数、当前时间、入住方式、所需修改信息处理描述客户预定后存储用户的信息如姓名,性别等,更新数据库中预定记录,并分配一个独立的ID号,以方便进行各种查询及更新操作和身份识别。
根据用户输入的时间,查询数据库显示可售房间信息。
根据当天时间,查询数据库中的预定记录显示预定未到报表,并对预定未到的房间为可售房间。
客人可在前台申请宾馆换房、追加登记等操作,并更新相应的消费和客房信息。
客人还根据自己的预定信息和需求,查询客房状态。
输出项客人相关信息团体入住相关信息修改后的用户信息显示预订相关信息或者是无结果空闲房间号申请失败Do/提示因客房紧张无法办理订房或转房业务闲置Do/存储客户信息,分配id号Do/更新客户订房信息及房间状态信息Do/更新客户所订房间的信息预定处理换房处理追加处理预定成功Do/提示预定成功,打印帐单凭据追加成功Do/提示追加成功,打印追加凭据退房成功Do/提示换房成功,打印换房凭据房态查询Do/显示可售房间信息和已定房间信息客户预定或换房客户预定且有可订房客户换房且有已订房和可订房无可订房确定处理完成处理完成办理结束办理结束客户追加处理完成(2)收银管理模块功能编号2功能名称收银管理模块所属部门功 能 描 述 能处理取消预定、合并账户、定金管理(押金加入、退订、查账)输入项姓名 性别 证件号处理描述客人从预定房间起,客人的账号就自动产生,初始化客人的I C卡,并将客人的消费记入IC卡,更新数据库中的数据。
并检测客人的状态,满足一定的条件,客人才能进行相应的业务。
如客人账户余额为零,客人账号为空才可以退房。
客人根据自己的信息(姓名、证件号、性别)在前台进行相应的业务,如增加押金、退订、查账等,前台服务员对数据库中的客户账户资料(如押金,余额,消费额)进行修改。