编程语言介绍._第1页
编程语言介绍._第2页
编程语言介绍._第3页
编程语言介绍._第4页
编程语言介绍._第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编程语言介绍 目录隐藏1开放源代码的必要性2各种语言的选择3各种语言的选择4我为什么选择了 Python5 Ruby和Python的比较 5. 1 Python和Ruby的相同点 5. 2和Python相比Ruby的优点 5. 3和Python相比Ruby的不足5. 4 Python和Ruby的语言的选择 6多脚本语言的大统一及疑问7 . NET介绍 7. 1 . NET所实现的Java的功能 7. 2 . NET未实现的Java功能7. 3 . NET实现的Java不具备的功能7. 4相对vs6的改进8 XML各种技术介绍9最先进的XML格式图形界面程序开发工具XUL10最接近人类语言的编程

2、语言REBOL 11最具有现代感的Lisp解释器DrScheme 12 eiffel语言印象13 mozart oz语言14各种语言的选择和语言之间的关系14. 1 一般是使用什么软件,就用什么软件的语言14. 2然后看处理什么样类型的数据14. 3从语言特点来说14. 4 C语言是最普及的语言,但 C语言有一些缺点,因此,就产生了很多改进 C 的语言 14. 5关于图形用户界面的选择14. 6 discuss 15文学编程和CWEB介绍 16贡献编辑开放源代码的必要性 在介绍编程语言之前,先说说开放源代码的必要性。现在,在软件生产领域存在巨大的智力浪费,大 家把大量的精力用在编写别人已经实现

3、的程序代码上。看看,文本编辑器有多少, 看看ftp程序有多少,看看字处理程序有多少,这些程序虽然有差别,但主要的功 能都是一样的。要实现个性化的功能,在已有的软件基础上修改会节省多少时间 呀!而每个程序各编一套,又浪费多少时间?如果,没有这些重复的工作量,世界 上的程序员至少可以节省80%的工作量。同时,开放源代码也方便了大家的交 流,阅读源代码应该是最直接最有效的学习途径,尤其是比较专业的领域。要开放源代码,下面几点比较重要:语言要流行。语言的函数和类库统一。语言的语法和编译器要统一。编译器是否开放源代码。API是否开放源代码。语言的可重用性、功能、友好性。语言统一:如果大家都用一种编程语言

4、,都用同样的函数,同样的类库,那么,大家的共同语言就会很 多。大家只要学会一种语言,一套函数,一套类库,就可以相互读懂源代码,这 样,学习量是最少的;但是语言统一根本是不可能的事,因为各种语言都有其特 色,如果取了其中一个优点,通常就会牺牲另一个优点。可是学习新的API浪费程序员大量的时间和精力,尤其是当这个 API有大量和其他API重复的功能的时 候。要增加代码的可重用性,要从下面几点着手:代码的可读性。如格式、是否接近英语语法和单词。代码的表达能力,也就是简单性,能用最少的语句和单词实现同样的功能。代码的结构性,如函数、模块、类。语言功能的强大从下面几点来说:是否拥有大量的库支持。这是最重

5、要的,要求编写任何功能的程序都有强大的库支持。语法功能是否强大,比如是否有出错处理。是否有指针。语言的友好性:语言包的大小,语言包越小,学习越简单。语言是否有友好的编辑调试环境。语言的可视化和集成编程环境。编辑各种语言的选择如果编写对性能要求苛刻,或和操作系统结合紧密的程序,必然选择 Co如果编写到处可用的程序,选 Jaw。如果编写大程序,可能的话尽量用脚本语言如Python、Ruby,不行了再用Java和C。因为脚本语言带来了生产力。编写文本的处理程序用Perl或Ruby。编写知识的处理程序用prolog。编写最灵活,最模糊的程序用 Lisp。 编写office程序用vba。编写服务器端程序

6、,PHP、(采用自己熟悉的语言来写,例如 Perl、Python、Ruby) CGI、ASP、(熟悉 Java就用)JSP都是选择。 编写数据库程序用vb、PowerBuiler或delphi。进行算法研究、设计,用Pasca。编辑各种语言的选择如果要追求性能和程序的能力,要完全发挥操作系统的能力,使用 C/C+语言是合适的。在 Windows环境下用VC,在 Unix like环境下用gcc。如果不是追求和操作系统完美结合,而只是性能,又要追求跨平台性,那么仍然选择 C,但可以选择跨平台的库,如 qt、gtk、fox、 wxWidgets。如果要编写游戏也有跨平台选择:SDL。如果不满意C领

7、域标准的不统一,不满意C的容易出错,不满意C的面向对象特征不彻底。如果不在乎 跨平台,Windows平台可以选择 C#,mac平台可以选择 Cocoa (Objective C)。 如果需要跨平台,可以选择Java。如果需要跨平台,又要广泛的支持的话,选择Java。在Unix like下,最方便的工具语言是 Perl,它有强大的社区和代码库的支持。如果只作为简单应用的工具语言,Python和Ruby是更好的选择,他们的跨平台移植性好,应用也比较广泛。其中Python更适合入门和交流,长期使用也不错。Ruby是对Python不满意的另一个选择,它提供了很多额外的功 能。如果要选择一个程序的嵌入语

8、言,原来有 Lisp、Basic和Java,现在还可以选择Python和Ruby。如果在要求动态解释执行语言,而又不想学其他语言的话,C程序员的选择是pike,Java程序员的选择是beanshel。在Java平台,又想用脚本语言的话,可以用Python。最正统的基于文档的语言或叫动态页面语言是JavaScript。最专门的服务器端语言是PHP,当然也有很多其他选择。XML语言以XUL为最着名,dtml也算一个,你自己也可以用 XML作为自己特殊 用途的语言。比如jedit就用XML作为一种模式定制语言。XML语言是一种比较 先进的趋势,比现有的语言在特殊领域更高效。要找容易实现的语言,Lis

9、p和Tcl是选择。Lisp的数据和程序融为一体的能力和自由是其他语言都没有的。现在出现了一个Lisp的现代化的变种:REBOL。如果有基于事实的编程的需要的话,prolog和Clips是必然。编辑我为什么选择了 Python 首先声明,我编程只编应用程序,就是代替自己工作的小程序。如果编写系统程序总会 用到C或Java的。我喜欢脚本语言,脚本语言不用编译就可以运行,非常便于修改,而编程序是一种经常性的活动,程序编完后总在不断的修改中,没必要搞 的很隆重,还要编译。另外,脚本程序每个使用的人都可以随手拿来修改,不会出 现还要去找源代码的情况。因此,C/C+和Java就被排除了。我喜欢简单的语言,

10、不喜欢为了编写简单的程序而去学习大量复杂的规定,需要大量的学习才 会的语言不是好语言,是把人当机器看。C/C+和Java都有严格但罗索的语法,有永远学不完的函数、类、库。让人看到就头大。而Perl有各种怪里怪气的速记符号,程序常常让人头晕。简单的含义除了容易学,还要功能丰富,常用到的东西 要早就准备好,不用每个人都去写同样的数据结构程序等。Python有丰富的数据类型,有完备的面向对象的结构,有规则表达式等各种方便编程的模块。这个逻辑 就是程序做的多,人做的就少,如果程序做的少,就要人做的多。这就是界面友好 的问题。容易上手,功能丰富是程序设计的很重要的目标,Windows就是靠这个流行的。而

11、Python也很好的体现了这点。而 Perl象Unix的emaCs之类其它工具一 样,功能强大,但太难学,太难懂。是比较违背人性的。关于性能。现在Cpu已经很强大了。除了很大的程序和系统程序,没必要关心性能。关于功能。如果不是编写系统程序和贴近系统的程序,没必要使用操作系统特别提供的功 能。C是可以干任何事情,但它编程效率低,复杂。至于我为什么不用vb,因为vb太庞大了。我没必要实现一个小功能启动这么庞大的程序。太夸张。另 外,vb没有类继承,虽然是应用编程,但如果要编稍微大的程序,总会用到类继 承的。Python得强大得扩展能力使对Python得学习不会浪费。Python经过简单得处理能使用

12、各种 得C和C 库,也可以被C和C 调用。Python可以直接使用Java得类,也 可以直接被Java调用。这样,对Python、Java C得学习和使用经验都不会被浪 费,还能相互补充。Python可以提高Java和C得编程效率,Java和C可以补充 Python功能上得不足。Python还可以和Tel直接交互,这种功能是内置得。期待 Python能简单的调用Perl和PHP得功能。能使用Lisp和prolog更好。编辑Ruby和Python的比较编辑Python和Ruby的相同点都强调语法简单,都具有更一般的表达方式。Python是缩进,Ruby是类Basic的表达。都大量减少 了符号。都

13、是动态数据类型。都是有丰富的数据结构。都具有C语言扩展能力,都具有可移植性,比Perl的可移植性更好。也都可以作为嵌入语言。 都是面向对象的语言,都可以作为大项目的开发工具。都有丰富的库支持。也有最宽松的版权许可,除了一些工具属于GNU世界。 都有Lisp特色的eval函数,也都能把函数作为参数。也有图形界面的Ruby的专门编辑器。都获得了广泛的C库的支持。女口 qt、gtk、tk、SDL、FOX等,Ruby计划实现 SWIG接口。都有完善的文档。编辑和Python相比Ruby的优点具有正则表达式和嵌入 HTML的功能。Python也有正则表达式,但没有 Ruby的应 用方便和广泛。Pytho

14、n的嵌入HTML项目才刚起步。Ruby还有apaChe的mod模 块。Ruby本身也实现和很多 Unix工具,如raCC,doCtools。比Python更亲近 Linux。比Python功能更完整的面向对象的语法。Ruby的整个库都是具有类继承的结构。他的基本的数据类型和运算符都是可以重载的。Ruby主要的功能都是通过对象的方法调用来实现的,而不是函数。Python也在向这方面发展,但没有Ruby做的彻底。Ruby的类是更规范的单继承,还有接口等概念的实现。Python可以实现在列表内的条件语句、循环语句,而Ruby用块”的方式来实现这个功能,比Python的更灵活,更具有通用性。Ruby具

15、有类似Lisp的彻底的函数方式的条件语句、循环语句等。语句的表达能力更强。附带一些Unix工具,如raCC等。 编辑和Python相比Ruby的不足 最 大的不足正是因为Ruby的强大所引起的。它没有 Python的简单性好。比较复杂的 面向对象语法、 块”语法的引入、正则表达式的引入、一些简写标记都增加了语言 的复杂性。Python的缩进表达方式比Ruby的Basic的表达方式更让人悦目,Ruby程序的满眼的end让人不舒服。当然,Ruby认为end的方式比Python更先 进。 Ruby还没有Python的 自省”的能力,没有从程序文件中生成文档的能力。Ruby支持不及Python广。国际

16、化支持在Ruby的计划中。这是因为Ruby的历史比Python要短造成的。 编辑Python和Ruby的语言的选择从简单的就是好的来说,选 Python是没错的。Python适合寻找简单语言的人,这很可能造成Python更流行,因此也有更多的支持。但如果要追求更强大的语法功能,对编程语言感兴趣,想了解各种编程 概念的人,贝U Ruby是好的选择。Ruby和Python都想取代Perl,解决Perl的缺点 面向对象不足,但Python用是方法是混合面向对象和程序式的程式语言, Ruby是允许自己这个面向对象语言扮成程序式的程式语言,编辑多脚本语言的大统一及疑问现在各种脚本语言太多了,有必要进行整

17、合,parrot是一个好的想法。.NET也是好的想法。它为各种脚本提供了一个统一的虚机,为各种 脚本语言提供了基于 类”的相互调用,为各种脚本提供了统一的类库。现在各种脚本语言只是提供了对C语言的交互性,这种交互也是费劲的和效果不好 的。比如Python、Perl、Ruby等都提供了对C的交互功能。脚本语言之间的交流 障碍重重。而类似.NET的东西,提供了非常容易的各种脚本的相互利用的途 径,避免了很多的代码的重复编写。这种标准平台的力量是很大的,这种标准平台 为什么没有在开源领域首先出现呢?众多的脚本正是开源的特点和优势,为什么这 种问题要微软来解决呢?前面有人提出了类似的问题,在Linux

18、中为什么至今没有好用的类似ODBC的东西呢?可能这种整合只有商业公司有能力实现吧。我的理解是,如果有创新思想的人都拿他的想法去卖钱了,因此,在开源中只剩下了模仿的人。kde是模仿 Windows, koffice是模仿office, Linux是模仿Unix , gcc、bash等也全都是模仿,以及 gstep等,还有freedos atheos等也是模仿, wxWindows、SDL也是模仿。我想知道开源社区有没有自己的创新?我所知道的 创新是zope,但zope最初也是商业产品,后来才开源的。Perl是创新,Python是创新,但还有什么呢?是不是开源领域只有hacker,没有Creato

19、r?编辑.NET介绍 编辑.NET所实现的Java的功能可控代码跨平台的虚机和伪码 免费赠送命令行编译器 纯面向对象语言 对XML和XML web serviCes的 支持和jsp对应的asp. NET网页上的程序 一套统一的中间件环境。asp. NET跟jsp不是同一个层次上的 web技术,asp. NET使用完善的事件响应机 制,Win Forms类似的 WebForm技术,只有JSF跟Asp. NET有可比性。编辑.NET未实现的Java功能免费的集成开发环境多厂家支持,跨平台的成熟度 免费的IDE,#develop,ASP. NET的有MS的WebMatrix而免费开源的CLR实现,有

20、MS自己的XP,FreeBSD,Mac OS下的 实现(原理演示不能进行商业应用),Novell下的Mo no项目,已经发布了 Beta1版本,在2004 6-30将会发布 Release! 还有GNU的一个.NET实现!编辑.NET实现的Java不具备的功能 多语言支持强大的集成开发环境。在Windows上媲美本机程序的 速度。对COM的支持,对vs的继承 对widows form、web form、服务器端程序 的图形直观编程。编辑相对vs6的改进统一了集成开发环境,使 C +程序也具有了 vb的友好性。编辑XML各种技术介绍XML :XML是统一格式的结构化数据的文本文件。基于XML的程

21、序,数据结构是开放的,方便不同程序处理同一种文件,这样,程序之间可以达到高水平的协作。XML现在成为了各行各业统一数据格式的基础。XML发展出了完善的语法,它用DTD或XMLscheme来界定XML的标记语言。用uri来唯一确定一个 XML格式。用Css或XLT来转换XML格式,xlink和xpointer等来建立 XML的 链接,用xpath来定位XML中的数据。xHTML :是严格符合XML格式的HTML。 RDF:基于XML的元数据描述语言。方便交换结构化数上的协同。 xmath:XML格式的公式描述语言。XML rpC和soap:以http协议和XML格式来进行网络程序之间的消息通讯。

22、XUL :netsCape的mazilla使用的程序界面语言,基于 XML格式,比HTML强大的多的描述图形界面的XML语言。它用Css来换肤,用DTD来实现多语言 界面,用JavasCript来实现程序逻辑,以此编写跨平台的可方便定制界面的程序, 现在这个程序API功能已经很强大了,整个 mazilla程序就是基于XUL的。 xaml:MS在LongHorn平台的最新编程语言,将统一 Windows与 Web编程,直接使用LongHorn下的浏览器进行执行,跟XUL有类比性编辑最先进的XML格式图形界面程序开发工具XUL大家知道netsCape程序,一个仅次于ie得浏览器,也有很多人知道 M

23、ozilla,netsCape得开放源代码版本。但很 多人只是使用Mozilla,不知道Mozilla另一个重要得功能程序开发。在 netsCape开放源代码后三年Mozilla得1。0版还没有问世,很多人讥笑他的超慢得 开发速度,实际上,Mozilla酝酿出了一个超酷得新产品,可以看作是软件开发工 具发展得另一个里程碑。现在基于浏览器得三层开发结构非常流行,微软的.NET的思路就是基于这个结构得。另外,不考虑服务器结构,就是基于网页得 JavaScript小程序也对人很有吸引力,这些产 品得思路都是以HTML为用户界面,但开发人员常常苦恼于 HTML太简陋。而 Mozilla得XUL解决了这

24、个问题。XUL是对HTML的扩展,完全兼容于HTML,XUL基于XML格式对HTML进行了扩展,实现了完整、强大得图形用 户界面设计功能。可以设计出复杂得图形界面程序。实际上mazilla整个就是由XUL设计的。XUL用Css来控制界面风格、用DTD来替代字符串,方便的实现本 地化,用JavasCript来对用户界面的操作作出反应,提供基本的逻辑编程, JavaScript通过对象文档接口 DOM来动态控制用户界面。同时 JavasCript通过调用 Mozilla提供的丰富的底层API来实现强大的功能。Mozilla提供了功能强大的API 可以进行文件操作、网络操作、图形操作等各种操作,并且

25、这种API是完全跨平台的。最后,Mozilla用RDF格式来存储独立于界面的数据。总结:XUL由 于兼容HTML,提供了最强大的用户界面的定制,DTD提供了最方便的本地化XUL、JavasCript、RDF提供了显示、逻辑、数据的分离。Mozilla的底层API提供了跨平台的强大编程能力。希望大家都来关心Mozilla。编辑最接近人类语言的编程语言REBOL REBOL的详细资料见 www . REBOL . org。这里谈一下我的印象。REBOL的缺点是明显的。它是一个商业公司的产品。它只是象Java样免费使用。但不开放源代码。并且它的数据库连接的函数库是收费的。但它的优点也十分明显,如果因

26、为不是开放源代码软件而不能放心使用,也 可以欣赏和借鉴它的种种特点,并且了解了REBOL肯定还会忍不住使用它。首先REBOL是一个Lisp语言的替代品,它能实现Lisp的所有能力。他具有Lisp 语言的数据和程序同等处理的特点,也有语句和表达式的统一。但大大打破了 Lisp的局限。它允许中缀运算符的形式,没有满眼的括号,和一般编程语言的表达 方法完全一样。同时具有丰富的库,有完全的图形界面库,完全的网络库。因为是 一个公司的产品,也保证了库的统一。REBOL自称为网络编程语言,它的网络编程能力很强,一般一个语句就可以下载一个文件,或下载一个网页,或接受一 个邮件。REBOL 一个神奇的特点是它

27、的图形界面设计,它的界面编程非常简 单,完全不用语句和函数,而是和 HTML 样只要表达核心内容就行了。这得益于REBOL的方言”能力REBOL内置了方言”能力。就是象yacc 样的语言解析能力。可以随时扩展 子语言REBOL内置了几十种数据类型,用它编程,语句肯定是最精炼的REBOL可以实现Java一样的网络下载程序运行的能力,也有砂箱功能。它比Java更进一步,有自己的桌面,在桌面上可以任意启动各个REBOL程序,它的桌面象HTML 样有丰富的表达形式和超链接。链接到有 REBOL功能的网 站上就可以象浏览网页一样使用各种程序。由于REBOL语言比Java要简练的多,同时是不用编译的脚本语

28、言,它的程序文件非常小,更适合网络传输。因为 REBOL有这样神奇的功能,它自称in ternet操作系统。因为REBOL是脚本语言, 因此它天然是跨平台的。它有很多操作系统的实现。还有一个特点,REBOL语言自身只是一个几百k的可执行文件,因此REBOL程序的发布是非常简单的。 编辑最具有现代感的Lisp解释器DrSchemeLisp是一个古老的计算机编程语言,给人的印象是速度慢,输入输出能力弱,没有图形界面,自身携带的库太少,很多功能不能实现。这一切在 DrScheme手中改变了。DrScheme具有大量的现代语言具有的功能,比如作为嵌入脚本的能力,图形界面的编程能力,面向对象 的能力,组

29、件编程能力,正则表达式能力,XML能力,作为web服务器和客户端来输入输出能力及其它网络能力,产生独立可执行文件的能力。一个集成的编辑调 试环境。不过它的程序执行速度还是稍慢。当然,它具有所有Scheme的优点,语法的宏定义能力,命名空间能力,数据和程序不分的能力,堆栈式内存管 理,无穷嵌套,用 表”来表现所有语句和数据的简单方式,也天然带有程序环境的 永恒存在能力。这些特点好像正在最新出现的编程语言中出现。好像目前的编程语 言的发展趋势是从C语言的方式向具有更多Lisp特点的方向发展。就像 Windows 逐渐具有了越来越多的Unix早已实现的功能。才知道Lisp的编程环境已经这么好了。编辑

30、eiffel语言印象印象深的是它是全开发周期的语言,并且是在开发周期可回溯的。它的 ContraCt和Ada类似。eiffel是和C+类似的编译 的面向对象语言,不过更简单,能够多继承。eiffel是C语言的面向对象编程的代替物。编辑mozart oz语言oz介绍它是面向对象的、能够逻辑编程的、并发分布的语言。我对oz印象最深的是它的多线程能力。一个简单的Case语句,就可以启动多个线程。另外,它也是一个prolog的代替物,可以编写分布并发的人工智能程序。编辑各种语言的选择和语言之间的关系编辑一般是使用什么软件,就用什么软件的语言就拿我用的软件举例:使用excel,就用vba编程。 使用au

31、toCad就用autoLisp编程 使用zope就用Python编 程如果使用gimp就用Python或sCheme编程使用gnome office就用Python或Basic编程 使用blender就用Python编程编辑然后看处理什么样类型的数据如果处理文件的操作就用shell语言。比如bash如果处理文本文件,就用 Perl或awk,如果喜欢Perl的风格,又象编大程序,就要用 Ruby如果处理数据库,简单的用sedo否则用sql。如果是对象数据库,可以使用 Python+ ZODB、或Lua、fish 如果一般的数据库不能满足要求,需要做专家系统,就用prolog如果处理结构化文本,如

32、XML,就用xslto处理HTML,客户端用JavasCript,服务器端用PHP如果处理类似语言分析的文本,就用yacc如果处理出来的结果是打印文档或屏幕文档,就用tex如果是图像、动画或其它二进制的文件,一般用C语言。如果处理的问题和操作系统底层打交道,用C语言编辑从语言特点来说如果极端要求运行中的多线程的并发和分布,可以考虑oz语言。如果极端重视文档,希望把程序的文档写出来了,程序也几乎就完成了,那么用 Cweb复杂的程序,在编写之前需要做 uml的文档。如果要编写规模较大的程序或打算只学一种编程语言,就要用 Pytho n如果编写程序来处理复杂的数据结构和算法,就用Lisp和sChem

33、e (喜欢Lisp的风格,并希望更简单,用 REBOL)如果想最简单的实现一个语言来作为嵌入语言,就用Tcl,如果Tcl有局限,就用Lua编辑C语言是最普及的语言,但 C语言有一些缺点,因此,就产生了很多改进C的语言 因为C不能编写大程序,就产生了 C+ + 因为C+还有指针等缺点,就产生了 Java 如果不喜欢C+ +的各种缺点, 又想使用一个编译型语言,就选择 eiffelC语言的一个缺点是标准库规模小,不能解决所有的问题,就产生了大量不兼容的库,导致了很多不可移植的程序。如 果想要一个和C用样级别的可移植的编程语言,就选择 Ada。Ada的图形用户界面 库和各种和操作系统相关的库都是标准

34、化的,可以选择不同卖家的解决方案。是军 队要求的标准编程语言。如果不喜欢C语言的繁琐,希望常做的事编程能够简单,那么可以用Python。完成同样的工作,Python代码行数是C的几分之一。 C风格的脚本化语言是Javascript, pike编辑关于图形用户界面的选择最简单的图形界面接口是tk,可以在各种平台上可用如果有更高的要求使用gtk。gtk移植性差些。一个以移植性为目标的开源 C库是wxwindow女口果希望简单的编程,要求不很高,可以用 XUL跨平台的图形用户结构是Java的awt和swing。如果不跨平台,还有ibm的Java解决方案。如果对商业编程语言不排斥,可以用qt,因为qt

35、的程序,如果商业使用是要付费的。如果要编写全屏的文本界面程序,emacs是最权威的。我们可以回忆,turbo C的编程环境和图形用户界面一样 友好。它就是全屏的文本用户界面。如果编写office家族类似的程序,在ope noffice上也是可以考虑的选择。gtk也可以。编辑discuss maddog(journeyman) 06/12/03 10: 55Re:各种语言的选择和语言之间的关系 re:nonametomzl回复如果处理结构化文本,如 XML,就用xslt。XML本身也算吧. 处理HTML,客户端用JavasCript,服务器端用PHP PHP不是唯一. 如 果处理出来的结果是打印

36、文档或屏幕文档,就用tex超强. 如果是图像、动画或其它二进制的文件,一般用 C语言。如果处理的问题和操作系统底层打交道,用 C语言我会在C/C+里面选C+ + 如果极端要求运行中的多线程的并发和分 布,可以考虑oz语言。20年以后的语言. 如果编写程序来处理复杂的数据结 构和算法,就用Lisp和sCheme Lisp也是让人喜欢.如果要编写全屏的文本界面程序,emaCs是最权威的。我们 可以回忆,turbo C的编程环境和图形用 户界面一样友好。它 就是全屏的文本用户界面。哈,EmaCs. 也许,语言是用来超越的.许多应用就需要不同语言混合.把Python嵌到应用程序中,我觉得很诱人.编辑文

37、学编程和CWEB介绍 CWEB是tex的作者创立的一种编程语言。tex是主流的文档打印标准和文档生成工具。tex及相关的metafont就是 用Cweb编写的软件,同时tex体现了 Cweb的编程特点。CWEB的编程思想叫 文 学编程”实际应该叫文章编程”因为和文学关系不大,反而和学术着作类似。 主要思想就是:编程应该象写学术着作那样,有整体构思,以部、章、节、子节、 子子节那样逐级丰富。这实际和我们说的自顶向下”的编程方法类似。但 自顶向下”只是一种软件工程的方式,它是以编写文档的方式实现的,没有和编程语言结 合起来。CWEB用我的说法是用编程语言实现了自顶向下” CWEB的实现方式是 宏替

38、换”就是逐级用更具体的内容来代替较概括较简略的内容。我们使用 的编程工具“make实际就是一种宏替换工具(我没用过 maker,只是听说)。 zope的TAL语言是一种替换工具,但不是宏替换工具,因为它的内容不是可执行 的,如果内容是可执行的,那么它也可以叫宏替换Dictio naries字典? PriorityQueues 堆? Graph Data Structures图? Set Data Structures集 合? Kd-Trees 线段树? Numerical Problems 数值问题? Solvi ng Lin ear Equatio ns 线性方程组? Ban dwidth

39、Reduction 带宽压缩? Matrix Multiplication 矩阵乘法? Determinants and Permanents 行列式? Con stra ined and Uncon stra ined Optimization最 值问题? Lin ear Programmi ng 线性规划? Ra ndom Number Gen eration随 机数生成? Factori ng and Primality Testi ng 因子分解 / 质数判定? Arbitrary Precision Arithmetic 高精度计算?Knapsack Problem背包问题? Dis

40、crete Fourier Transform离散 Fourier 变换? Comb in atorial Problems 组合问题? Sorti ng 排序? Searchi ng 查找? Media n and Selection 中位数? Generating Permutations排列生成? Generating Subset子集生成? Gen erat ing Partitio ns 划分生成? Gen erati ng Graphs图的生成? Cale ndrical Calculati ons 日期? Job Scheduling工程安排? Satisfiability 可满

41、足性? Graph Problems -polynomial 图论-多项式算法? Connected Components连通分支? Topological Sorting 拓扑排序? Minimum Spanning Tree 最小生成树? Shortest Path最短路径? Transitive Closure and Reduction 传递闭包? Matchi ng 匹配? Eulerian Cycle / Chi nese Postman Euler 回路/中国邮路? Edge and Vertex Connectivity 割边 /割点? Network Flow 网络流 Dra

42、wing Graphs Nicely 图的描绘? Drawing Trees树的描绘? Planarity Detection and Embedding平面性检测和嵌入? Graph Problems - hard图论-NP问题? Clique最大团/ In depe ndent Set独 立集? Vertex Cover 点覆盖? Traveli ng Salesma n Problem旅 行商问 题? Hamiltonian Cycle Hamilton 回路? Graph Partition 图的划分? Vertex Coloring 点 染色? Edge Colori ng 边染色?

43、 Graph Isomorphis m 同构? Stei ner Tree Stei ne 树? Feedback Edge/Vertex Set最大无环子图? Computational Geometry计算几何? Convex Hull 凸包? Triangulation 三角剖分? Voronoi Diagrams Voronoi 图? Nearest Neighbor Search 最近点对查询? Ra nge Search范 围查询? Poi nt Location 位置查询? In tersection Detection 碰撞测试? Bin Packing 装箱问题? Media

44、l-Axis Transformation 中轴变换? Polygon Partitioning 多边形分割? Simplifying Polygons 多边形化简? Shape Similarity 相似多边形? Motion Planning 运动规划? Maintaining Line Arrangements 平面分割? Minkowski Sum Minkowski 和? Set and String Problems集合与串的问题? Set Cover 集合覆盖? Set Pack ing 集合配置? Stri ng Matchi ng 模式匹配? Approximate Stri

45、 ng Matchi ng 模糊匹配? Text Compressio n 压缩? Cryptography 密码? Fi nite State Mach ine Mini mizati on 有穷自动机简化? Lon gest Com mon Substri ng最长公共子串? Shortest Com mon Superstri ng 最短公共父串 DPDyn amic Programming动态规戈 Urecursion递归?编程词汇 A2A integration? A2A 整合? abstract?抽象的? abstract base class (AE抽 象基类 abstract

46、class#抽 象类 abstraction 抽 象、抽象物、抽象性 access存取、访问access leve访问级别access function?访问 函数 accou nt?账户 actio n?动作? activate 激活 active?活动的 actual parameter?实 参 adapter适配器 add-i n?插件 address地 址address space?地址空间? address-of operatoi取地址操作符 ADL (argumentdependent lookup ADO(ActiveX Data ObjectActiveX 数据对象 advan

47、eed?高级的 aggregation聚合、聚集algorithm算法alias别名align排列、对齐allocate分配、配 置allocator分配器、配置器 angle bracket尖括号annotation?注解、评注? API (Applicati on Programmi ng In terface 应用(程序编程接口 ? app doma in (applicati on domain应用域 application?应用、应用程序 application framework应用程序框架 即pearanee外观append?付加architecture架构、体系结构 archi

48、ve file归档文 件、存档文件argument引数(传给函式的值。参见parameter? array? 组 arrow operator?箭头操作符 ASP(Active Server Page活动服务器页面 ASP.NET worker process ASP.NET工作者进程? assembly?装配件、配件 assembly Ianguage?汇编语言 assembly manifest?装配件清单 assert(ion断言 assign?武 值 assignment?赋值、分酉己 assignment operator值操作符 associated?相目关的、相 关联的 asso

49、ciative con ta in er关联式容器(对应 seque ntial c on tai ner? asy nchro nous?异步的 atomic?原子的 atomic operatio n?原子操作 attribute?特 性、属性 authentication service验证服务 authorization?授权 audio?音频 A.I.?人 工智能 B2B integration? B2B 整合、B2B 集成(business-to-business integration? background?背景、后台(进程 backward compatible?向后兼 容、

50、向下兼容backup?备份? backup device备份设备? backup file?备份文件? ban dwidth?带宽 base class基 类 base type?基 类型 batch?批处理 BCL (base class library 基类库? bi nary?二进制? binary search二分查找 binary tree 二叉树 binary function?双参函数 binary large object二进制大对象 binary operator 二元操作符 bi ndi ng绑定bit位bit map?位图bitwise按位bitwise copy?为单元

51、进行复制; 位元逐一复制,按位拷bitwise operation?按位运算? block?块、区块、语句块 bookkeeping?簿记 boolean 布林值(真假值,true 或 false? border? 边框 bounds checking边界检查 boxing?装箱、装箱转换? brace (curly brace大括 号、花括号 bracket (square brakce中括号、方括号 breakpoint 断点 browser即plications?浏览器应用(程序browser-accessible application?可经由浏览器访问的 应用程序build?编连(专

52、指编译和连接built-in?内建、内置bus?总线business?业 务、商务(看场合busi ness Logic业务逻辑bus in ess rules业务规则? butto ns?按钮bug? 臭虫by/through通过byte?位元组(由8 bits组成? cache高速缓存calendar日历 call 调用 callback?回调 call-level in terface (CLI 调用级接口 (CLI? call operator 调用操 作符 can didate key 候选键 (for database cascading delete 级联删除 (for data

53、base cascading updat级联更新 (for database casting? 转型、造型转换 catalog?目录 chain?链(function calls character字符 character format?字符格式? character set?字符集? CHECK constraints CHECK约束(for database? checkpo in 检查点 (for database check box?复选框 check butt on 复选按钮 child class?子类 CIL (common in termediate Ian guage通 用中

54、间语言、通用中介语言 class?类 class declaration?类声明 class definition?类定义 class derivation list 类继 承列表 class factory?类厂 class hierarchy?类层次结构 class library?类库 class loader? ?类装载器 class template?类模板 class template partial specializatio n类模 板部分特化 class template specializations?类模板特化 classification?分类 clause?子句cli

55、ent即plication?客户端应用程序 client cursor?客户端游标(for database code pag代码页? cleanup?青理、清除 CLI (Common Language Infrastructure?通用语言基础设施 client客户、客户端client area?客户区client- server客户机/服务器、客户端/服务器clipboard剪贴板clone?克隆? CLS (common Ianguage specification通用语言规范 code access security代码访问安全 COFF (Common Object File Fo

56、rmat?通用对象文件格式? collection?集合 COM (Compo ne nt Object Model?组件对象模型 combo box 组合框 comma nd line 命令行 comme nt?注释 commit?提交(for database com muni cati on?通讯 compatible 兼容 compile time 编译期、编译时 compiler 编译器 component组件 composite index复合 索引、组合索引(for database composite key复合键、组合键(for database? composition?复

57、合、组合 concept 概念 concrete具体的 concrete class?具体类 concurrency 并发、并发机制 ? constraint?约束(for database configuration配置、组态 conn ecti on?连接(for database connection pooli ng连接池 con sole?控制台con sta nt?常量 con struct?构件、成分、概念、构造(for Ian guage) con structor (ctor 构造函数、构造器 con tai ner?容器co ntai nment包容con text环境、上下文 control控 件cookie?不译copy?拷贝CORBA?通用对象请求中介架构(Common Object Request Broker Architect

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论