主题:【讨论】龙芯什么时候能配上中文计算机语言编译的源程序? -- 唵啊吽
函数式和命令式的差别,不仅是计算的角度,也是表达的角度,因为两者中“值”的地位不同,导致接口的不同,从而必然影响大框架的思路,比如用函数式语言基本就不会去玩值驱动。
回到主题,我说思维的转变,主要是是强调主流(命令式)编程语言和任何自然语言都有的主要鸿沟在哪里,入门阶段在这个门槛面前,自然语言之间的结构差异微不足道。
表达形式很重要,但是入门阶段并不是当务之急,因为对代码的可阅读性,可理解性,各种思路差异的理解,在有几万行实践积累之后比较容易说明白,我试过给一开始就给人讲模块化方法,人家因为程序不上一百行,根本体会不到重要性。
说完入门,我说一下我从工程考虑,为什么认定编程语言会和自然语言相差至远,同时回答为什么我认为刚才有人提及的Intentional Programing也走不了太远,以修改代码为啥没被推开为例:
修改AST和冯诺依曼机初始的运行时修改代码实际是同构的,lisp的eval也做过类似尝试,他们很容易实现,但是因为对所有有时间有成本限制项目来说,可调式 可预测 可靠性比表达力都更要命,修改指令序列或者求值树带来的行为分支太大,因为既然代码可以改变,那么白盒测试的范围就无法确定,这造成范围不可控而让人不敢尝试,这些造成eval和冯诺依曼机原型没有被广泛接受。
修改代码,还算是理论上说的清楚,而因为实践中调试量过大难以实现,那么直接使用自然语言,其行为范围恐怕现在理论上都覆盖不了,谈何广泛应用(人工智能研究例外)。
结论:计算机语言不是自然语言的延伸,而是数学表达式和工业原则碰撞的结果。从图灵开始的数学研究奠定其方法集合,工业原则和调试成本剔除了某些方法,而接近自然语言的语法,无法通过工程原则检验。以后这些语言就算应用,也必然是作为嵌入语言,在传统的命令式或函数式的宿主语言控制下解决特定问题。
- 相关回复 上下关系8
压缩 2 层
🙂白马非马的本义到底是指什么呢? 2 假设 字891 2011-12-02 06:23:42
🙂现有计算机语言对任何语言都差不多 5 熊起 字1242 2011-11-25 01:10:19
🙂不太明白您到底想说什么 4 假设 字1125 2011-11-25 02:05:32
🙂我再总结一下
🙂有点明白了 5 假设 字455 2011-11-25 05:10:56
🙂多谢 刚查了一下,Internal PG理解错了 熊起 字578 2011-11-25 05:41:09
🙂汉字在计算机逻辑上问题很大 2 nick71 字700 2011-11-24 08:16:33
🙂这逻辑同样适用于英语,而且英语表现更糟 黑传说 字164 2011-12-01 07:33:32