- 浏览: 236588 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
李君寻:
内容挺好的,这是widget开发项目的大概框架吗?
Widget应用的基本组成 -
lliiqiang:
首先要有条件,算法只是提升系统而已。如果小范围变化基本可以尝试 ...
几个常用的检索排序算法的JavaScript实现 -
blessdyb:
aikki_gogh 写道最近正在研究canvas,求util ...
Canvas做游戏实践分享(十) -
aikki_gogh:
最近正在研究canvas,求utils.js和arrow.js ...
Canvas做游戏实践分享(十) -
Trinea:
请问你博客百度的广告怎么加的,不会是手动每天文章添加js吧
HTML5 WebGame开源工具之impactjs
在网上看到过很多有关汉语和英语比较的文章,他们写的都很不错,并且列举了大量的事例来证明汉语或者英语是优秀的。不过,我想用计算机软件设计的观点,来
理性地分析汉语和英语的优缺点。经过分析,我可以断言:汉语是世界上唯一一种面向对象的高级语言。而以英语为首的其他语言,则属于密码型的索引语言。下面
通过问答的方式来解释这种观点,如有不妥之处,请大家指摘
一.什么是“对象”?
在计算机世界里,对象(Object)就是人们要进行研究的任何事物。小到螺丝钉,大到飞机,都可以被看成是对象,并且有具体的属性和操作。以“狗”为例:颜色、体重等是它的属性;而吃饭、撒娇、警卫等则是它的操作。
同样,对于语言来说,一个汉字或者一个单词也可以被看成对象。再次以“狗(dog)”为例: 发音和拼写可以被看成是属性,而它的定义 则可以被看成是操作。
二.什么是“面向对象”? 它有哪些主要特点?
面向对象主要是指程序的设计方法。它主要有三大特征:封装、继承、多态。
三.什么是封装?
在软件设计中,封装是指将接口与实现显式地分开,并对内部的实现提供保护(即掩藏实现细节)。封装防止了程序相互依赖性而带来的变动影响,是保证软件部件具有优良的模块性的基础,是面向对象设计的前提条件。
四.如何考察自然语言的封装性?
封装的两个特点就是:接口和实现分开 以及保护内部的实现。同样的道理,我们可以用下列四个标准来考察自然语言的封装性:
1.外形接口:所有词汇的外形是否是一致的。
2.定义接口:特定词汇的定义是否只有一个。
3.读音接口:特定词汇的读音是否只有一个。
4.拼写方法是否固定的。即不会随着场景的变化而变化。
五.汉语和英语具有封装性吗?
(1)首先来考察一下汉字。
1.汉字的外形接口:众所周知,所有汉字的外形都是四四方方的方形。
2.汉字的定义接口:大多数汉字的定义只有一个,当然也存在数量不多的多义字。
3. 汉
字的读音接口:绝大多数汉字的读音只有一个。当然也存在多音字(一般也是多义字),最典型的是“重”字,它有两个读音zhong和chong,前者是分量
大、主要的意思,后者是重复繁冗的意思。但是像这样的多音字数量很少,读音也最多只有两个,常见的多音多义字只有100多个。
4.汉字的拼写方法是否固定的,不会随着场景的变化而变化。虽然汉字有繁简之分,但是不可能在一段文章中同时出现繁简两种字体,因此姑且不论。
(2)再来看看英语:
1.英语单词的形状不是固定的,有短有长。短的有象“I”(我),只有一个字母;而长的有“pneumonoultramicroscopicsilicovolcanoconiosis”(矽肺病),总共有45个字母。
2.英语中的多义词太多了,比如我们熟悉的“book”,不仅有书和课本的意思,还有预订、登记、立案的意思。再如“man”,除了有人和男人的意思之外,还有操纵、配备人员的意思。
3.英语单词的读音会随着拼写的变化而变化。
4.英语单词的拼写方法不是固定的,会随着场景的变化而是变化。不仅字母有大小写、名词有复数形态,动词还也有让人头疼的时态变化。
复数形态的例子:“book”复数词是“books”,“man”复数词是“men”,拼写和读音都发生了变化。
动词时态的例子:
一般现在时: I do it every day.(我每天做这样的事)
一般过去时: I did it yesterday.(昨天我做了这件事)
一般将来时: I shall/will do it tomorrow.(明天我要做这件事)
现在进行时: I am doing it now.(现在我正在做这件事)
现在完成时: I have done it already.(我已把这件事做好了)
一个do需要do、did、doing、done这4种拼写方法来表达"做"的各种状态,而汉语仅仅加一些常用的副词就可以表达了。
结论:汉语是封装性的语言,但是并不完美,因为存在少量的多音字和多义字。而英语则完全没有封装性可言。
六.什么是继承?
在
程序设计中,继承是指子类自动享用父类的属性和方法,并可以追加新的属性和方法的一种机制。它是实现代码共享的重要手段,可以使软件更具有开放性、可扩充
性,这是信息组织与分类的行之有效的方法,这也是面向对象的主要优点之一。继承又分为单重继承和多重继承。单重继承是指子类只能继承一个父类的属性和操
作;而多重继承是指子类可以继承了多个父类的属性和操作。熟悉IT的人都知道,Java是一种单重继承语言,而C++是一种多重继承语言。
想提醒的是,在计算机语言中,具有相同或相似性质的对象的抽象就是类。也就是说,对象的抽象是类,类的具体化就是对象。类是可以继承的,对象是不能被继承的。但是自然语言中并没有类的概念,为了说明的方便,下面的解说中使用了对象继承的说法,请计算机专家们谅解。
七.如何考察自然语言的继承性?
只有一个标准:是否大规模地存在“字造字”、“词生词”的现象。
八.汉语和英语具有继承性吗?
(1) 首
先说说汉字,汉字的一大特点就是形音字众多,形音字具有“意音双表”的功能。举一个简单的例子:围、圆、园、圈。这4个字的外围都是“口”字,是用来表意
的;而中间的韦、员、元、卷则是用来表音的。用软件设计的观点来看,这就是单重继承,被继承的是“意”,而“音”则是它们各自的特征。
除了单重继承之外,汉语里也存在大量的多重继承,这就是词组。“词组”本来的定义是:由多个汉字所组合而成的语法单位。但是,从程序员的角度来看,“词组”的定义是:从多个对象继承而来的新对象。
下面例子分别标注了词组分解前后的汉英解释。可以一目了然地发现,无论是拼写或是定义,词组都是对汉字的完美继承,而英语则毫无瓜葛。
飞机(plane) = 会飞行(flight)的机器(machine)
工人(worker) = 在工厂(factory)工作的人(man)
解放(liberate) = 解开(unlatch)后释放(release)
计算机(computer) = 能计算(calculate)的机器(machine)
(2)英语也有继承,那就是复合词。比如:
football 足球
handwriting 书法
breakwater 防浪堤
或许是因为单词长度限制(即缺乏封装性)的原因,它们数量很少,所占的比例极低。对中国人来说有点难以理解的是,很多应该是复合词的单词,却被不相干的词汇所代替,比如:
猪 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
十月 October
十一月 November
十二月 December
汉语是用数字加上“月”表达月份,而英语却使用12个完全没有共同特征的单词来表达月份。
结论:汉语具有完美的继承特征。英语从总体上来说,还不能被称为具有继承性的语言。
九.什么是多态?
多态是指相同操作接口的方法 在不同的对象中调用可以实现的不同结果。多态和继承是对同一现象的不同描述,继承是强调对象的共同特点,而多态则是强调对象的灵活性。继承是设计层次上的概念,而多态是继承在运行时的表现。
十.如何考察自然语言的多态性?
我们已经知道:多态的前提条件是继承;好处是可以在运行时强调对象的灵活性。具体到自然语言,我们可以这样理解:多态性的词汇可以在相互交流的时候,增加理解的灵活性。具体做法就是在交流的时候,仅仅使用一些概念性的词汇,让不同的听众或读者有不同的解读。
所以,衡量自然语言是否具有多态性的指标是:
1.是否大量存在能表达概念性的词汇。
2.这些概念性的词汇是 被具体的词汇所继承。强调继承的原因有两点:一是因为多态性的定义,另外一个原因是它可以增加由虚到实、由概念到具体的联想速度。
十一.汉语和英语具有多态性吗?
(1)汉语的多态性无处不在,主要表现在两个方面:一是有很多的被继承的、能表达概念性的词汇,另外一个就是汉语拼音。
首
先说说被继承的概念词汇,它们主要在口语中被使用。比如:“我要坐车去上海”。这里的车(car,vehicle)是一个概念性的词汇,具体是哪一种车,
则根据听众的不同而不同,可能是汽车(car)、出租车(taxi)、公共汽车(bus)、火车(train)等等。与英语不同,汉语的“车”字是被继承
的,所以人们会很快地联想到汽车、出租车、公共汽车等词组。而使用英语的人们则需要从记忆中搜索(而不是联想)与车相关的交通工具。类似“车”的词汇在汉
语里有很多,再比如:“去商场买一点肉”。这里的肉(meat)有可能是猪肉(pork),也有可能是牛肉(beef),或者是鸡肉 (chicken)
等等。
再说说汉语拼音的多态性,汉语拼音有4个音调,在没有标注音调时候,需要根据上下文的理解来决定是哪一个音调。比
如 zhong guo的音调应该是zhōng guó。 即使是在标注音调场合,也需要根据理解来决定是哪一个汉字。再比如zhōng guó的汉字应
该是“中国”,而不是“忠帼”。
由此我们也可以看出来:多态一方面可以降低了交流的准确性、另一方面也提高了说话的灵活性和信息量。
(2)英语虽然也有大量类似vehicle、meat的概念词汇,但是却没有被广泛地继承。另外想提醒的是:英语的时态不是的多态性的表现。原因在于:
1.英语时态的主体是动词(即动作),它强调了动作执行状态的不同(没做、正在做、做完了),而不是执行结果的不同。
2.多态是指具有相同特征,但是因为对象不同而导致结果不同。它强调是执行结果的不同。
因此说时态不是多态。以软件设计的观点来看,如果对象的状态发生了变化,就必须更换成另外一个对象,这是一件不可想象的事情,会导致对象无限增多从而失控。
结论:汉语具有多态性,而英语并不具备。但是多态对于语言来说,可能没有太多的作用
发表评论
-
商务英语
2011-02-27 19:15 1552英文Email,第一段該寫什麼? 1. I am wri ... -
清华大学中国创业者训练营课程录像
2011-02-20 22:32 1140... -
[转]情侣相处最佳模式
2010-11-18 00:00 1131今年,我和老婆已 ... -
while(time){ love=true; }
2010-11-08 00:37 2000看到twitter上有一个while(time ... -
原来英文也可以写得那么凄美
2010-10-11 21:21 12391。如果只是遇见,不能停留,不如不遇见。 If we ca ... -
【转】明年你还爱我吗?
2010-10-02 02:09 1187当年刘烨这样说: 我 ... -
哈佛商学院和斯坦福要求学生必看的20部电影
2010-07-30 08:13 1153在复杂的商业社会,你想创业,不懂经济,不懂商业,不懂人情世故, ... -
如果还在一起【转】
2010-07-26 00:06 859如果当我24岁 时, 我们还在一起 ... -
[转] 管理学中的各种理论
2010-07-13 19:57 2833【蝴蝶效应】【青蛙现象】【鳄鱼法则】 【鲇鱼效应 ... -
【转】我想要那么一个人
2010-07-12 23:03 2072我想要那么一个人 他 ... -
[转]最悲哀的一种分手
2010-06-16 09:07 866最悲哀的一种分手, ... -
Browser queue wait time
2010-05-29 20:58 1188There can be multiple reasons f ... -
爱若卑微,就算了
2010-05-15 04:31 1678我们顾着爱,顾着提供所有放弃自我,顾着痴痴等待默 ... -
哀莫大于心不死
2010-05-12 22:05 1478本山大叔说“一个人最大的悲哀是人活着,钱没了” ... -
Dota与恋爱
2010-01-22 10:56 1276初恋就像是林肯法球 ... -
那一年,我们高三
2009-12-05 22:02 1014记忆刻满了伤痕,带着血迹的我向青春诉说我的高三往事,时间 ... -
中国饭局里的潜规则
2009-07-29 14:30 9561 —— 座次总的来讲,座次是“尚左尊东”、“面朝大门为尊 ... -
《遇见》
2009-07-10 12:35 926人的一生要遇到的四个人:第一个是自己,第二个是你最爱的人,第三 ... -
未来五年程序员应当具备的十项技能
2009-04-09 13:48 897当前的经济形势下,很多程序员将目光聚焦在短期内的工作 ...
相关推荐
按照其程序设计的出发点和方式不同,高级语言分为了面向过程的语言和面向对象的语言,如Fortran语言、C语言、汉语程序设计语言等都是面向过程的语言;而以C++、Smalltalk等为代表的面向对象的语言与面向过程语言有着...
按照其程序设计的出发点和方式不同,高级语言分为了面向过程的语言和面向对象的语言,如Fortran语言、C语言、汉语程序设计语言等都是面向过程的语言;而以C++、Smalltalk等为代表的面向对象的语言与面向过程语言有着...
e语言,全称为“易语言”,是中国本土设计的一种面向对象的、易学易用的编程语言,它以简洁明了的汉语语法为特色,旨在降低编程的门槛,让普通用户也能进行程序开发。另一方面,MASM(Microsoft Macro Assembler)是...
它不仅教会学生如何使用编程语言解决问题,更是为后续深入学习各种特定领域编程技术,如面向对象编程、Windows程序设计、Java程序设计等奠定基础。掌握高级语言程序设计的能力,意味着具备了理解和适应各种编程环境...
C++是一种广泛使用的编程语言,以其灵活性、性能和面向对象特性而闻名。它不仅支持过程化编程,还支持面向对象编程以及泛型编程。在"命令"这一主题下,我们通常指的是C++中的语句、函数调用以及编译和执行程序的相关...
综上所述,程序设计语言的发展是一个持续进化的过程,从简单的机器语言到高度抽象化的高级语言,每一步都反映了人类对技术进步的不懈追求。未来,随着新技术的应用和发展,程序设计语言将继续朝着更加智能化、人性化...
4. **程序设计语言的范型**:主要分为命令式(如C)、面向对象(如Java)、函数式(如Haskell)和逻辑型(如Prolog)四种范型,每种都有其独特的编程思想和应用场景。 5. **语言虚拟机**:如Java虚拟机(JVM),它...
C++是一种通用的、面向对象的编程语言,由Bjarne Stroustrup于1983年在C语言的基础上发展起来,旨在提供更高效、更灵活的编程能力。C++不仅保留了C语言的效率,还引入了类、模板、命名空间等面向对象的特性,使其...
高级语言: Python是一种高级编程语言,提供了自动内存管理(垃圾回收)等功能,减轻了程序员的负担,同时具有动态类型和面向对象的特性。 跨平台性: Python具有很好的跨平台性,可以在多个操作系统上运行,包括...
在计算机语言发展的过程中,存在一些重要的特性,例如:简单性、面向对象、安全性、平台无关性等。这些特性都是计算机语言发展的方向和目标。 最后,汉语在计算机语言发展中的地位也非常重要。计算机自硬件到软件都...
根据提供的信息,“Python参考手册 汉语版”是一本旨在帮助读者深入理解和掌握Python编程语言的书籍。作为“图灵设计丛书”的一部分,这本书在第四版中进行了更新和完善,并由人民邮电出版社出版发行。这表明该书是...
- **定义**:一种抽象的计算模型,位于硬件和操作系统之上,负责执行高级语言编写的程序。 - **作用**:通过虚拟机可以屏蔽不同硬件平台之间的差异,实现跨平台运行。 ### 计算机执行高级语言程序的途径及其区别 -...
1. **面向对象编程**:C++是面向对象的语言,它支持类、对象、封装、继承和多态等核心概念。通过创建类来定义数据结构和操作这些数据的方法,实现代码的模块化和重用。 2. **模板**:C++的模板允许我们编写泛型代码...
1. **系统架构**:考虑到Windows程序设计的特点,即基于消息驱动和面向对象的编程模式,汉语TTS系统可以设计为一个包含多个窗口对象的应用程序。每个窗口对象负责特定的功能,如文本输入、参数设置、语音输出等。 2....
易语言是一种专为中国人设计的、简单易学的编程语言,它的全称是“简易编程语言”。EMS(Easy Maintenance System)则是易语言的一个扩展或组件,旨在提供更高效、便捷的程序开发和维护功能。本资源包含的是易语言...
C++是一种强大的、通用的编程语言,它结合了低级编程的效率和高级编程的抽象能力。"面向过程C++双语教学"的目标是为教师提供一套有效的教学资源,帮助他们将这一复杂的主题用两种语言进行讲解,以便于不同语言背景的...
易语言,又称E语言,是中国自主研发的一种面向对象的、以汉字作为编程语句的编程语言,旨在降低编程难度,让更多人能够参与到编程世界中。本教程共分为10个章节,涵盖了易语言的基础知识、核心概念、编程技巧以及...
面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。( √) 7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。(×) 8. 软件工具的作用是为了延长软件产品的寿命。(×) 9. ...
而易语言则是一种高级的、面向对象的汉语编程语言,旨在降低编程难度,提高编程效率。 该生成器的核心功能包括: 1. **汇编转换**:这个工具的主要任务是将易语言的源代码转换成汇编代码,这使得程序员可以深入...