在超前的关系中有一种美。考虑以下示例:
- 原子由亚原子粒子组成,分子由原子组成,细胞由分子组成,器官由细胞组成,人由器官组成,社会由人组成。
- 围棋游戏的复杂策略是建立在需要构建具有“两只眼睛”的结构以便它们能够生存的基础上的——然而,“两只眼睛”的东西从来没有在规则中说明,但它本身就是围棋的一种新兴属性。非常简单的围棋规则。
- Conway's_Game_of_Life的图灵完备性可以用滑翔机、枪支和宇宙飞船来证明,它们又基于开和关的概念以及非常简单的规则集。
在所有情况下,最小的对象集和最小的规则集最终会导致非常复杂的结构。
我的第一个问题:是否可以概述一组可用于构建 OOP 语言的小而简约的编程“对象”和“规则”?
现在,聪明的计算机科学家可能会指出规则 110的图灵完备性并说这就是你所需要的!但这并不是我想要的。相反,冒着提出定义不明确的问题的风险,可以构建到面向对象编程语言中的最简单、人类可理解的概念是什么?
对于暗示我想要什么的糟糕且不完整的示例,请定义三个概念对象:引用、函数和信息持有者。然后(第 2 级?)定义一个结构作为信息持有者,通过对其他信息文件夹的引用来保存其他信息。一个基本的类(第 3 级?)将通过对函数的引用来扩充结构,但必须构建额外的结构来处理私有函数与公共函数的概念。最终,我们应该得到一种功能齐全的 OOP 语言,它完全建立在基本概念之上,而且我们在任何地方都没有作弊通过使用机器代码硬编码优化或语法盐。理想情况下,最终结果仍然是有吸引力且可读的代码。
我的第二个问题:是否有任何 OOP 语言已经接近这一点?