首页 > 其他 > 详细

软件的本质

时间:2019-02-13 19:26:45      阅读:213      评论:0      收藏:0      [点我收藏+]

计算机革命是有关我们如何去思考的方式, 以及我们如何去表达自己的思考的一个革命。- SICP

应当避免控制中的复杂性,将精力集中到数据的组织上,以反映所模拟世界里的真实结构。- Joel Moses

一切工具都是为了解决人的问题,软件也不例外。但人类世界的现实问题到软件的解决方案的实现路径跨越太大,无法一步跃迁,这就需要设计分解成一系列的跃迁步奏,这就是软件设计的本质。

而编程的本质就是用编程语言对这一系列过程进行描述。所以编程语言是逻辑的载体和描述工具。

但就像一位大师说的“语言磨砺了我们的思维方式,也决定了我们的思考范围”,所以不同的编程语言又反过来影响了软件的定义。

从过程式范式来看,

软件 = 数据 + 算法;

从面对对象范式来看,

软件 = 对象 + 控制;

从函数式范式来看,

软件 = 解释 + 应用(eval-apply loop);

从逻辑范式来看,

软件 = 逻辑 + 控制。

从数学模型来看,

软件 = 计算模型 + 语义。
其中计算模型是对特定领域的数学抽象。语义是对特定领域的具象表达。

从计算机硬件模型来看,

软件 = 数据 + 控制。
因为冯.诺依曼计算机模型的物理设计,数据和控制是分离的,运行在其之上的软件,也必然受其影响。

而我们常说的软件架构、框架和设计模式,它们的一个显著差异就是,

  • 软件架构是从问题域对软件进行描述;
  • 设计模式是从软件的解决方案域对软件进行描述;
  • 框架是对一系列设计模式进行逻辑和概念上的封装。

软件的本质

原文:https://www.cnblogs.com/wahaha02/p/10371332.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!