英语的汉化及C++ 汉语语法与印-欧语系的所有语言的语法以及貌似相近的日语的语法相比有什么特点 呢?简言之,最大的特点在于汉语是用语序和功能词,如介词,副词等等,来实现语法功 能的。汉语中不存在“格”和词尾变化。而其它语言都非常依赖于“格”和词尾变化来实 现语法功能。从这个意义上讲,世界上只有两种语言:汉语(及其附属分支)以及其它语 言。
有趣的是英语恐怕是汉语语系外最接近汉语语法的语言了。现代英语也是主要依赖于 语序和功能词来实现语法功能。与欧洲的其它语言相比,英语的“格”和词尾变化少得多 】 了。早期的英语并不是这样。移居英伦岛的Angles,Saxons和Jutes三 部落本来说的是一种(或三种)德语。英语的历史从公元600年开始。在那以前是史前 时期。从公元600年至公元1100年被称为旧英语(Old English)时期 。那时的英语实际上就是德语,具有许多格和词尾变化。譬如,数的区分包括三种,除单 数,复数外,还有双数。名词有四种格三种性别,形容词有五种格,动词有十二种形态。 旧英语的语序也远较现代英语随便。而现代英语中,名词只有两种格,名词的性别已不存 在了,形容词的格也不存在了,动词只有四种形态。英语的变化在旧英语时期就已开始了 ,而在随后的中期英语时期更为显著。
从公元1100年至公元1450年被称为中期英语(Middle Englis h)时期。这个时期的重大事件是诺曼入侵(Norman Conquest)。说法 语的征服者统治英伦达三百余年,引起英伦上流社会一片媚法之风。使用法语成为时髦, 甚至连名字都取成法式的了。然而,大量的草根百姓既无媚法的必要,也无媚法的本钱, 】 仍然照说英语不误。因此,尽管有三百年的法语统治,英语并未被同化成法语。法人退走 后,仅留下了许多原本是法语的词汇,而英语的语法丝毫未被法语化。然而,英语的语法 在这个时期确实发生了巨大的变化,从而使得英语脱离了德语的根源。变化后的英语与旧 英语相比,“格”及词尾变化大大减少了,而更多地依赖于语序及功能词了。我们知道, 法语德语都大量使用“格”及词尾变化。英语竟能在德语法语前后包围的历史环境下朝着 与德语法语不同的方向发展,其原因非常值得研究。但是,不论是出于什么原因,英语的 变化使得英语的语法非常接近汉语了。英语在这个时期的变化可以说是个汉化的过程。英 语实际上是由德语汉化而成的。
这个汉化的过程在随后的早期现代英语(Early Modern Englis h)时期(公元1400年至公元1600)进一步扩展到发音方面。主要的变化是词尾 的“e”不再发音。譬如,现代英语中的name发[neim],而以前却是发[ne imi]。也就是说,原来的双音节词变成单音节词了。而单音节正是汉字发音的特点。 】 因此,英语发音这样的变化也可以说是汉化。
关于英语在中期英语时期的变化,西方自然不肯用汉化的说法。至于变化的原因,西 方的历史学家都含糊地归之为受诺曼入侵的影响。关于这一点,本文已说明了,在逻辑上 并不合理,因为英语的变化并不是朝着法语的方向。何况英语语法的变化在旧英语时期就 已开始了。既然如此,那么英语的实际上的汉化的过程是怎样开始的呢?本文提出两个假 说来试图解释英语变化的原因。
第一种假说是,英语的变化是在汉语的直接影响下发生的。英人的文明始于公元60 0年。中国那时是唐朝,正是丝绸之路交通流量的高峰时期。通过丝绸之路输出的绝不可 能仅仅是丝绸之类,必定也包括了汉语书籍,教学方法,甚至教师。而在盛唐的百余年间 ,来华留学而学成回国的也必定不在少数。这类文化输出很可能有一部份到达了英伦岛, 在随后的时间里导致了英语的汉化。若有人问,距离中国更近的德法等何以未受影响而汉 】 化,反而在更远的英伦发生了汉化。其原因也许与英人是一群岛民有关。海岛空间有限人 数不多,语言的变化易于被全体岛民所了解,所接受,从而形成公认的新的语言规则。因 此,岛民的语言易变。而要在人数众多,地域广阔的大陆形成公认的新的语言规则显然困 难得多,因此,语言变化相对缓慢。东方的岛国日本受中华文明的影响而采用了汉字,可 能也有海岛地理环境作用。结果是东边岛民从中国输入了汉字但保留了与汉语不同的语法 ;而西边的岛民却从中国输入了汉语语法而维持其文字。这两者实在有同工异曲之妙。
两岛民的语言都只汉化了一半是语言演化的正常过程。语言演化必定只能循序渐进。 若情况允许,两岛民语言的汉化也许会继续进行下去。然而产生这样的结果的条件在历史 上并不存在。一是交通困难。东边的岛民受大海阻隔。唐朝时,鉴真发愿东渡,一再失败 ,直到第七次才到达日本。由此可见旅途的艰险。英伦海峡狭窄,渡海不难。但从中华至 英伦,万里迢迢。一路上盗匪横行,豺狼出没,犹如《西游记》所描写的那样,旅途更艰 险。另一方面是唐朝的衰败。盛唐不过百余年而已。从那以后,中国社会日益衰落,再也 】 不具有对外输出文化的能力,直至清朝。清政府对中华民族的发展有重大贡献,更将疆土 拓展到与盛唐相比有过之而无不及的程度,终于在世界进入现代社会的前夕为中华各民族 留下了一个较大的生存空间,使中华文明不至于被消灭。尽管如此,中国的文化优势却仍 未能恢复。设想盛唐能维持三百年的话,日语也许会被完全汉化。英人相距较远,也许需 要五百年的盛唐,不断地将汉语书籍输往英伦,才能使英语完全汉化。
本文解释英语汉化的另一种假说是:英语的汉化并不是受到汉语的影响而发生的,而 是英语自我演化的结果。英语在那样的历史社会环境下,竟然会朝汉语的方向演变,只能 解释为是由于汉语语法较之德法等语言更符合人类的思维方式,适应性好,表达能力强, 效率高所致。
不论原因是什么,英语的汉化是个历史事实。然而,英语语法的汉化仍不完全。现代 英语仍残留了一些旧英语的词尾变化。本文在这里举几个例子来说明这些残留的旧语法所 】 造成的表达上的困难。譬如,你听到窗外树上有鸟叫。你可以用汉语作这样一个表达:“ 树上有鸟。”这在汉语,是一个明确,完整的表达。可是,若用英语来表达这件事就麻烦 啦。英语只有用“There is a bird on the tree”或者“ There are birds on the tree”。不论用那个说法,都必 须先把树上究竟是只有一只鸟还是有一只以上的鸟弄清楚。如果这个信息对你很重要的话 ,那么,不妨先去把鸟数一下然后再说话,也就罢了。可是,在绝大多数场合,我们并不 关心鸟的具体数目,这类信息即使弄清楚了也没有表达出来的必要,何况还有弄不清楚的 时候。并且,如果窗外的树不止一棵,那么,就英语而言,除了有“There are birds on the tree”外,还有“There are birds on the trees”的可能。你想要不把话说错,不但要把鸟数清楚,还要弄 清楚这些鸟是停在同一棵树上还是分停在不同的树上。真累!问题的根源正在于英语中残 留的词尾变化。由此可见汉语语法的优越。那种词尾变化表面上显得有助于精确表达,而 实际上,这种词尾变化越多,语言的效率就越低。 】
真是令人遗憾盛唐的时间不够长。否则英语再多汉化几分,那么,上例中所暴露出来 的问题也就不存在了。进一步汉化后的英语将会是这样:当我们知道树上有鸟但是数目不 详或无意表达数目时,可用“There be bird on the tree” 。当我们知道树上只有一只鸟并且也想告诉他人只有一只鸟时,可用“There be a bird on the tree”。当我们知道树上有一只以上的鸟并且也想 告诉他人有关鸟的数量时,可用“There be two bird on the tree”,“There be three bird on the tree ”或“There be some (many etc.) bird on th e tree”。将英语中与数有关的词尾变化取消后,丝毫不妨碍英语的表达能力。可 见这些词尾的变化是不必要的,至少是弊远大于利的。
一般而言,英语(以及德法等语言)在作具体事物的描述时是没有大问题的,但是在 】 作抽象描述时非常困难。除受上例中的“数”的困扰外,也同样受“时态”的困扰,甚至 受“性”的困扰(如德法等语言)。要给一件抽象的事选择一个合适的“时态”,给一个 抽象的物确定其正确的“性别”,在逻辑上都是很困难的事。由此可以推论,汉语语法有 助于抽象思维。而抽象思维不但体现在科学方面,还更多地体现在艺术方面。
汉语不因数或时态等等而作词尾变化,用C++(一种计算机语言)的概念来讲,实 际上就是一种重载(Overload)。重载是C++的两大主要特点之一(另一个特 点是类(Class))。所谓重载就是一个函数或算符具有一个以上的不同含义,而计 算机根据执行函数或算符时的环境来确定其含义。这里的“环境”,在C++中,包括变 量的类型,个数,顺序等等。在本文先前提到的“树上有鸟”的例子中,这个“有”字, 当指一只鸟时,就相当于“is”;当指许多鸟时,就相当于“are”。若再包括时态 ,那么,“有”字实际上重载了4种含义,即“is”,“are”,“was”和“w ere”。这样的重载的好处和C++中的重载的好处是一样的,都使语言的适应性更强 】 ,效率更高。没有重载的计算机语言在调用函数前,必须将变量的类型,个数一一查明以 便调用所对应的函数。与此类似,未重载的英语必须先把鸟数清楚后才能造出逻辑和语法 都正确的句子来。而重载的汉语不必预先数鸟就能造出正确的句子来。这正是汉语语法优 越的地方。C++中的重载是狭义的,而人们的语言包含更广义的重载,因为上面所述的 “环境”在人类语言中远较C++中的多样化。可以这样认为:同样一句话在不同的时间 、场合、地点等等可能具有不同的含义,实际上就是广义的重载。正是因为有了重载,人 们的语言才显得生动、活泼、富有内涵。顺便提一下,C++的另一特点――类,其实也 正是汉语的特点。以英语看汉语的“是”确实属于重载(Overload)的。 汉语还有个好处就是面向对象。 金-所有金属的虚的祖先类 铁,铜,银等等都是由金派生的。所以看到金字旁就知道是金属 石-所有非金属的虚的祖先类 碳,碘,硒看到石字旁就知道是非金属 气-气体的虚的祖先类 等等 所以用汉语学习自然科学(包括物理、化学等等)最方便了。否则给你一个S(硫)。谁知道是什么东西呢。 还有中国的一些哲学思想也和计算机有关 道家认为世界都是由阴阳两种东西构成的。按不同组合可以构成万物。这不就是现在的二进制么,计算机里面的世界在复杂也是由二进制数构成的 道家还说道生一,一生二,二生三,三生万物。比较符合现代计算机语言的单根继承。一二三都是虚的祖先类。比较新的语言例如 Delphi、Java、.Net都是单根继承的。