02-面向过程编程
1.2.1 面向过程编程
面向过程的编程语言也称为结构化程序设计语言,是高级语言的一种,C 语言是常见的面向过程语言。在面向过程程序设计中,问题被看作一系列需要完成的任务,函数则用于完成这些任务,解决问题的焦点集中于函数。
面向过程的概念最早由 E.W.Dijkstra 在 1965 年提出,是软件发展史上的一个重要里程碑。面向过程程序设计的主要特点是采用自顶向下、逐步求精的程序设计方法,使用 3 种基本控制结构构造程序,即任何程序都可由顺序、选择、循环 3 种基本控制结构构成。
面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计流程,面向过程往往需要把一个复杂的函数切分为若干易于控制和处理的子函数,即通过把大块函数切割成小块函数来降低系统的复杂度。
面向过程的程序设计语言往往具有如下一些特点。
1.严格的语法
面向过程语言的每一条语句的书写格式都有着严格的规定。
2.接近自然语言
机器语言程序晦涩难懂的原因主要有两个,一是机器语言使用二进制数来表示机器指令的操作码和存放操作数的存储单元地址,二是每一条机器指令只能执行简单操作。而面向过程语言为了达到简化程序设计过程的目的,对语法做了大量的改进和创新,使语句的格式尽量接近自然语言的格式,同时能够用一条语句来描述运算的过程。因此,接近自然语言的语法格式和描述运算过程的方法是面向过程语言的一大特色。
3.模块化设计
在面向过程编程设计中,一个程序可以分解为多个函数,通过函数调用过程,可以用一条函数调用语句来实现复杂函数的运算过程,从而降低系统的复杂度。
4.与编译器相关
虽然面向过程语言与计算机硬件结构无关,但用于将面向过程语言程序转换成机器语言程序的编译器与计算机硬件是有关的,在计算机硬件系统中,每一种计算机都有一个独立的编译器用于将面向过程语言程序转换成对应的机器语言程序。
因此,只有具备了将面向过程语言程序转换成对应的机器语言程序的编译器,面向过程语言程序才能在该计算机上运行。对于同一面向过程语言程序,只要经过不同计算机对应编译器的编译,就可在其他计算机上运行,这种特性称为程序的可移植性。
5.解决问题的步骤
虽然面向过程语言中的语句功能比机器指令和汇编指令要强得多,但还是无法用一条语句来完成复杂运算过程所需的全部步骤,仍然需要将完成复杂运算的过程细化为一系列步骤,每一个步骤可以用一条语句描述执行。简单来说,面向过程语言程序设计就是用语句来描述解决问题过程的一系列步骤。
相比于面向对象的编程语言,面向过程的编程语言执行效率更高,因而被大量应用在单片机、嵌入式和 Linux/UNIX 系统开发中。而不足的是,面向过程语言难复用、易扩展,因而不适合开发大型软件系统。