顺序结构,有大师曾经指出过,是有很多问题的:
1,语句间存在依赖关系。这并不符合大多数的编程语义。大多数的编程语义可能是这样的:先做这个,再做这个,然后再做这个。就这么简单。里面并没有非常严格的依赖语义。因为后面的不一定依赖前面的。这种依赖关系是多余的,是画蛇添足,是无心插“柳”;
2,语句间存在顺序关系。这个是自然的。好像是没有问题的,暂时不讨论它;
3,异常对程序的中断:异常会中断程序的执行,并且这个点可能在任何地方发生,导致系统随时都具有陷入混乱的可能。因为系统是有状态的。即使是没有状态的这也是有问题的,来来去去的肯定做了一些事情,这些事情全都有危险;
4,语句间的顺序关系还导致另一个问题就是频率的问题。也就是说这种由写程序时候确定的自然顺序不一定与真正的运行时匹配。真正的运行时可能随时变化并进而要求不一样的程序执行过程(比如会要求更后面的语句得到提前执行)。也就是说,顺序执行在语义上太底层,跟不上。而要在这个结构上再建立新的结构好像也不是那么简单,因为整个系统都是基于这个构建的。
5,数据完整性。这个问题由异常引起,但没有因为异常结束。异常处理程序解决不了数据的完整性问题。数据完整性要求系统具有一定的回撤机制,但是顺序式结构没有任何这方面的能力。因为它太底层,因为它贴得机器太近。即使在虚拟机中也一样,因为虚拟机仍然是基于这个机制的。
6,顺序结构还引起一个同步的问题。因为它太简单所以并没有考虑多任务的情况,所以它不适合多任务。多任务要求提供一个合理的并发执行计划;