结构化与非结构化程序的区别

1.结构化程序:
结构化程序设计由迪克斯特拉(E.W.dijkstra)在1969年提出,是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变单纯而明确,为设计一些较大的软件打下了良好的基础。
由于模块相互独立,因此在设计其中一个模块时,不会受到其它模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为我们可以充分利用现有的模块作积木式的扩展。
按照结构化程序设计的观点,任何算法功能都可以通过由程序模块组成的三种基本程序结构的组合: 顺序结构、选择结构和循环结构来实现。
结构化程序设计的基本思想是采用"自顶向下,逐步求精"的程序设计方法和"单入口单出口"的控制结构。自顶向下、逐步求精的程序设计方法从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图;"单入口单出口"的思想认为一个复杂的程序,如果它仅是由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,那么这个新构造的程序一定是一个单入口单出口的程序。据此就很容易编写出结构良好、易于调试的程序来。
结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用goto语句,总的来说可使程序结构良好、易读、易理解、易维护。
2.非结构化程序:
而非结构化程序设计是历史上最早的能够创造图灵完备算法的程序设计模式。 在它之后,历史上又出现了结构化(过程化)程序设计、面向对象程序设计。
非结构化程序设计被批评最严重的方面就是会产生很难读懂的代码(戏称“意大利面条”),在创建大型工程方面有时会被认为是很差的,不过,因为赋予程序设计者很大的自由,被人称赞为如同莫扎特在谱曲。
非结构化程序设计语言既有高级语言,也有低级语言。 其中包括早期版本的BASIC(比如MSX BASIC和GW-BASIC),JOSS、FOCAL、MUMPS、TELCOMP、COBOL、机器语言、早期的汇编系统(不包括过程化的metaoperators)、汇编调试器和一些脚本语言(比如MS-DOS batch文件语言)。

猜你喜欢

转载自blog.csdn.net/LJH_Gemini/article/details/83828441