jes*_*rry 6 math logic language-features language-design lambda-calculus
数学和计算机编程语言的融合似乎有一种强烈的运动,这可以从lambda演算对现代语言的影响中得到证明.大部分时间我都没有用数学思考,我认为有逻辑.在我看来,许多可以在数学上建模的现象也可以在逻辑上建模.
我不认为我们会看到纯逻辑语言或纯数学语言对通用编程有吸引力,但我想清点每种范例的好处.我想知道:
首先,我没有看到逻辑和数学之间的区别; 后者只是前者系统地应用于特定的结构.
此外,我不相信在编写高效,可维护的代码时,通过数学/逻辑建立编程语言的理论之美非常值得.
至于你具体的问题.
在数学上建模编程语言或语言特征有什么好处?在形式逻辑原理上建模语言有什么好处?
正确性的证明变得更加容易 - 尽管我们是否能够达到实际系统的实用性是值得怀疑的.
通用语言可以放弃逻辑还是数学?
取决于你对"forgo"的意思.你可以拥有一种没有数学运算的语言(虽然你必须得到相当的无效;图灵机是我能想到的唯一一个甚至没有增加或减少的机器),你当然可以拥有一个不关心形式主义的语言(汇编程序,C).但我认为没有逻辑的编程语言是不可能的(虽然它可能是一个变态的逻辑,参见Malbolge)
哪些语言真正展示了这两种方法的好处?
好吧,如果你认为Lambda演算是一种逻辑形式,那么自1958年以来,Lisp一直很好地展示了它的好处,这种语言是其他语言渴望(但不管理)的表达能力.
然后就是Prolog,这是我所知道的另一种"严肃"语言,它试图明确地建立在形式逻辑之上.而且 - 令人惊讶的是 - 它擅长逻辑和其他东西.
哪些硬件功能使一种方法比另一种方法更具吸引力?
没有.Lisp Machines的失败证明IMO非常确定编译器+通用硬件比专用硬件更强大.然而,有人可能会说,今天系统的简单强大功能正在制造完全忽略硬件限制的语言.
| 归档时间: |
|
| 查看次数: |
1187 次 |
| 最近记录: |