《对比英语日语汉语是世界上唯一一种面向对象的高级语言》由会员分享,可在线阅读,更多相关《对比英语日语汉语是世界上唯一一种面向对象的高级语言(11页珍藏版)》请在金锄头文库上搜索。
1、一.什么是“对象”?在计算机世界里,对象(Object)就是人们要进行研究的任何事物。小到螺丝钉,大到飞机,都可以被看成是对象,并且有具体的属性和操作。以“狗”为例:颜色、体重等是它的属性;而吃饭、撒娇、警卫等则是它的操作。同样,对于语言来说,一个汉字或者一个单词也可以被看成对象。再次以“狗(dog)”为例: 发音和拼写可以被看成是属性,而它的定义 则可以被看成是操作。二.什么是“面向对象”? 它有哪些主要特点?面向对象主要是指程序的设计方法。它主要有三大特征:封装、继承、多态。三.什么是封装?在软件设计中,封装是指将接口与实现显式地分开,并对内部的实现提供保护(即掩藏实现细节)。封装防止了程
2、序相互依赖性而带来的变动影响,是保证软件部件具有优良的模块性的基础,是面向对象设计的前提条件。四.如何考察自然语言的封装性?封装的两个特点就是:接口和实现分开 以及保护内部的实现。同样的道理,我们可以用下列四个标准来考察自然语言的封装性:1.外形接口:所有词汇的外形是否是一致的。2.定义接口:特定词汇的定义是否只有一个。3.读音接口:特定词汇的读音是否只有一个。4.拼写方法是固定的,即不会随着场景的变化而变化。五.汉语和英语具有封装性吗?(1)首先来考察一下汉字。1.汉字的外形接口:众所周知,所有汉字的外形都是四四方方的方形。2.汉字的定义接口:大多数汉字的定义只有一个,当然也存在数量不多的多
3、义字。3.汉字的读音接口:绝大多数汉字的读音只有一个。当然也存在多音字(一般也是多义字),最典型的是“重”字,它有两个读音 zhong 和 chong,前者是分量大、主要的意思,后者是重复繁冗的意思。但是像这样的多音字数量很少,读音也最多只有两个,常见的多音多义字只有 100 多个。4.汉字的拼写方法是否固定的,不会随着场景的变化而变化。虽然汉字有繁简之分,但是不可能在一段文章中同时出现繁简两种字体,因此姑且不论。(2)再来看看英语:1.英语单词的形状不是固定的,有短有长。短的有象“I”(我),只有一个字母;而长的有“pneumonoultramicroscopicsilicovolcanoc
4、oniosis”(矽肺病),总共有 45 个字母。2.英语中的多义词太多了,比如我们熟悉的“book”,不仅有书和课本的意思,还有预订、登记、立案的意思。再如“man”,除了有人和男人的意思之外,还有操纵、配备人员的意思。3.英语单词的读音会随着拼写的变化而变化。4.英语单词的拼写方法不是固定的,会随着场景的变化而是变化。不仅字母有大小写、名词有复数形态,动词还也有让人头疼的时态变化。复数形态的例子:“book”复数词是“books”,“man”复数词是“men”,拼写和读音都发生了变化。动词时态的例子:一般现在时: I do it every day.(我每天做这样的事)一般过去时: I d
5、id it yesterday.(昨天我做了这件事)一般将来时: I shall/will do it tomorrow.(明天我要做这件事)现在进行时: I am doing it now.(现在我正在做这件事)现在完成时: I have done it already.(我已把这件事做好了)一个 do 需要 do、did、doing、done 这 4 种拼写方法来表达做的各种状态,而汉语仅仅加一些常用的副词就可以表达了。结论:汉语是封装性的语言,但是并不完美,因为存在少量的多音字和多义字。而英语则完全没有封装性可言。六.什么是继承?在程序设计中,继承是指子类自动享用父类的属性和方法,并可以
6、追加新的属性和方法的一种机制。它是实现代码共享的重要手段,可以使软件更具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,这也是面向对象的主要优点之一。继承又分为单重继承和多重继承。单重继承是指子类只能继承一个父类的属性和操作;而多重继承是指子类可以继承了多个父类的属性和操作。熟悉 IT 的人都知道,Java 是一种单重继承语言,而 C+是一种多重继承语言。想提醒的是,在计算机语言中,具有相同或相似性质的对象的抽象就是类。也就是说,对象的抽象是类,类的具体化就是对象。类是可以继承的,对象是不能被继承的。但是自然语言中并没有类的概念,为了说明的方便,下面的解说中使用了对象继承的说法,请计算
7、机专家们谅解。七.如何考察自然语言的继承性?只有一个标准:是否大规模地存在“字造字”、“词生词”的现象。八.汉语和英语具有继承性吗?(1)首先说说汉字,汉字的一大特点就是形音字众多,形音字具有“意音双表”的功能。举一个简单的例子:围、圆、园、圈。这 4 个字的外围都是“口”字,是用来表意的;而中间的韦、员、元、卷则是用来表音的。用软件设计的观点来看,这就是单重继承,被继承的是“意”,而“音”则是它们各自的特征。除了单重继承之外,汉语里也存在大量的多重继承,这就是词组。“词组”本来的定义是:由多个汉字所组合而成的语法单位。但是,从程序员的角度来看,“词组”的定义是:从多个对象继承而来的新对象。下
8、面例子分别标注了词组分解前后的汉英解释。可以一目了然地发现,无论是拼写或是定义,词组都是对汉字的完美继承,而英语则毫无瓜葛。飞机(plane)= 会飞行(flight)的机器(machine)工人(worker) = 在工厂(factory)工作的人(man)解放(liberate) = 解开(unlatch)后释放(release)计算机(computer) = 能计算(calculate)的机器(machine)(2)英语也有继承,那就是复合词。比如:football 足球handwriting书法breakwater 防浪堤或许是因为单词长度限制(即缺乏封装性)的原因,它们数量很少,所占
9、的比例极低。对中国人来说有点难以理解的是,很多应该是复合词的单词,却被不相干的词汇所代替,比如:猪 pig 公猪 boar 母猪 sow 小猪 piglet猪肉 pork牛 cattle公牛 bull 母牛 cow 小牛 calf牛肉 beef羊 sheep 公羊 ram母羊 ewe 小羊 lamb羊肉 mutton汉语的话,只需要 7 个基本汉字:猪、牛、羊、公、母、小、肉,其它的都是组合而成的。而英语则需要记住 15 个没有任何关联的词汇。再比如:一月January二月February三月March四月April五月May六月June七月July八月August九月September十月O
10、ctober十一月November十二月December汉语是用数字加上“月”表达月份,而英语却使用 12 个完全没有共同特征的单词来表达月份。结论:汉语具有完美的继承特征。英语从总体上来说,还不能被称为具有继承性的语言。九.什么是多态?多态是指相同操作接口的方法 在不同的对象中调用可以实现的不同结果。多态和继承是对同一现象的不同描述,继承是强调对象的共同特点,而多态则是强调对象的灵活性。继承是设计层次上的概念,而多态是继承在运行时的表现。十.如何考察自然语言的多态性?我们已经知道:多态的前提条件是继承;好处是可以在运行时强调对象的灵活性。具体到自然语言,我们可以这样理解:多态性的词汇可以在相
11、互交流的时候,增加理解的灵活性。具体做法就是在交流的时候,仅仅使用一些概念性的词汇,让不同的听众或读者有不同的解读。所以,衡量自然语言是否具有多态性的指标是:1.是否大量存在能表达概念性的词汇。2.这些概念性的词汇是 被具体的词汇所继承。强调继承的原因有两点:一是因为多态性的定义,另外一个原因是它可以增加由虚到实、由概念到具体的联想速度。十一.汉语和英语具有多态性吗?(1)汉语的多态性无处不在,主要表现在两个方面:一是有很多的被继承的、能表达概念性的词汇,另外一个就是汉语拼音。首先说说被继承的概念词汇,它们主要在口语中被使用。比如:“我要坐车去上海”。这里的车(car,vehicle)是一个概
12、念性的词汇,具体是哪一种车,则根据听众的不同而不同,可能是汽车(car)、出租车(taxi)、公共汽车(bus)、火车(train)等等。与英语不同,汉语的“车”字是被继承的,所以人们会很快地联想到汽车、出租车、公共汽车等词组。而使用英语的人们则需要从记忆中搜索(而不是联想)与车相关的交通工具。类似“车”的词汇在汉语里有很多,再比如:“去商场买一点肉”。这里的肉(meat)有可能是猪肉(pork),也有可能是牛肉(beef),或者是鸡肉(chicken)等等。再说说汉语拼音的多态性,汉语拼音有 4 个音调,在没有标注音调时候,需要根据上下文的理解来决定是哪一个音调。比如 zhong guo 的
13、音调应该是 zhng gu。 即使是在标注音调场合,也需要根据理解来决定是哪一个汉字。再比如 zhng gu 的汉字应该是“中国”,而不是“忠帼”。由此我们也可以看出来:多态一方面可以降低了交流的准确性、另一方面也提高了说话的灵活性和信息量。(2)英语虽然也有大量类似 vehicle、meat 的概念词汇,但是却没有被广泛地继承。另外想提醒的是:英语的时态不是的多态性的表现。原因在于:1.英语时态的主体是动词(即动作),它强调了动作执行状态的不同(没做、正在做、做完了),而不是执行结果的不同。2.多态是指具有相同特征,但是因为对象不同而导致结果不同。它强调是执行结果的不同。因此说时态不是多态。
14、以软件设计的观点来看,如果对象的状态发生了变化,就必须更换成另外一个对象,这是一件不可想象的事情,会导致对象无限增多从而失控。结论:汉语具有多态性,而英语并不具备。但是多态对于语言来说,可能没有太多的作用。十二.面向对象能解决什么问题?传统的软件开发方法存在下面 3 个问题:可维护性差、重用性差、不能满足用户不断变化的需要。为了解决这三个问题,面向对象概念被逐步推广和应用。同样地,与汉语相比英语也存在 3 个类似的问题:1.很容易出错。由于英语没有被封装,再加上语法众多,诸如:动词时态、复数形态、虚拟语气等等,导致单词不断的变换,让人无所适从。2.重用性差。原因不用多说,就是因为它没有继承性,
15、导致单词量庞大。相比而言,汉字的重复利用率非常高。毛泽东选集共 5 卷,但是只用了不到 3000 不同的汉字。3.不能满足现代知识爆炸的需求。对待新生事物,英语会使用一个只有专业人士才懂的新单词,而汉语会根据主要的特征来组合汉字,可以让非专业的人们也能理解。比如:四环素acheomycin变阻器rheostat肾结石nephrolith七边形heptagon长方体cuboid而面向对象的汉语就不存在上述三大问题。十三.为什么说汉语是高级的?首先要指出的是,高级并不意味着高效。就像绝大多数程序员喜欢使用 Java 和 C+,而不是机器语言和汇编语言一样。虽然机器语言和汇编语言执行速度很快,但是它
16、们和人类的思维并不接近,不能适应大规模、快速、高质量的软件开发。正因为汉语具备面向对象的特征,所以说汉语的高级之处在于容错性强、通用性强、扩充性强、语句简短、便于信息的交流、能让人们快速地学习新知识。十四.日语也是面向对象的语言吗?日语有两种文字组成:假名和汉字。假名是字母语言,它包括平假名和片假名,就像英语的大小写一样,它不具备面向对象的三大特征。而汉字的读音又分为音读和训读。音读和中文的发音相似,训读则完全不一样。比如“有”的音读是 yu,训读是 u 和 aru。日本的前首相麻生太郎就在这上面栽过跟头,他曾经把“未曾有”读成 mizoyu,正确的读音应该是 mizou,结果让媒体狠狠地涮了一顿,一度被讥讽为“未曾有首相”。因为音读汉字的读音以及用法 基本和中文相似,所以可以说它是面向对象的语言(现代汉语中词组,有一大半都是从日本引进的)。