中语言计算技术研究与发展联盟
舒生羽 wzyorg@gmail.com
中语言完全继承C++的物导向(object-oriented)编程范式。虽然如中语言的许多其它基础特征一样,在语义上是可直接映射到C++的对应构造的。但是中语言里面物类的定义和实物的构造方式在形式上与C++语言还是有着巨大差异的。中语言总是试图使用统一和简明的,同时也是尽可能熟悉和自然的形式来表达程序的意义。
中国人的观念里自古就有对于物和类的深刻理解。
古语云“物以类聚,人以群分”。所以我们常常可以看到古往今来许多的中国人有分门别类和列举条目的习惯。
在物导向的程序设计中,物的一个基本方面是其构造(constructor)和析构(destructor),这其实也正是是我们中国人生活中常言的生死存亡、得失有无那方面的事情。
在当前的计算机和编程模型里面,一个符号的物理状态所存在的位置,在物理机器或者其理论抽象里面是存在若干层次或者种类的。
比如众所周知的三个存储层次:
Register、Memory、 Disk
而在中语言的术语里面,分别用
筹、笺、簿
来表示。
而在实际的程序模型里面,笺内又有多种细分。主要是有:
Stack、 Static、Heap
在中语言的术语里面,这些的对应符号是:
窖、窝、堆。
这些概念的具体内容自然不必在此赘述。这里所要阐述的只是有关中语言里面物的生死的一个别致之处。
物的生死在程序里面有动态和静态之分。前者是在程序内通过计算动态决定生死是否发生的,.而后者的发生是存在某种可预见性的。
对于动态生死的物,其所存在的位置一般是所谓的堆,也就是一个动态变化存储片集合。这里主要有两种区分:一种是程序员只管生物而不管死物,这是JAVA语言的方式;另一种则是程序员既要管生物也要管死物的,这是C++语言的方式。
中语言按其设计支持两种方式。前者通过“天生”和“天死”(当然是不必要的)的方式来表示,而后者通过“地生”和“地死”来表示。而没有天地限定的则是某个类的范围内的方法。
中语言与C/C++一样支持地址及其计算。地址,在某种意义上,其实也就是物的一种标识。根据前面的分析,我们看到地址的真实概念是比较复杂的,我们其实应该在C/C++的地址上作出更加细致的区分,但这些都是应该去完成的东西。
使用‘天’、‘地’这样的字符来表示对应的概念,对于中国的文化而言还是相当合适的。因为天地在中国文化内自古就是万物的根源,而且天地总是具有最崇高位置。我们可以从许多词汇内就可看到这一点,比如“敬天敬地”,“拜天拜地”,和“天不怕地不怕”等等。
下面给出是的使用中语言物类模型的例子。
来 朴库.标准进出; 道: ()->()= { 人: 类= 公{ 生: ()= { 打印文套("你好, 我来了。\n"); } 死: ()= { 打印文套("你好, 我走了。\n"); } 活着: ()->()= { 打印文套("我走南又闯北, 东奔也西跑, 踏遍这世界四方八面!\n"); } }; 我 := 地 生 人; 我..活着(); 地 死 我; }
程序的执行结果如下:
官网文件参考: