常见语言的优缺点

来源:互联网 发布:淘宝天狼月季花真的吗 编辑:程序博客网 时间:2024/05/16 15:28

汇编语言:

        汇编是第一个计算机语言。汇编语言实际上是你计算机处理器实际运行的指令的命令形式表示法。这意味着你将与处理器的底层打交道,比如寄存器和堆栈。如果你要找的是类英语且有相关的自我说明的语言,这不是你想要的。 特别注意:语言的名字叫“汇编”。把汇编语言翻译成真实的机器码的工具叫“汇编程序”

        优点:最小、最快的语言。汇编高手能编写出比任何其他语言能实现的快得多的程序。你将是利用处理器最新功能的人,因为你能直接使用它们。

        缺点:难学、语法晦涩、坚持效率,造成大量额外代码。

        移植性:接近零。因为这门语言是为一种单独的处理器设计的,根本没移植性可言。如果使用了某个特殊处理器的扩展功能,你的代码甚至无法移植到其他同类型的处理器上(比如,AMD的3DNow指令是无法移植到其它奔腾系列的处理器上的)。

 

C语言:

        C语言是DennisRitchie在七十年代创建的,它功能更强大,且与ALGOL保持更连续的继承性,而ALGOL则是COBOL和FORTRAN的结构化继承者。C语言被设计成一个比它的前辈更精巧、更简单的版本,它适于编写系统级的程序,比如操作系统。在此之前,操作系统是使用汇编语言编写的,而且不可移植。C语言是第一个使得系统级代码移植成为可能的编程语言。

        优点:运行效率高,接近机器语言,因此有益于编写小而快的程序。很容易与汇编语言结合。具有很高的标准化,因此其他平台上的各版本非常相似。

        缺点:不容易支持面向对象技术。语法有时会非常难以理解,并造成滥用。在编程过程中,你不得不花很多时间,考虑与你要解决的问题完全无关、且非常复杂的硬件资源管理问题。

        移植性:C语言的核心以及ANSI函数调用都具有移植性,但仅限于流程控制、内存管理和简单的文件处理。其他的东西都跟平台有关。比如说,为Windows和Mac开发可移植的程序,用户界面部分就需要用到与系统相关的函数调用。这一般意味着你必须写两次用户界面代码,不过还好有一些库可以减轻工作量。

C语言特别适用于以下几种程序:

1. 对运行速度要求很高的程序。

2. 与操作系统内核关系密切的程序

3. 必须在多个操作系统上移植的程序。

 

C++:

        C++语言是具有面向对象特性的C语言的继承者。面向对象编程(或称OOP)是结构化编程的下一步。OO程序由对象组成,其中的对象是数据和函数离散集合。有许多可用的对象库存在,这使得编程简单得只需要将一些程序“建筑材料”堆在一起(至少理论上是这样)。比如说,有很多的GUI和数据库的库实现为对象的集合。

        优点:组织大型程序时比C语言好得多。很好的支持面向对象机制。通用数据结构,如链表和可增长的阵列组成的库减轻了由于处理低层细节的负担。

        缺点:非常大而复杂,与C语言一样存在语法滥用问题,比C慢。大多数编译器没有把整个语言正确的实现。

        移植性:比C语言好多了,但依然不是很乐观。因为它具有与C语言相同的缺点,大多数可移植性用户界面库都使用C++对象实现。

 

Pascal语言:

        Pascal语言是由NicolasWirth在七十年代早期设计的,因为他对于FORTRAN和COBOL没有强制训练学生的结构化编程感到很失望,“空心粉式代码”变成了规范,而当时的语言又不反对它。Pascal被设计来强行使用结构化编程。最初的Pascal被严格设计成教学之用,最终,大量的拥护者促使它闯入了商业编程中。当Borland发布IBMPC上的TurboPascal时,Pascal辉煌一时。集成的编辑器,闪电般的编译器加上低廉的价格使之变得不可抵抗,Pascal编程了为MS-DOS编写小程序的首选语言。然而时日不久,C编译器变得更快,并具有优秀的内置编辑器和调试器。Pascal在1990年Windows开始流行时走到了尽头,Borland放弃了Pascal而把目光转向了为Windows编写程序的C++。TurboPascal很快被人遗忘。

        基本上,Pascal比C简单。虽然语法类似,它缺乏很多C有的简洁操作符。这既是好事又是坏事。虽然很难写出难以理解的“聪明”代码,它同时也使得一些低级操作,如位操作变得困难起来。

        优点:易学、平台相关的运行(Dephi)非常好。

        缺点:“世界潮流”面向对象的Pascal继承者(Modula、Oberon)尚未成功。语言标准不被编译器开发者认同。

       移植性:很差。语言的功能由于平台的转变而转变,没有移植性工具包来处理平台相关的功能。

 

VisualBasic:

        优点:整洁的编辑环境。易学、即时编译导致简单、迅速的原型。大量可用的插件。虽然有第三方的DirectX插件,DirectX7已准备提供VisualBasic的支持。

        缺点:程序很大,而且运行时需要几个巨大的运行时动态连接库。虽然表单型和对话框型的程序很容易完成,要编写好的图形程序却比较难。调用Windows的API程序非常笨拙,因为VB的数据结构没能很好的映射到C中。有OO功能,但却不是完全的面向对象。

        移植性:非常差。因为VisualBasic是微软的产品,你自然就被局限在他们实现它的平台上。

 

Java:

        Java是由Sun公司最初设计用于嵌入程序可移植性“小C++。在网页上运行小程序的想法着实吸引了不少人的目光,于是,这门语言迅速崛起。事实证明,Java不仅仅适于在网页上内嵌动画——它是一门极好的完全的软件编程的小语言。“虚拟机”机制、垃圾回收以及没有指针等使它很容易实现,不易崩溃,且不会泄漏资源的可靠程序。

        虽然不是C++的正式续篇,Java从C++中借用了大量的语法。它丢弃了很多C++的复杂功能,从而形成一门紧凑而易学的语言。不像C++,Java强制面向对象编程,要在Java里写非面向对象的程序就像要在Pascal里写“空心粉式代码”一样困难。

        优点:二进制码可移植到其他平台。程序可以在网页中运行。内含的类库非常标准且极其健壮。自动分配和垃圾回收避免程序中资源泄漏。

        缺点:使用一个“虚拟机”来运行可移植的字节码而非本地机器码,程序将比真正编译器。有很多技术(例如“即时”编译器)很大的提高了Java的速度,不过速度永远比不过机器码方案。早期的功能,如AWT没经过慎重考虑,虽然被正式废除,但为了保持向后兼容不得不保留。越高级的技术,造成处理低级的机器功能越困难,Sun为这门语言增加新的“受祝福”功能的速度实在太慢。

        移植性:最好的,但仍未达到它本应达到的水平。低级代码具有非常高的可移植性,但是,很多UI及新功能在某些平台上不稳定。

 

C#

        C#是一种精确、简单、类型安全、面向对象的语言。其是.Net的代表性语言。什么是.Net呢?按照微软总裁兼首席执行官Steve Ballmer把它定义为:.Net代表一个集合,一个环境,它可以作为平台支持下一代Internet的可编程结构。

C#的特点:

1.完全面向对象。

2.支持分布式。

3.自动管理内存机制。

4.安全性和可移植性。

5.指针的受限使用。

6.多线程。

        和Java类似,C#可以由一个主进程分出多个执行小系统的多线程。C#是在Java流行起来后所诞生的一种新的程序开发语言。

0 0
原创粉丝点击