各种编程语言的特点

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

各种编程语⾔的特点
C语⾔:
C语⾔是介于汇编语⾔和⾼级语⾔之间的语⾔,属于⾼级语⾔,也称为中级语⾔,是集汇编和⾼级语⾔优点于⼀⾝的程序设计语⾔。

于1972年在美国贝尔实验室⾥问世。

早期的C语⾔主要⽤于UNIX系统。

由于C语⾔的强⼤功能和各⽅⾯的优点逐渐为⼈们认识,到了九⼗年代,C 语⾔开始进⼊其他操作系统,并很快在各类⼤、中、⼩和微型计算机上得到⼴泛的应⽤。

成为当代最优秀的程序设计语⾔之⼀。

C的特点
1.是⼀种结构化语⾔。

层次清晰,便于按模块化⽅式组织程序,易于调试和维护。

2. C语⾔的表现能⼒和处理能⼒极强。

不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构,它还可以直接访问内存的物理地址,进⾏位级别的操作。

3.由于C语⾔实现对硬件的编程操作,所以既可⽤于系统软件的开发,也适合于应⽤软件的开发。

C语⾔还具有效率⾼,可移植性强等特点。

因此⼴泛地移植到了各类计算机上,从⽽形成了多种版本的C语⾔。

4.由于C语⾔允许直接对位、字节和地址进⾏操作,能实现汇编语⾔的⼤部分功能。

5.⽬标代码质量⾼,程序执⾏效率⾼。

总体上来说,C语⾔的优点是简洁、紧凑、使⽤⽅便、灵活、易于学习和应⽤。

仅有32个关键字。

9种控制语句,程序的书写形式也很⾃由。

C语⾔的弱点:⾮强类型;语法限制不严格,使得编程者⽆法过多地依赖C编译程序去查错;缺少实时检查,如数组越界等。

从严格上来说,C语⾔是块结构语⾔,这是因为它在结构上类似于ALGOL、Pascal和Modula-2。

从技术上讲,块结构语⾔允许在过程和函数中定义过程和函数。

因为C语⾔不允许在函数中定义函数,所以不能称为通常意义上的块结构语⾔。

C语⾔作为⼀门⾯向过程的计算机语⾔,⾄今已有三⼗多年历史,应⽤⼴泛,⽆论是Windows还是Linux,你所看到的底层都是⽤C写的。

⼤部分的⽹络协议也都是⽤C实现的。

你看到的最漂亮的游戏画⾯也是⽤C实现的,⼯业控制程序也是⽤C实现的。

不过C不是万能,只是某些⽅⾯它适⽤⽽已。

C++语⾔
C++是于1986年由AT&T贝尔实验室开发的,语⾔开发的⽬的在于通过数据封装减少程序变量的副作⽤,从⽽降低程序的复杂性并提⾼程序的可靠性。

(笔者曾经听到的开发C++的⽬的是由于懂得C语⾔的⼈越来越多,所以需要再出⼀门更难的、⽐C语⾔强⼤的语⾔,才能保住饭碗,so。

C++出世啦)C++是C语⾔的直接扩展,C++的多继承机制能更好地描述对象的属性和⾏为。

C++是C的扩展,但C++可以作为⼀种全新的语⾔来看。

C++的特点:⾯向对象、继承、封装、多态性。

由于C++是C的扩展,所以也具有C的特点。

C++在C的基础上,加⼊了⾯向对象编程思想,也就决定了C++的效率在某⼀⽅⾯是不如C的。

⽐如定义⼀种类型,C++⽤类(Class)来封装,⽽C可能就直接⼏个变量的组合就成了⼀个结构体(Struct),类不仅具有成员变量,还具有成员函数等,在精细的⽐较其效率时,C会⽐C++的效率要⾼。

但由于时代的发展,项⽬或⼯程的庞⼤化,基于⾯向对象的思想显然更能适应。

即C++在这⽅⾯能⽐C要做得更漂亮。

现在不少系统级编程都是⽤C++实现,许多应⽤级别的软件也是⽤C++实现。

这⾥要注意⼀点,就是C++并不是完全的⾯向对象语⾔。

它是提供了⾯向对象的模型以及思路,但是同时兼容了⾯向过程的模型。

Java语⾔
Java语⾔来⾃于Sun公司的⼀个叫Green的项⽬,其原先的⽬的是为家⽤消费电⼦产品开发⼀个分布式代码系统,这样我们就可以把email发给电冰箱、电视机等家⽤电器。

对他们进⾏控制和信息交流。

开始,准备⽤C++,但C++太复杂,安全性差,最后⽤⼀种新的语⾔
Oak(Java的前⾝),Oak是⼀种⽤于⽹络的精巧⽽安全的语⾔,Sun公司曾依此投标⼀个交互式电视项⽬,但被SGI打败。

可怜的Oak⼏乎⽆家可归,恰巧这时Mark Ardreesen开发的Mosaic和Netscape启发了Oak项⽬组成员,他们⽤(Java)编制了HotJava浏览器,得到了Sun⾸席执⾏官Scott McNealy的⽀持,触发了Java进军Internet。

Java的取名有⼀段趣闻:有⼀天,⼏位Java成员组的会员正在讨论给这个新的语⾔取什么名字,当时他们正在咖啡馆喝着Java(⽖哇)咖啡,有⼀个⼈灵机⼀动说就叫Java怎样,得到了其他⼈的赞赏,于是,Java这个名字就这样传开了。

Java的特点:
1.简单性:风格类似于C++,Java摒弃了C++中容易引发程序错误的地⽅,如指针和内存管理。

2.⾯向对象:Java是⼀种完全⾯向对象语⾔。

从这点来看,Java类似于SmallTalk,但其特性、尤其是适⽤于分布式计算环境的特性远远超越了SmallTalk。

3.分布式:Java包括⼀个⽀持HTTP和FTP等基于TCP/IP协议的⼦库。

因此,Java应⽤程序可凭借URL打开并访问⽹络上的对象,其访问⽅式与访问本地⽂件系统⼏乎完全相同。

4.健壮:Java致⼒于检查程序在编译和运⾏时的错误。

类型检查帮助检查出许多开发早期出现的错误。

Java⾃⼰操纵内存减少了内存出错的可能性。

5.结构中⽴:Java将程序编译成⼀种结构中⽴的中间⽂件格式。

只要有Java运⾏系统的机器都执⾏这种中间代码。

这种中间语⾔被设计在虚拟机上运⾏,由机器相关的运⾏调试器实现执⾏。

6.安全:
1)删除了⾹指针和⼿动释放内存等功能,避免了⾮法内存操作。

2)当Java⽤来创建浏览器时,语⾔功能和浏览器本⾝提供的功能结合起来。

Java在机器上执⾏前,要经过很多测试,它经过代码校验,检查代码段的格式,检测指针操作,对象操作是否过分以及试图改变⼀个对象的类型。

7.可移植的:同体系结构⽆关的特性使得Java应⽤程序可以在配备Java解释器和运⾏环境的任何计算机系统上运⾏。

任何Java代码会被解释成⼀种中间语⾔,然后通过不同机⼦的特定环境(如机器指令)运⾏程序。

实现⽅便移植的特点。

8.解释性。

Java解释器能直接运⾏⽬标代码指令。

链接程序通常⽐编译程序所需资源少。

9.⾼性能。

如果解释器速度不慢,Java可以在运⾏时直接将⽬标代码翻译成机器指令。

Sun⽤直接解释器⼀秒钟内可调⽤300,000个过程。

10.多线程:Java提供的多线程功能使得在⼀个程序⾥可同时执⾏多个⼩任务。

多线程带来的更⼤好处是更好的交互性能和实时控制性能。

11.动态:动态特性允许程序动态地装⼊运⾏过程中所需要的类。

在运⾏时确定引⽤的好处是可以使⽤已被更新的类,⽽不必担⼼会影响原有的代码。

如果程序连接了⽹络中另⼀系统中的某⼀类,该类的所有者也可以⾃由地对该类进⾏更新,⽽不会使任何引⽤该类的程序崩溃。

Java在诞⽣之后不久,便受到⼴⼤群众的欢迎,甚⾄有⼈说出有了Java,可以不要C/C++了。

⼀度把Java提到了很⾼的地位。

这当然是对Java的⼀种赞赏,只是有点过了。

到今天,Java依然不能取代C,C++,⽽且还出现了新的对⼿――.Net(后⾯将会介绍)。

Java⽬前主要应⽤:Web浏览器、⽹络应⽤系统。

C#语⾔。

C#是⼀种精确、简单、类型安全、⾯向对象的语⾔。

说到C#,就不得不先简单介绍⼀下.net。

到底什么是.net呢,按照微软总裁兼⾸席执⾏官Steve Ballrner把它定义为:.Net代表⼀个集合,⼀个环境,它可以作为平台⽀持下⼀代Internet的可编程结构。

C#是.net的代表语⾔。

C#的特点:
1. 完全⾯向对象。

2. ⽀持分布式,之所以有C#,是因为微软相信分布式应⽤程序是未来的趋势,即处理过程分布在客户机和服务器上。

所以C#⼀出⽣就注定了能很好解决分布式问题。

3. 跟Java类似,C#代码经过编译后,成为了⼀种IL(中间语⾔)。

在运⾏时,再把IL编译为平台专⽤的代码。

4. 健壮,C#在检查程序错误和编译与运⾏时错误⼀点也不逊于Java,C#也⽤了⾃动管理内存机制。

5. C#不像Java那样完全摒弃了指针和⼿动内存管理。

C#默认情况下是不能使⽤指针的,程序员在有必要时可以打开指针来使⽤。

这样可以保证编程的灵活性。

6. 安全性:C#的安全性是有.net平台来提供的。

C#代码编译后成为IL语⾔。

是⼀种受控代码,.net提供类型安全检查等机制保证代码是安全的。

7. 可移植性:由于C#使⽤类似Java的中间语⾔机制。

使得C#也跟Java类似,可以很⽅便的移植到其他系统。

在运⾏时,再把中间代码编译为适合特定机器的代码。

8. 解释性:C#也是⼀种特殊的解释性语⾔。

9. ⾼性能:C#把代码编译成中间语⾔后,可以⾼效的执⾏程序。

10. 多线程:与Java类似,可以由⼀个主进程分出多个执⾏⼩任务的多线程。

11. 组件模式:C#很适合组件开发。

各个组件可以由其他语⾔实现的,然后集成在.net中。

C#是在Java流⾏起来后所诞⽣的⼀种新的语⾔。

由于微软在操作系统上占有很⼤的优势。

在以往的开发中累积了不少经验,所形成的.net平台,所以C#在Windows⽅⾯可以说⽐Java具有更⼤的优势。

如果单纯从技术上来讲,C#在⽹络编程上可以与Java匹敌。

C#还在Windows Forms也有⼀定的优势。

C#是⼀种⾮常类似于C++的语⾔,风格是更接近于Java,不管是C++程序员还是Java程序员,都可以很⽅便的转到C#上来。

C#的强⼤是依赖于.net的发展,⽽.net的发展是看微软在.net上的决⼼和投⼊有多少。

从Windows 2003和Vista系统可以看出(前者内
置.net1.1,后者内置.net2.0。

).Net在Windows编程中具有重要的战略意义。

C#⽬前主要是应⽤在⽹络编程上,其他领域⽐如数据库、窗体编程,都逐渐在增⼤。

⼀句话概括:需要拿着游标卡尺学习的语⾔
Python 是⼀款服务器端解释型开源⾮编译脚本语⾔。

它常被昵称为胶⽔语⾔,能够把⽤其他语⾔制作的各种模块(尤其是 C/C++)很轻松地联结在⼀起。

Python 的优势:
Python 学习简单,被誉为 “最易学习的语⾔”
Python 的不⾜:
Python 存在⼀些只在特定情况下才会出现(⽆法重现)的 bug
职业路线:
(1)⽤ Django 框架进⾏ Web 开发:和 Java 没什么两样。

(2)⽤ PIL 框架进⾏图形处理
(3)物联⽹:Raspberry Pi 等物联⽹平台都选择了 Python 作为开发语⾔
(4)Python 有⼀个⽆所不能的 Hack 库,如果认为 “打⼯时不可能打⼯的” 就去当⼀个⾃由的⿊客吧
特性:
1. 解释性语⾔
2. 拥有丰富的库
3. 跨平台
4. 可移植、可扩展
5. ⽀持GUI编程
6. 可嵌⼊
优点:
1. 简单,易学
2. 免费,开源
3. 可移植性强
4. 属于解释性的⼀门动态语⾔
5. ⾯向对象
6. 拥有丰富的库
7. 强制性缩进代码使得代码规范缺点:
1. 运⾏速度慢
2. 国内市场⼩
3. 中⽂资料匮乏。

相关文档
最新文档