贝尔用贝尔写。1960年,约翰·麦卡锡(John McCarthy)描述了一种新型的编程语言Lisp。 我之所以说“新型”是因为Lisp不仅是一种新语言,而且是一种描述语言的新方式。
为了定义Lisp,他首先从一小部分运算符(一种公理)开始,然后用其为语言本身编写解释器。
他的目的不是用通常的意义来描述一种编程语言-一种用来告诉计算机做什么的语言。 Lisp在1960年的工作中被理解为类似于Thuring Machine的正式计算模型。 麦卡锡直到他的研究生史蒂夫·罗素(Steve Russell)提出它时,才考虑在计算机上使用它。
1960 Lisp不具备编程语言所共有的功能。 例如,没有数字,错误或输入/输出。 因此,使用Lisp作为编程计算机语言基础的人们必须自己添加这些功能。 他们通过放弃公理方法来做到这一点。
因此,Lisp的开发经历了两个阶段,并且似乎是非常独立的。一个阶段是1960年提出的正式阶段,而后是对该语言进行修改和扩展以在计算机上运行的实施阶段。 如果以实施的机会数量来衡量,则主要工作是在实施阶段。 1960年Lisp,翻译成Common Lisp,仅包含53行。 他仅执行解释表达式所需的操作。 在实施阶段添加了所有其他内容。
我的假设是,尽管经历了一段艰难的历史,但Lisp得益于它的发展经历了两个阶段。 通过在语言本身上编写解释器来定义语言的最初工作赋予了Lisp最好的品质。 如果是这样,为什么不继续前进呢?
Bel试图回答这个问题:如果不尽快从正式阶段过渡到执行阶段,该怎么办? 如果您继续使用公理化方法,直到您掌握了接近完整的编程语言为止,那么您将需要什么公理,以及最终的语言将是什么样?
我想澄清一下贝尔是什么,什么不是。 尽管它比1960年的Lisp McCarthy具有更多功能,但Bel仍处于正式阶段。 就像1960年描述的Lisp一样,它不是可用于编程的语言。 主要是因为像Lisp McCarthy一样,他并不关心效率。 当我向Bel添加内容时,我描述了添加的含义,而没有尝试提供有效的实现。
为了什么 为什么要延长正式舞台? 一个答案是看公理学方法可以带我们去哪里,这本身就是一个有趣的练习。 如果计算机具有我们想要的强大功能,那么语言将是什么样?
但我也相信,有可能基于Bel编写有效的实现,增加限制。 如果您需要一种具有表达力,清晰度和效率的语言,则可能要从表达力和清晰度开始,然后添加限制,而不是朝相反的方向发展。
因此,如果您想尝试编写基于Bel的实现,请。 我将成为第一批用户之一。
最终,我从以前的方言中复制了一些东西。 他们的设计师要么做对了一切,要么受以前使用的方言的影响,我看不到正确的答案-时间会证明一切。 我也尽量不要偏离Lisp中通过的约定。 这意味着,如果您发现偏离Lisp约定,则可能是有原因的。
此处继续对该语言进行描述 。感谢您的翻译:Denis Mitropolsky聚苯乙烯