强烈的希望用中文编程,这与民族热情无关。而是我认为,用母语编程应该成为潮流,外国人或许也希望能用英语编程。现有的编程语言,多数是类似于英语的,是类似而不是等于。几年前出于对类似于英文的编程语言的无奈,和民族热情,出现了易语言、习语言等中文编程语言。但是发展的都不太好,分析其原因,一是因为理论不行,在编译原理上没有突破,所以就被冠以“中文VB/汉化版C语言”的称号。二是因为实践不行,提供的库函数没有足够强大,导致败给了非国产的语言。其中易语言还和杀毒软件干上了,让人觉得惋惜。
采用母语编程,即接近自然语言编程,外国人也在研究这个,能听到的消息,差不多是在用人工智能的方法进行研究。如果研究成功,我们首先能有接近于英语的编程语言了。但什么时候能有中文编程,这还要等很长时间。
编译原理要有突破。例如文法的产生式,其数量不能太大,这是现有编译原理的局限。如果能给每一个句子都分配一个产生式,或许语言能接近自然语言。但是这样一来,LR分析法的状态数会急剧增加,为什么呢?原来LR分析法的状态数是M×N复杂度,M是句子的长度,N是句子的数量,当句子变长变多时,状态数急剧增加。
解决的办法有,用解释型分析法,就像编译/解释型计算机语言一样,原有的编译原理是编译型的,新的编译原理是解释型的。解释器看着文法的产生式,和句子,进行解释,以此完成分析任务。
解决的办法还有,用“公共命名空间”,这是防止命名空间混乱的。它是一张二维表,每一行代表一个句子,每一列代表一种方言,每个单元格里有同位素,另外还有冗余项。总结起来,公共命名空间=(句子 方言 同位素 冗余项)。