大家看看能否看得懂哦,呵呵!
- 最早的想法是产生于对OO方法的不满,主要的想法是将对象拆开为方法和属性以实现更加灵活的组合,在此之上构想了很多特性,但是过于零散,没有统一的理论,还肯定存在严重的特性冲突问题。
- 将计算机代码看做一个由逻辑实现的符号运算展开的结果,类似于元编程,自称为“逻辑宏”,用逻辑宏实现声明式与过程式的结合,可以实现AOP,LOP,更理想的OO,等诸多特性。
- 认识到时间在语言表达中的重要性,因而提出了记忆机制,通过构造一个带有记忆机制,事件-动作响应的逻辑语言来实现代码,让诸多抽象的语言结构得到实现,将2中所描述的逻辑宏在这个机制上构造。这个描述仍然需要一个虚拟机去执行。
- 时间不再是一个需要特殊看待的东西,一切都包括在一个关于世界的逻辑结构中,世界的现在,过去和未来都是这个逻辑结构的一部分。将3中所描述的记忆,事件-动作响应,通过纯粹的逻辑方式构造出来。虚拟机再也不需要了,而虚拟机本身也是逻辑构造的一部分。
- 逻辑本身,是可以由图灵机所依赖的时空法则所构造出来的,最基础的三段论,经典逻辑,一阶逻辑,高阶逻辑,模态逻辑及各种非经典逻辑,将在一个一致的基础上构造出来,在这个构造中,可以看到时空法则,逻辑,图灵机的纠缠关系,还可以看到逻辑是如何在与现实的交互中发挥作用。
-------------------------------------------------------------------
Java和C#的改进实际上都在第一层
先进的函数式语言一般都是在第二层上做工作
计算机语言领域只看到lisp的发明人的新语言试图在第三层上有所作为
计算机语言的语义学在第四层上有一些零星的成果。
第五层只是在哲学意义上被提及。
-------------------------------------------------------------------
这个层怎么分,值得大作文章,更确切地说,不是我们想怎么分,而是去发现自然的分层法则。逻辑体系的分层(与分类),一阶、二阶……也是我一直看到的最重要的线索之一,不过,似乎就逻辑方面的研究本身,也没有把这个层级体系作为一个课题充分地阐明吧?我现在也还很朦胧。
我对你的计划和思路很感兴趣的地方,正是把图灵机作为最原始的逻辑,然后层次地构造更复杂、高级的逻辑,还有,就是你对于关系模型的一些基本方式——这二者都具有坚实的数学基础。现在,软件界主流基本上用“OO”来填补这两者之间的空缺,这个你批判得很透彻了。
然而,我想要提醒或补充的是,这二者并不能直接地连接,这中间还有一些重要的关系需要揭示,而且也有(我认为已经初步显露)一块重要的数学基础(主要就是是有限模型论),以及在这个数学基础之上建立的,一种与图灵机、关系模型几乎同等位置的“计算”模型(或一种理论,姑且这么说吧)。
简单地说吧,中间这一块,解决的就是所谓逻辑和现实世界(无限、开放的)之间的关系
-------------------------------------------------------------------
实话说,对第五层我实在没信心,因为这是在图灵机假设下探索最基本的哲学问题了。你提到的有限模型论我今天查阅了一下,我觉得应该对我将来在理论方面的工作启发很大,非常感谢。
对于一定的工程成果,我还是很有信心的,我大量的日记都是在写如何用这样一种统一理论来解决工程实践中的各种问题,包括DSL,效率,解释和编译,类型体系,等等等等。这些方方面面的问题和解决方法,我已经花费了大量时间和精力来寻找,真正的突破是在最近2到3年产生的。
我这个层次划分,也不是单纯从理论本身出发,而是在探索过程中感受到的几个台阶,每上一个台阶都会解决原来所无法想明白的很多问题。
我的方法论,是从这个探索过程中总结出来的,而且起到了非常大的作用,每当我把分析哲学的问题放到一个软件的环境中去思索的话,思想很快会被澄清,而且结论几乎是确凿无疑的,将来,在我的语言中也是可以验证的。
现在的精力主要集中在用prolog和本地程序相配合,构造一个类似emacs的IDE,做为第一步要发布的成果。期望在1年左右的时间内能够进行展示。
-------------------------------------------------------------------
关系模型(代数)+模型论+图灵机,以及它们关联的逻辑体系,是我十多年思考所得到的最宝贵的拼图,我相信,没有中间那一块,就无法真正解决图灵机与现实世界(最终应用问题)的关系问题。关于这一点,我在国外的软件工程社区也在尝试做一点交流,总的来说,很难找到对这个问题有真正感觉的人,即使个别已经熟悉有限模型论与关系模型方面进展的人,似乎也表现得缺乏一些基本的宏观视图。
此外,可留意一下模型论语义学和本体方面(与模型论应用有关)的研究。我的着眼点和层次与你的工作有些不同,我会从更宏观,以及“应用架构”的角度切入,最近正在准备在博客上做一些更具体的讨论,希望有机会多与你交流!
理解你的计划的艰巨和意义,相信这是一个卓越的尝试,等着看你的结果:-)
-------------------------------------------------------------------
还有,你说的第五层……我不敢说理解了多少,但我认为,我们只需要找到眼前的构建性的原则,和一些整体的原则,然后由最基础的层次(已经有了:图灵机)开始,一个层次一个层次地构造,其实,后面的层次具体是什么样,我们很难甚至也不必太早知道……这也是我的构建的哲学。
-------------------------------------------------------------------
好,希望多交流,的确非常难得,我英文很烂,而我的理论又涉及到一些分析哲学中的概念,就更难以交流了。还好现在以实际产品为成果,将来可以直接用代码解释。
我在英语世界中仅仅曾经把构思中的一个很小的语法特性发到LTU论坛上,结果有个家伙用我的两倍篇幅重新替我解释了一遍,最后评论道:
update: p.s.: it's a very subversive idea, too, in that it suggests a completely different approach to problem that ever-more-sophisticated type-theory-inspired systems are coming up with. A much simpler and yet plausibly more powerful approach.
这的确让我受到了很大的鼓舞。