知识卡片

四大程序设计范型的核心区别

专业/工作 · 1290.b

内容

程序设计范型是构建问题解决方案的不同思维方式,不只影响写代码的语法,更影响整个软件开发过程。命令式(过程式)范型要求程序员描述一个能得出答案的算法——一串命令序列,按顺序对数据进行操作;说明性范型反过来,只要求程序员描述问题本身是什么,具体怎么求解交给系统内置的通用求解算法(如逻辑推理引擎);函数式范型把程序看成纯粹的输入输出关系,通过把小函数嵌套组合成大函数来构建程序,每一步的输出直接作为下一步的输入,不需要中间存储状态;面向对象范型把系统看成一群对象的集合,每个对象自带数据和响应外部请求的方法,问题的解决靠对象之间互相发消息协作完成。发散:这四种范型不是互相取代的关系,而是同一个问题在”要不要描述过程”“要不要保留中间状态”“数据和行为要不要绑在一起”这几个维度上做出的不同选择,同一个”计算支票余额”的例子,命令式版本关心”先算什么再算什么”,函数式版本关心”结果是几个更简单函数的复合”,理解这个差异比记住某个范型的语法更重要。

参考来源

《计算机科学概论》第6章《程序设计语言》