首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“单项”和“单出口”对陈述意味着什么?

问“单项”和“单出口”对陈述意味着什么?
EN

Stack Overflow用户
提问于 2019-07-01 21:18:10
回答 1查看 3K关注 0票数 1

来自An Integrated Approach to Software Engineering By Pankaj Jalote

显然,没有任何有意义的程序可以编写成一系列简单的语句,而不需要任何分支或重复(这也涉及分支)。那么,是如何将控制fl线性化的目标是如何实现的?是如何利用结构化构造来实现的。在结构化编程中,语句不是简单的赋值语句,而是结构化语句。结构化语句的关键属性是它有一个单条目和一个单出口。也就是说,在执行期间,(结构化)语句的执行从一个defined点开始,该执行终止于一个defined点。使用单入口和单出口语句,我们可以将程序视为(结构化的)语句序列。如果所有语句都是结构化语句,那么在执行过程中,这些语句的执行顺序将与程序文本中的顺序相同。因此,通过使用单入口和单出口语句,可以得到静态和动态结构之间的对应关系。 最常用的单入口和单出口语句是 选择:如果B,然后S1 S2,如果B,则S1迭代:而B做S重复,直到B测序: S1;S2;S3;.

在结构化声明中,“单项”和“单出口”意味着什么?

为什么最后列出的语句是单项和单出口?例如,在if B then S1 else S2中,既然它可以在S1或S2终止,为什么它是单个出口?

你能给出一份不是单项的陈述吗?

你能给出一份不是单出口的声明吗?

EN

回答 1

Stack Overflow用户

发布于 2019-07-01 21:40:45

在许多语言中,唯一没有一个条目的语句是那些碰巧包含与位于它们外部的goto或switch语句一起使用的标签的语句,而唯一没有一个出口的语句是那些将goto包含到外部位置、触发异常或强制堆栈展开的语句。请注意,对于函数的任何特定调用,唯一的“正常”退出点将是紧接该调用之后的代码。

对于那些从未使用过这种方法的代码的人来说,单入口/单退出的概念可能不明确。在为诸如Atari 2600这样的平台编写代码时,可以找到后者的例子,其中RAM空间通常处于绝对溢价状态。如果一段代码将从显示标题屏幕的代码中调用,或者从游戏逻辑中调用,而且一个子程序调用指令需要两个字节的堆栈空间,那么跳到代码(而不是使用"JSR“跳转到子例程指令)并通过检查游戏是否正在进行并跳回”显示标题屏幕“或”执行游戏逻辑“代码中的适当位置退出代码是很正常的。如果有必要从代码中的更多地方调用它,这样的设计可能很难维护,但是如果RAM真的很紧(例如,一个只有128个字节的总数,就像在Atari 2600上那样),这种技术可能是必要的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56842583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档