词条 结构化编程

结构化编程

结构化程序设计英语:Structured programming),一种编程范型。它采用子程序、代码区块英语block structures、for循环以及while循环等结构,来取代传统的goto。希望借此来改善计算机程序的明晰性、质量以及开发时间,并且避免写出面条式代码。

结构化程序设计在1960年代开始发展,科拉多·伯姆英语Corrado Böhm及朱塞佩·贾可皮尼(Giuseppe Jacopini)于1966年5月在《Communications of the ACM》期刊发表论文,说明任何一个有goto指令的程序,可以改为完全不使用goto指令的程序,后来艾兹赫尔·戴克斯特拉在1968年也提出著名的论文《GOTO陈述有害论》(Go To Statement Considered Harmful),,因此结构化程序设计开始盛行,此概念理论上可以由结构化程序理论所证明,而在实务上,当时也有像ALGOL一样,有丰富控制结构的编程语言来实现结构化程序设计。

结构化编程相关文献
结构化编程
底层的结构化程序设计结构化的程序是以一些简单、有层次的程序流程架构所组成,可分为循序(sequence)、选择(selection)及重复(repetition)。循序是指程序正常的运行方式,运行完一个指令后,运行后面的指令。选择是依程序的状态,选择数段程序中的一个来运行,一般会使用if..then..else..endif或switch、case等关系字来识别。重复是指一直运行某一段程序,直到满足特定条件,或是一集合体中的所有元素均已处理过,一般会使用while、repeat、for或do..until等关键字识别。一般会建议每个循环只能有一个进入点(戴克斯特拉的结构化程序设计要求每个循环只能有一个进入点及一个结束点,有些编程语言仍有此规定)。若一个编程语言的语法允许用成对的关键字包围一段程序,形成一个结构,这种编程语言称为有“区块结构”(block-structured),这类的结构包...
查看全文
编程范型
例子结构化编程对比非结构化编程命令式编程对比宣告式编程消息传递编程对比命令式编程程序编程对比函数式编程Value-levelprogramming对比Function-levelprogramming流程驱动编程对比事件驱动编程纯量编程对比阵列编程基于类编程对比基于原型编程(在面向对象编程的上下文中)Rule-basedprogramming对比Constraintprogramming(在逻辑编程的上下文中)基于组件编程(如OLE)面向方面编程(如AspectJ)符号式编程(如Mathematica)面向表格编程(如MicrosoftFoxPro)管道编程(如Unix命令中的管道)Post-objectprogramming面向主题编程自省编程或称反射编程参见ArsbasedprogrammingMemetics
查看全文
极限编程
历史极限编程的创始者是肯特·贝克、沃德·坎宁安和罗恩·杰弗里斯(英语:RonJeffries),他们在为克莱斯勒综合报酬系统(英语:ChryslerComprehensiveCompensationSystem)的薪水册项目工作时提出了极限编程方法。肯特·贝克在1996年3月成为克莱斯勒系统的项目负责人,开始对项目的开发方法学进行改善。他写了一本关于这个改善后的方法学的书,并且于1999年10月将之发行,这就是《极限编程解析》(2005第二版出版)。克莱斯勒在2000年2月取消了实质上并未成功的克莱斯勒系统,但是这个方法学却一直流行在软件工程领域中。至今2006年,很多软件开发项目都一直以极限编程做为他们的指导方法学。该书阐述了如下的极限编程的哲学思想:一种社会性的变化机制一种开发模式一种改进的方法一种协调生产率和人性的尝试一种软件开发方法把极限编程一般化并用于其它类型的专案称为极限专案管...
查看全文
结构化分析
目的结构化分析在1980年代起开始广为使用。结构化分析包括将系统概念转换为用数据及控制的来表示,也就是转换为数据流程图。数据流程图中的程序以泡泡来表示,因此也称为“泡泡图”。不过完整的数据流程图中可能有许多的“泡泡”,使得很难去追踪数据流动的情形。此时可以先定义外界需要系统回应的事件,每一个事件指定一个泡泡,当系统定义完成后,再将事件的泡泡和回应的程序的泡泡相连接。也可以将程序对应泡泡加以分组,组合成较高级的程序。数据字典用来描述数据和指令的流动,而用程序规格来描述交易或数据转换的相关信息。许多著名的分析方式都和结构化分析(SA)及结构化设计(SD)有关,包括结构图、数据流程图及数据模型图等。许多程序设计方法学也结合了结构化分析及结构化设计,包括结构化系统分析及设计方法(SSADM)及结构化分析及设计技术(英语:StructuredAnalysisandDesignTechnique)(S...
查看全文
编程语言
概论编程语言原本是被设计成专门使用在计算机上的,但它们也可以用来定义算法或者数据结构。正是因为如此,程序员才会试图使程序代码更容易阅读。编程语言往往使程序员能够比使用机器语言更准确地表达他们所想表达的目的。对那些从事计算机科学的人来说,懂得程序设计语言是十分重要的,因为在当今所有的计算都需要程序设计语言才能完成。目前发明了许多的编程语言,编程语言本身可能修改以匹配新需求,或是和其他的编程语言结合使用,尽管人们多次试图创造可以匹配所有需求的通用编程语言,但以“匹配所有需求”的标准来看,这些尝试都失败了。之所以有那么多种不同的编程语言存在的原因是,编写程序的初衷其实也各不相同;新手与老手之间技术的差距非常大,而且有许多语言对新手来说太难学;还有,不同程序之间的运行成本(runtimecost)各不相同。有许多用于特殊用途的语言,只在特殊情况下使用。例如,PHP专门用来显示网页;Perl更适合文...
查看全文
家族谱大览
[湖北黄冈]程氏宗谱
浏览:0
程氏世谱海阳东山谱系[上中下卷]
原书: [出版地不详 : 出版者不详], 公元2003年. 3册: 插图, 人像, 世系表. 收藏者: 太原寻源姓氏文化研究中心. 远祖: 黄帝. 始祖: (宋) 程颢. 东山始迁祖(1世): (明清之际) 程彦平 ; 程彦方 ; 程彦忠 ; 程彦高. 均为良祖子海公之子. 注: 1~8世历代嫡庶世系不明. 各支系始祖: 程佩(7世) ; 程杲(3世) ; 程坤(5世) ; 程一进(8世) ; 程子然(9世) 注: 第2册, 中卷, 影像第11页, 谱书第144页, 有皇清末年海洋东山程氏家族32繁128字起名定例, 及附洛阳二程故里起名定例. 注: 此谱以简化字体书写. 散居地: 山东省海阳县等地. 书名据书衣题编目. 版心题: 程氏世谱东山谱系.
浏览:0
4.程氏族谱, 4, 1368–2017
为能实时提供网络用户搜寻, 此书谨有简略讯息, 谱书影像内容未经审阅. 如有错误, 请透过「意见反馈」反应.
浏览:100
7.程氏族谱, 7, 1368–2017
为能实时提供网络用户搜寻, 此书谨有简略讯息, 谱书影像内容未经审阅. 如有错误, 请透过「意见反馈」反应.
浏览:100
1.程氏族谱, 1, 1368–2017
为能实时提供网络用户搜寻, 此书谨有简略讯息, 谱书影像内容未经审阅. 如有错误, 请透过「意见反馈」反应.
浏览:100
1.程氏族谱 [4卷]
本微卷缩小42倍率请用高度放大阅读机. 原书: [出版地不详 : 出版者不详], 民国24[1935](天津 : 信华印刷局), 民国 24[1935]. 4册 : 世系表. 受姓始祖 : 伯符,讳乔,字合一,号叔祥. 仕周成王得封广平程国,遂以国为姓. 登州始祖 : (明) 程柩. 禹城始迁祖 : 程仲德 ; 程仲全. 散居地 : 山东省禹城县等地.
浏览:100