1.面向过程编程
50多年前国际上发生了“软件危机”,如IBM公司开发一个操作系统,或美国的航空公司开发飞机订票系统,都花费了上千人数年的工作量,软件开发周期长,但是开发出来的软件产品错误很多,难以维护和适应修改。
正在此时,荷兰的物理家E.W.Dijkstra提出了一种“结构程序设计方法”,他认为:人的智力是有限的,应该采用数学或物理学的思维方法,用枚举、抽象、归纳、类比等思维方式简化问题。
此方法扩展到软件的生产活动中,称为“结构化分析和结构化设计(SASD)”。
结构化程序设计提出的原则可以归纳为32个字:自顶向下,逐步细化;清晰第一,效率第二;书写规范,缩进格式;基本结构,组合而成。
结构化的程序是以简单、有层次的程序流程架构组成,主要分为顺序(sequence)、选择(selection)及循环(repetition)。
2.面向过程开发的编程语言
面向过程的语言也称为结构化程序设计语言,是高级语言的一种,用任何语言都可以进行结构化程式设计,不过一般较常使用程序式的编程语言。早期的结构化编程语言包括ALGOL、Pascal、PL/I及Ada,不过后来大部分的程序式编程语言都鼓励使用结构化程式设计,有时也会特意省去一些特性(如不支持goto指令)使得非结构化的程式设计更加困难。
C语言是最常见的面向过程语言,也是应用最为广泛的一种编程语言,从嵌入式到PC(个人计算机)软件,从底层驱动到操作系统都能见到其身影。作为应用最广泛、形式最灵活,拓展最方便的一种编程语言,C语言在世界编程语言排行榜中占据极高的排名,多年来没有丝毫动摇。
“结构程序设计方法”是基于面向对象设计方法的早期蓝本,侧重于解决程序正确性的编程方法,以此为基础建立了软件工程这门学科,建立了编程的基础理论体系。
3.面向过程编程的主要特点
1)严格的语法
面向过程语言中每条语句的书写格式都有严格规定。(www.xing528.com)
2)与计算机硬件结构无关
面向过程语言中语句设计目标体现在以下两个方面:一是能够使得用语句描述完成运算过程的步骤和运算过程涉及的原始数据的过程得到简化;二是使得用面向过程语言编写的程序具有普适性,能够转换成不同的机器语言程序。因此,面向过程语言是与计算机硬件无关的。
3)语句接近自然表达式
机器语言程序之所以极其复杂和晦涩难懂,一是因为用二进制数表示机器指令的操作码和存放操作数的存储单元地址;二是因为每一条机器指令只能执行简单运算。面向过程语言要达到简化程序设计过程的目的,需要做到:一是使语句的格式尽量接近自然语言的格式:二是能够用一条语句描述完成自然表达式运算过程的步骤。因此,语句的格式和描述运算过程步骤的方法与自然表达式接近是面向过程语言的一大特色。
4)提供大量函数
为了做到与计算机硬件无关,通过提供输入/输出函数实现输入/输出功能。另外,大量复杂的运算过程,如三角函数运算过程等,即使用由四则运算符连接的自然表达式来描述运算过程的步骤,其过程也是极其复杂的,通过提供实现这些复杂运算过程的函数,使得面向过程语言的程序设计过程变得相对简单。
5)适合模块化设计
一个程序可以分解为多个函数,通过函数调用过程,使得可以用一条函数调用语句实现函数所完成的复杂运算过程。这种方法使得可以将一个复杂问题的解决过程分解为较为简单的几个子问题的解决过程,即首先通过编写函数用语句描述解决每一个子问题的解决过程的步骤,一条函数调用语句便描述了解决一个子问题的过程,最后在一个主程序中用多条函数调用语句描述解决分解为多个子问题的复杂问题的解决过程的步骤。
6)不同硬件结构对应不同的编译器
虽然面向过程语言与计算机硬件结构无关,但用于将面向过程语言程序转换成机器语言程序的编译器是与计算机硬件有关的,每一种计算机有着独立的用于将面向过程语言程序转换成该计算机对应的机器语言程序的编译器。因此,一种计算机只有具备了将面向过程语言程序转换成对应的机器语言程序的编译器,面向过程语言程序才能在该计算机上运行。同一面向过程语言程序,只要经过不同计算机对应的编译器的编译过程,就可在不同计算机上运行,这种特性称为程序的可移植性。
7)设计问题解决过程中的步骤
面向过程语言中每一条语句的功能虽然比机器指令和汇编指令的功能要强得多,但是无法用一条语句描述完成复杂运算过程所需的全部步骤,仍然需要将完成复杂运算的过程细化为一系列步骤,使得每一个步骤可以用一条语句描述;面向过程语言程序设计过程就是用一系列语句描述问题解决过程中的一系列步骤的过程。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。