版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Pascal 语言:Pascal是一种计算机通用的高级程序设计语言,由瑞士 Niklaus Wirth教授六十年代末设计 并创立的。Pascal的主要特点有:严格的结构化形式、丰富完备的数据类型、运行效率高、查错能力强 等特点。由于上述特点,Pascal可以方便用于描述各种算法和数据结构。对于程序设计的初学者,Pascal语言有益于培养良好的程序设计风格和习惯。IOI (国际奥林匹克信息学竞赛)把Pascal语言作为三种程序设计语言之一。NOI (全国奥林匹克信息学竞赛)把 Pascal语言定为唯一提倡的程序设计语言,在大学中Pascal语言也常常被用作学习数据结构与算法的数学 日 °
2、;C语言:C语言是介于汇编语言和高级语言之间的语言,属于高级语言,也称为中级语言,是集汇编 和高级语言优点于一身的程序设计语言。于1972年在美国贝尔实验室里问世。早期的C语言主要用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了九十年代,C语言开始进入其他操作系统,并很快在各类大、中、小和微型计算机上得到广泛的应用。成为当代最优秀的程序设计语言之一。C的特点1 .是一种结构化语言。层次清晰,便于按模块化方式组织程序,易于调试和维护。2 . C语言的表现能力和处理能力极强。不仅具有丰富的运算符和数据类型,便于实现各类 复杂的数据结构,它还可以直接访问内存的物理地址,进行位
3、级别的操作。3. 由于C语言实现对硬件的编程操作,所以既可用于系统软件的开发,也适合于应用软件 的开发。C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类计算机上,从 而形成了多种版本的 C语言。4. 由于C语言允许直接对位、字节和地址进行操作,能实现汇编语言的大部分功能。5. 目标代码质量高,程序执行效率高。总体上来说,C语言的优点是简洁、紧凑、使用方便、灵活、易于学习和应用。仅有 32个关 键字。9种控制语句,程序的书写形式也很自由。C语言的弱点:非强类型;语法限制不严格,使得编程者无法过多地依赖C编译程序去查错;缺少实时检查,如数组越界等。从严格上来说,C语言是块结构语言,这是
4、因为它在结构上类似于ALGOL Pascal和Modula-2。从技术上讲,块结构语言允许在过程和函数中定义过程和函数。因为C语言不允许在函数中定义函数,所以不能称为通常意义上的块结构语言。C语言作为一门面向过程的计算机语言,至今已有三十多年历史,应用广泛,无论是Windows还是Linux,你所看到的底层都是用C写的。大部分的网络协议也都是用C实现的。你看到的最漂亮的游戏画面也是用C实现的,工业控制程序也是用C实现的。不过 C不是万能,只是某些方面它适用而已。C+ +语言C+是于1986年由AT&T贝尔实验室开发的,语言开发的目的在于通过数据封装减少程序变 量的副作用,从而降低程序的
5、复杂性并提高程序的可靠性。(笔者曾经听到的开发 C+ +的目的是由于懂得 C语言的人越来越多,所以需要再出一门更难的、比C语言强大的语言,才能保住饭碗,so。C+ +出世啦)C+是C语言的直接扩展,C+ +的多继承机制能更好地描述 对象的属性和行为。C+是C的扩展,但C+可以作为一种全新的语言来看。C+的特点:面向对象、继承、封装、多态性。由于C+是C的扩展,所以也具有 C的特点。C+在C的基础上,加入了面向对象编程思想, 也就决定了 C+的效率在某一方面是不如 C的。比如定义一种类型,C+用类(Class )来封装,而 C可能就直接几个变量的组合就成了一个结构体(Struct ),类不仅具有
6、成员变量, 还具有成员函数等, 在精细的比较其效率 时,C会比C+ +的效率要高。 但由于时代的发展, 项目或工程的庞大化,基于面向对象的思想显然更能适应。即C+在这方面能比 C要做得更漂亮。现在不少系统级编程都是用C+ +实现,许多应用级别的软件也是用C+实现。这里要注意一点,就是C+并不是完全的面向对象语言。它是提供了面向对象的模型以及思路,但是同时兼容了面向过程的模型。Java语言Java语言来自于Sun公司的一个叫Green的项目,其原先的目的是为家用消费电子产品开发 一个分布式代码系统,这样我们就可以把email发给电冰箱、电视机等家用电器。对他们进行控制和信息交流。开始,准备用C+
7、 + ,但 C+!复杂,安全性差,最后用一种新的语言Oak (Java的前身),Oak是一种用于网络的精巧而安全的语言,Sun公司曾依此投标一个交互式电视项目,但被 SGI打败。可怜的Oak几乎无家可归,恰巧这时 Mark Ardreesen开发的 Mosaic和Netscape启发了 Oak项目组成员,他们用(Java)编制了 HotJava浏览器,得到了 Sun首席执行官 Scott McNealy 的支持,触发了 Java进军Internet 。 Java的取名有一段趣 闻:有一天,几位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java (爪哇)咖啡,有
8、一个人灵机一动说就叫Java怎样,得到了其他人的赞赏,于是,Java这个名字就这样传开了。Java的特点:1. 简单性:风格类似于 C+, Java摒弃了 C+中容易引发程序错误的地方,如指针和内存 管理。2.面向对象:Java是一种完全面向对象语言。从这点来看, Java类似于SmallTalk ,但其 特性、尤其是适用于分布式计算环境的特性远远超越了SmallTalk。3. 分布式:Java包括一个支持 HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程 序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。4. 健壮:Java致力于检查程序在编译
9、和运行时的错误。类型检查帮助检查出许多开发早期 出现的错误。Java自己操纵内存减少了内存出错的可能性。5. 结构中立:Java将程序编译成一种结构中立的中间文件格式。只要有 Java运行系统的 机器都执行这种中间代码。这种中间语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。6. 安全:1)删除了香指针和手动释放内存等功能,避免了非法内存操作。2)当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来。Java在机器上执行前,要经过很多测试,它经过代码校验,检查代码段的格式,检测指针操 作,对象操作是否过分以及试图改变一个对象的类型。7. 可移植的:同体系结构无关的特性使
10、得 Java应用程序可以在配备 Java解释器和运行环 境的任何计算机系统上运行。任何Java代码会被解释成一种中间语言,然后通过不同机子的 特定环境(如机器指令)运行程序。实现方便移植的特点。8. 解释性。Java解释器能直接运行目标代码指令。链接程序通常比编译程序所需资源少。9. 高性能。如果解释器速度不慢,Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。10. 多线程:Java提供的多线程功能使得在一个程序里可同时执行多个小任务。多线程带 来的更大好处是更好的交互性能和实时控制性能。11. 动态:动态特性允许程序动态地装入运行过程中
11、所需要的类。在运行时确定引用的好处 是可以使用已被更新的类,而不必担心会影响原有的代码。如果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该类进行更新,而不会使任何引用该类的程序崩 溃。Java在诞生之后不久, 便受到广大群众的欢迎, 甚至有人说出有了 Java ,可以不要C/C+了。 一度把Java提到了很高的地位。这当然是对Java的一种赞赏,只是有点过了。到今天,Java 依然不能取代C, C+,而且还出现了新的对手一一.Net (后面将会介绍)。Java目前主要应用:We瑚I览器、网络应用系统。C#语言。C#一种精确、简单、类型安全、面向对象的语言。 说到C#,就不得不
12、先简单介绍一下.net。 到底什么是.net呢,按照微软总裁兼首席执行官 Steve Ballrner 把它定义为:.Net代表一 个集合,一个环境,它可以作为平台支持下一代Internet 的可编程结构。C鼬.net的代表tH* 日。C#勺特点:1. 完全面向对象。2. 支持分布式,之所以有C#,是因为微软相信分布式应用程序是未来的趋势,即处理过程分布在客户机和服务器上。所以C"出生就注定了能很好解决分布式问题。3. 跟Java类似,C#弋码经过编译后,成为了一种IL (中间语言)。在运行时,再把IL编译为平台专用的代码。4. 健壮,C坏检查程序错误和编译与运行时错误一点也不逊于J
13、ava, C#&用了自动管理内存机制。5. C#不像Java那样完全摒弃了指针和手动内存管理。C#t认情况下是不能使用指针的,程序员在有必要时可以打开指针来使用。这样可以保证编程的灵活性。6. 安全性:C#勺安全性是有.net平台来提供的。C#弋码编译后成为IL语言。是一种受控代 码,.net提供类型安全检查等机制保证代码是安全的。7. 可移植性:由于 C#使用类似Java的中间语言机制。使得C#也跟Java类似,可以很方便的移植到其他系统。在运行时,再把中间代码编译为适合特定机器的代码。8. 解释性:C#tk是一种特殊的解释性语言。9. 高性能:C#巴代码编译成中间语言后,可以高效的
14、执行程序。10. 多线程:与Java类似,可以由一个主进程分出多个执行小任务的多线程。11. 组件模式:C痛艮适合组件开发。各个组件可以由其他语言实现的,然后集成在.net中。C#在Java流行起来后所诞生的一种新的语言。 由于微软在操作系统上占有很大的优势。在以往的开发中累积了不少经验,所形成的 .net平台,所以C跄 Windows方面可以说比Java 具有更大的优势。如果单纯从技术上来讲,C#网络编程上可以与 Java匹敌。C#在Windows Forms也有一定的优势。C#一种非常类似于 C+勺语言,风格是更接近于Java,不管是C+璀序员还是Java程序员, 都可以很方便的转到C#&
15、#177;来。C#勺强大是依赖于.net的发展,而.net的发展是看微软在.net上的决心和投入有多少。从 Windows 2003和Vista 系统可以看出(前者内置.net1.1 ,后者内置.net2.0。).Net在 Windows 编程中具有重要的战略意义。C#目前主要是应用在网络编程上,其他领域比如数据库、窗体编程,都逐渐在增大。BS我就对了。好了。终于写完了各种语言的特点。如果读者对以上观点不同意,请留言。别 继续,我该讲主题了!其次,我们现在假定一个初学者没有任何程序设计语言的基础。先来比较一下各种语言:Pascal PK C现在,看我们学习 Pascal和C的过程:学Hello
16、 world ,然后知道怎么编译,运行。然后学 习基本数据类型,然后输入输出。不管学校希望学生能学多好,实际来看,学生学Pascal跟学C是没什么区别的。不同的只是语言风格。有人也许会说,学C的精华在于指针。学 C的人会比Pascal强很多。没错,指针是学C的一个重点。但是就按我学 C的课本来看,用到 的指针只是很简单的。理解了*p和p有什么不同,就够了。然后会编个简单的几行代码,就自认为会C了。C库中有很多函数,教师在课堂上几乎没讲。比如memset qsort等,少了这些。你学Pascal和C没什么不同,只是作为了学习其他语言的铺垫而已。而新生由于没有语言根基,有不少好学生由于教师在课堂上
17、没讲,就以为学完教师所教的了。这正是好学生 的弱点所在。如果是“坏”学生,不听课堂的。倒还可能发现课堂所学的C是多么肤浅。还有,我至今没见过有学校会教C的图形开发的。虽然图形开发不是语言基础。不过对于扩展新生的编程视野是一个不错的选择。现代程序软件支持图形窗口的太丰富了,几乎不会太多 的学生去在意窗体的设置,定位等功能。图形编程还能激起学生的编程欲望。笔者曾经实现 过C的动画演示,当里面的所有图形都按预期的运动起来的时候,那种兴奋感犹如你在冰天 雪地的情况下忽然淋你一盘冰水所感到的那种感觉。C PK C+C+在C的基础上发展起来的。看起来似乎这两个pk,月观者RJ 7E C+。其实未必。C至今
18、还有生存的空间,而没有被C+作盘代替。说明了 C还是具有不可替代的作用。 C目前主要应用 在于硬件底层的部分,以及对于性能要求较高的应用程序中。但是对于复杂的系统级的开发,显然C+瑚得从容自在。联系实际,不少人学C+ +的时候,就已经有 C的基础了。有 C的基础,学 C+的基本类型的时候可以快速渡过,然后学类,继承,多态等概念。还是从我的 经历说起,我选了 C+,然后几乎没怎上课, 因为实在听了想睡觉,期末前用C+故了一个大作业后,就叫懂 C+了哈,然后考试当然轻松过了。其实我那时还是没学到C+,本质点说,我只是还是在会点 C的基础上。多了一个结构类型:类,而已。后来使用了 1年的C+后, 才
19、恍然察觉到当年的无知。才明白C+促什么。我相信已经学过 C+的同学估计现在连IO流的概念还没搞清楚的人很多。造成这种现象的原因在于:1.学生本身没有认真去编程实现。2. 教师只是重复的讲课本而已。最终判定学生是否会 C+的标准也只是考试为主。关于高校 的考试制度在计算机系中的效用,笔者将在未来几天内出一篇个人观点文章。Java PK C#目前不少人对这两种语言议论纷纷。笔者在开始学C#勺时候,曾经看过 Java程序员对于C#的观点。把C#乏得一文不值。忽然发现,似乎很多Java的程序员对C#不有天生的敌意。笔者目前自认为精通的是C#(别BS我)。以往学过Java,在此我写一下我所感触到的。虽然
20、微软一直称C#继承于C/C+,但是不论从代码结构,还是内置的支持类, 都跟Java有惊人的相似之处。我感觉 C醐是在Java之上,针对Java的优点和缺点来设计的。我用过 G C+、 Java,感觉还是C映好,这只是笔者的个人感受。由于C#保留着指针,当要实现一下比较底层的,性能要求高的时候,解决办法之一是C柯以打开指针,而 Java是做不到的,Java 只能通过其他途径,比如优化算法来解决。Java在非windows下获得了很大的成功:某调查公司曾经使用 Google搜索引擎来统计以下 指标:熟练使用某种语言的工程师数量、某种语言课程教学的可用性、有多少公司在出售用 某种语言编写的软件。 最
21、后综合得分情况是:Java以45.2分排名第一;第二名是C,得分是 32.2 ; C+说以24.6分排名第三;C疝远落后在第九位,得分为 4.6。这些数据是几年前的 数据。在这次测试中还发现,C#勺受欢迎程度正在急剧上升;而Java相对稳定。这其中一个 原因是.net允许许多种编程语言,而不像 Java那样,限制人们只能使用一种语言。开发者 能够使用包括 C、C+、C#®至Java在内的几乎任何语言来编写代码,然后把这些代码翻译 成机器看得懂的 CLR代码(公共语言运行时代码)。这样.net可以让开发者保护自己的“代 码投资”,换句话说,过去人们用 G C+编写的代码都能再次被利用。
22、而 Java只能重新写 代码。所有指导者(学校、培训机构、带你的人)在足够的时间内都希望新生能打下编程良好的基 础。从Pascal的介绍来看,似乎从它开始是很适合的。 但是笔者是从 C起步的,没学过Pascal , 对程序设计的习惯以及特点一点也不比学Pascal的人差。我觉得这不是语言的异同造成个人水平不同,在于拿了一门语言的书,新生是如何学编程的。不少新生可能会认为好好上课, 听老师讲课,然后回来自己的电脑上把老师讲过的内容上机去试一遍,就ok 了。估计连不少教师也是这样想的。笔者认为即使真有学生做得到,效果也是不好的。比如C语言把,我看过不少的C的教程的书,内容大同小异。前面几章,也就详
23、细的讲了语言定义的基本类型。然后讲结构体什么的。 C+则是讲类,继承等。这些东西,我感觉上课没什么好讲的,要讲最 多也就半节课。如果有一定编程基础的人,这些东西学得更快。但是笔者的经历是这些课都 上了满满一个学期,还有后面某些章节是来不及讲的。笔者不幸运,在上Java课的时候,没有上机课,前面的基本类型都上了半学期了,不少学生自己连SDK都没装,最终考试就笔试过关罢了。连这种本应动手的课程还是按照传统的考核方法:卷面考试来解决。能通过高考 的学生,不管是真的有料还是假的有料,相信都已经是考试能人了,对于计算机系来说,笔 者认为不能全按照传统的教学模式来套,这只是闭着眼睛瞎说话而已。程序是具有很
24、强的唯 一性的。你行就行,不行就是不行。卷面答得再好也只是吹。我相信不仅我学校,其他各大 高校情况也不会差太多。这里顺便说几句感想: 对于新生来说,应该自己能看清进入计算机系跟中学时候的环境不同。 中学可以专门应试,不必学一些太实用的东西(除非不读下去了, 准备出来工作的)。但是到 了本科,如果你也只是应付教学,然后只是争取拿奖学金,最后你不考研或者考不上研,那 可以说你在最后一年找工作的时候首先是自己心虚。虽然外面社会对本科要求不会太高,不 必学生的技术像外面的技术牛人那么高。但这不代表学生能什么技能都不会。现在恐怕只有 国企性质的企业很看重学生的成绩、拿奖学金情况等等。但是不能期望所有同学都能顺利去 国企。选择编程语言也是比较重要的一个环节,这就看新生个人的兴趣在哪。比如有人喜欢黑客,那么它可能就适合学 C,以及各种脚本。有人只喜欢网络编程,那么也许他选择Java或C#就比较适合。如果有人想成为很好的 windows编程,那么VO +、.Net编程也许是一个不错 的选择。语言不在于多,而在于精。如果只学了一点就换语言,那不如不要学了,去打游戏, 找人聊天更好。数据结构:这是编程最基础的课了。可以说能否学好编程的一个原因在于你有没学好数据结 构。注意,没学数据结构的,未必编不好程。如果学生只是每节课听老师讲结构。然后理解了就完的话,数据结构是不会学好的,别以为考了个9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2020年中国电信转正面试高分上岸专属题库及答案解析
- 2024计量经济考研复试笔试高频试题及满分答案
- 2020广西事业单位B类考前必刷模拟题附答案 命中率超70%
- 2023年广东省学法考试模拟卷+真题卷答案全
- 2026PSCR裸考救星考试题和答案 零基础也能拿高分
- 上班族摸鱼也能背的2024新三板考试答案
- 2021编剧基础期末考试往届学长学姐力荐题库及答案 亲测好用
- 江苏南京市栖霞区2025-2026学年九年级下学期期初学情分析语文试题(含解析)
- 放射科x线检查操作规程
- 肾脏病的中医科普
- 2026湖北宜昌夷陵区小溪塔街道办事处招聘民政助理1人笔试备考试题及答案解析
- 2026新疆兵团第七师胡杨河市公安机关社会招聘辅警358人考试参考试题及答案解析
- 2026陕西榆林市旅游投资集团有限公司招聘7人考试备考试题及答案解析
- 2024版前列腺癌药物去势治疗随访管理中国专家共识课件
- 2026年基于责任区的幼儿园联片教研活动设计方案
- 《油气管道地质灾害风险管理技术规范》SYT 6828-2024
- 2026新疆喀什正信建设工程检测有限公司招聘12人考试参考试题及答案解析
- 2026年宁夏工业职业学院单招职业技能考试题库含答案详解(完整版)
- IMPA船舶物料指南(电子版)
- 地理科学专业教育实习研习报告1
- 中国石油集团公司井喷事故案例汇编
评论
0/150
提交评论