Language agnostic 从“创建面向对象编程语言”;原子“;

Language agnostic 从“创建面向对象编程语言”;原子“;,language-agnostic,programming-languages,theory,language-theory,Language Agnostic,Programming Languages,Theory,Language Theory,生活中有一种美。考虑下面的例子: 原子由亚原子粒子组成,分子由原子组成,细胞由分子组成,器官由细胞组成,人由器官组成,社会由人组成 复杂的战略是建立在需要用“两只眼睛”来建造结构的基础上的,这样它们才能生存下来——然而“两只眼睛”的东西从来没有在规则中说明过,它本身就是非常简单的围棋规则的一个涌现属性 的图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图 在所有情况下,一组最小的对象和一组

生活中有一种美。考虑下面的例子:

  • 原子由亚原子粒子组成,分子由原子组成,细胞由分子组成,器官由细胞组成,人由器官组成,社会由人组成
  • 复杂的战略是建立在需要用“两只眼睛”来建造结构的基础上的,这样它们才能生存下来——然而“两只眼睛”的东西从来没有在规则中说明过,它本身就是非常简单的围棋规则的一个涌现属性
  • 的图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图灵图
  • 在所有情况下,一组最小的对象和一组最小的规则最终会导致非常复杂的结构

    我的第一个问题:是否有可能概述一组小而简约的编程“对象”和“规则”,用于构建OOP语言

    现在,聪明的计算机科学家可能会指出的图灵完整性,并说这是所有你需要的!但这不是我想要的。相反,冒着提出定义不清的问题的风险,可以构建到面向对象编程语言中的最简单、人类可以理解的概念是什么

    对于一个错误且不完整的示例,它暗示了我想要什么,请定义三个概念对象:引用、函数和信息持有者。然后(第2级?)将结构定义为通过引用其他信息文件夹保存其他信息的信息持有者。一个基本类(3级?)将通过对函数的引用来扩充结构,但必须构建额外的结构来处理私有函数和公共函数的概念。最终,我们应该开发出一种功能齐全的面向对象语言,这种语言完全建立在基本概念之上,我们没有任何地方通过硬编码优化或使用机器代码进行语法分析来作弊。理想情况下,最终结果仍然是有吸引力的可读代码


    我的第二个问题:是否有任何OOP语言已经达到了这一目的?

    可能是最接近您所寻找的语言。

    有趣的问题,但我不完全确定它是否合理

    假设1和0是计算机科学中的原子。它们是严格不可分割的。它们的不同组合产生了具有各种惊人特性的程序。但是,不适合在1和0中编写,因为抽象级别太低


    我认为同样的问题也会出现在你的语言上。如果它足够灵活,可以构建任何东西,那么它将无法使用,如果它不灵活,它将无法满足您的要求。

    Smalltalk是建立在一组非常有限的原语基础上的,但是OO ideom是原子的。从理论上讲,您可以在简单的基础上构建任意复杂的语言,如lambda演算或lambda演算。OO特性没有任何不同,它们可以简化为更原始的集合。任何位于原始Lisp宏之上的OO系统都是一个很好的例子

    更新:总体来看,这是一种在简单事物之上定义复杂语义的强大技术

    我还建议你读一本书

    IO语言参考给出了一个很好的提示——OOP最简单的方法似乎是。您所需要的基本上是关联数组和一级函数


    由于包括字典在内的许多数据结构都可以通过函数来实现,我们很快就开始使用一些语法和糖,它涵盖了一个完整的图灵完整计算模型。

    乍一看,它看起来很有趣,也很简单。以0和1形式编写的东西永远只能作为我们最感兴趣的想法和概念的序列化。因此,也许我们可以说,在构建这种语言的过程中,我们只能讨论概念,而不能讨论实现。在我们定义了基本的公理并将它们构建成OOP语言之后,我们可以回头讨论基本概念的实现。-最后,也许你是对的。我不确定这个问题是否定义得很好。这在()之前已经做过多次。我的一位教授创造了一种语言,定义了所有离散数学,从0/1以上的布尔代数开始;如果你感兴趣,我也许能找到一个推荐人。@Apalala如果不难找到推荐人,那么我会感兴趣的。但不要花太多时间。你给了我一个口齿不清的参考。我想知道Lisp是否会出现在这次对话中。Berryman我找到了参考资料。矛盾的是,要定义一种语言,你必须用某种语言。引用使用谓词逻辑,所以我认为您不会感兴趣。如果它是web引用,我仍然会感兴趣。我预计需要一种语言(比如谓词逻辑)来描述我在这里寻找的这种语言。有办法解决这个问题吗?可能不会!