中语言计算技术研究与发展联盟
舒生羽 wzyorg@gmail.com
泛指的基本意义在于使用多个名字来实现指称,并且提供了这些名字的组合,而是是带有计算的组合。我们通过对泛指的分析,深刻的认识到汉语中指称所存在的内在结构。
事实上,结构在思维和计算中无处不在。如果我们分析这种组合形式的指称方式,那么就会发现在这些有着修饰和限定辞的,参数形式的泛指佐数也是带有结构的,因此我们应该在语言中明确表达这一点。然而在通常的C++的模板方式的模板佐数册子是一个线性的序列,直观上并无结构。当然事实上,通过使用模板类来嵌套模板的方式能够实现一定的结构,但这会变得复杂而不便。
为此中语言提供了多维泛指的概念来扩展泛指的概念。多维泛指其实也就是在泛指佐数里面引入一个维度概念,使得泛指佐数从一个一维线性结构变成一个二维平面结构。
它的形式大致如下:
<%参数册子%>-[维名]…. <%参数册子%>-[维名]泛指名字
在这样的结构下,我们会让程序变得出人意料的富有表达力。首先在可读性可以增加许多,而且几乎通常的汉语都程序了。比如
<我>-爱(你);
<我>-[很]爱(你);
<我>-[跟]<他>-[都]爱(你);
当然要使这种形式在实际的编程工作中发挥巨大的效用,我们还需要对程序的基础数据结构和算法方面作些深入研究。然而,这的确带来表达上的根本进步。我们将可以从中语言的华库(等价于C++的高级标准库,以GCC libstdc++v3.0为基础)和中语言内部的计算机代数系统上看到这一点。
这样形式的符号序列都将是有严格计算意义的程序。但在当前中语言的形式中,由于缺乏丰富的实践和重复的理论思考,以及其它经验上借鉴,维名的严格语义并没有正式定义。有兴趣的朋友可以参与进相关讨论。
下面是一个使用中语言多维泛指构造的示例程序。这里再次从公孙龙子的一篇文章---《坚白论》出发来构造出一个简单的例子程序。
下面是程序:
来 朴库.标准进出; 名{ <%质地: 元%>-[质]<%颜色: 元%>-[色] 石: 类= 公{ 价值: ()->(元)=(质地 * 7 + 颜色 * 3) * 10; }; } 道: ()->()= { 坚 :=定 88; 白 :=定 66; 玉石: <坚>-[质]<白>-[色]石; 打印文套("玉石价值几何?\n答曰:%d\n", 玉石.价值()); }
程序的执行结果如下:
官网文件参考:
http://zhongyuyan.org/ZStudy/超酷程序/多维泛指.html