🧑‍💻猫工社🤖

1979 年,英国逻辑学家和计算机科学家 Robert Kowalski 发表论文 Algorithm = Logic + Control,也即算法 = 逻辑 + 控制。

任何算法都会有两个部分, 一个是 Logic 部分,这是用来解决实际问题的。另一个是 Control 部分,这是用来决定用什么策略来解决问题。Logic 部分是真正意义上的解决问题的算法,而 Control 部分只是影响解决这个问题的效率。程序运行的效率问题和程序的逻辑其实是没有关系的。我们认为,如果将 Logic 和 Control 部分有效地分开,那么代码就会变得更容易改进和维护。

复杂程序可以分成两部分:

  1. 抽象编程表达逻辑:包括逻辑、做什么、值、计算、函数式编程等。业务编程要充分语义化,变成逻辑,以提高安全与灵活。
  2. 具体编程实现控制:包括控制、怎么做、资源、操作、命令式。系统编程要更注重控制,以提高安全与性能。

参考:

  1. 左耳朵耗子:编程的本质是什么?
  2. 程序的本质复杂性和元语言抽象酷壳转载讨论
  3. 【DeepSeek】抽象与具体编程的分层设计