当前位置:文档之家› 计算机语言分类

计算机语言分类

计算机语言计算机语言(Computer Language)指用于人与计算机之间通讯的语言。

计算机系统最大特征是指令通过一种语言传达给机器。

为了使电子计算机进行各种工作,就需要有一套用以编写计算机程序的数字、字符和语法规划,由这些字符和语法规则组成计算机各种指令(或各种语句)。

发展:集成、可视的开发环境——结构化高级语言(在更抽象的层次上表达意图)——面向对象程序设计(支持此技术的程序设计语言,eiffel,c++,java)趋势:面向对象:提供简单的类机制以及动态的接口模型。

对象中封装状态变量以及相应的方法,实现了模块化和信息隐藏;提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。

面向应用:只需要告诉程序你要干什么,程序就能自动生成算法,自动进行处理,这就是非过程化的程序语言。

计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。

机器语言电子计算机所使用的是由"0"和"1"组成的二进制数,二进制是计算机的语言的基础。

计算机发明之初,人们用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由"0"和"1"组成的指令序列交由计算机执行,这种计算机能够认识的语言,就是机器语言。

使用机器语言是十分痛苦的,特别是在程序有错需要修改时更是如此。

因此程序就是一个个的二进制文件。

一条机器语言成为一条指令。

指令是不可分割的最小功能单元。

而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。

但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。

机器语言,是第一代计算机语言。

汇编语言为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用"ADD"代表加法,"MOV"代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。

然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。

汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。

汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。

它同样需要编程者将每一步具体的操作用命令的形式写出来。

汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。

高级语言高级语言有:BASIC(True basic、Qbasic、Virtual Basic)、C、C++、PASCAL、FORTRAN、智能化语言(LISP、Prolog、CLIPS、OpenCyc、Fazzy)、动态语言(Python、PHP、Ruby、Lua)等等。

高级语言源程序可以用解释、编译两种方式执行,通常用后一种。

注:解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。

编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。

但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(*.OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。

如今大多数的编程语言都是编译型的,例如VisualBasic、VisualC++、VisualFoxpro、Delphi等。

高级语言是绝大多数编程者的选择。

和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。

由于省略了很多细节,所以编程者也不需要具备太多的专业知识。

高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。

在C语言诞生以前,系统软件主要是用汇编语言编写的。

由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很差;但一般的高级语言又难以实现对计算机硬件的直接操作(这正是汇编语言的优势),于是人们盼望有一种兼有汇编语言和高级语言特性的新语言——C 语言。

高级语言的发展也经历了从早期语言到结构化程序设计语言,从面向过程到非过程化程序语言的过程。

相应地,软件的开发也由最初的个体手工作坊式的封闭式生产,发展为产业化、流水线式的工业化生产。

常见语言汇编语言汇编是第一个计算机语言。

汇编语言实际上是你计算机处理器实际运行的指令的命令形式表示法。

这意味着你将与处理器的底层打交道,比如寄存器和堆栈。

如果你要找的是类英语且有相关的自我说明的语言,这不是你想要的。

特别注意:语言的名字叫“汇编”。

把汇编语言翻译成真实的机器码的工具叫“汇编程序”。

把这门语言叫做“汇编程序”这种用词不当相当普遍,因此,请从这门语言的正确称呼作为起点出发。

优点:最小、最快的语言。

汇编高手能编写出比任何其他语言能实现的快得多的程序。

你将是利用处理器最新功能的第一人,因为你能直接使用它们。

缺点:难学、语法晦涩、坚持效率,造成大量额外代码—不适于心脏虚弱者。

移植性:接近零。

因为这门语言是为一种单独的处理器设计的,根本没移植性可言。

如果使用了某个特殊处理器的扩展功能,你的代码甚至无法移植到其他同类型的处理器上(比如,AMD的3DNow指令是无法移植到其它奔腾系列的处理器上的)。

C语言C语言是Dennis Ritchie在七十年代创建的,它功能更强大且与ALGOL保持更连续的继承性,而ALGOL则是COBOL和FORTRAN的结构化继承者。

C语言被设计成一个比它的前辈更精巧、更简单的版本,它适于编写系统级的程序,比如操作系统。

在此之前,操作系统是使用汇编语言编写的,而且不可移植。

C语言是第一个使得系统级代码移植成为可能的编程语言。

优点:有益于编写小而快的程序。

很容易与汇编语言结合。

具有很高的标准化,因此其他平台上的各版本非常相似。

缺点:不容易支持面向对象技术。

语法有时会非常难以理解,并造成滥用。

移植性:C语言的核心以及ANSI函数调用都具有移植性,但仅限于流程控制、内存管理和简单的文件处理。

其他的东西都跟平台有关。

比如说,为Windows和Mac开发可移植的程序,用户界面部分就需要用到与系统相关的函数调用。

这一般意味着你必须写两次用户界面代码,不过还好有一些库可以减轻工作量。

C++C++语言是具有面向对象特性的C语言的继承者。

面向对象编程,或称OOP是结构化编程的下一步。

OO程序由对象组成,其中的对象是数据和函数离散集合。

有许多可用的对象库存在,这使得编程简单得只需要将一些程序“建筑材料”堆在一起(至少理论上是这样)。

比如说,有很多的GUI和数据库的库实现为对象的集合。

优点:组织大型程序时比C语言好得多。

很好的支持面向对象机制。

通用数据结构,如链表和可增长的阵列组成的库减轻了由于处理低层细节的负担。

缺点:非常大而复杂。

与C语言一样存在语法滥用问题。

比C慢。

大多数编译器没有把整个语言正确的实现。

移植性:比C语言好多了,但依然不是很乐观。

因为它具有与C语言相同的缺点,大多数可移植性用户界面库都使用C++对象实现。

JavaJava是由Sun最初设计用于嵌入程序的可移植性“小C++”。

在网页上运行小程序的想法着实吸引了不少人的目光,于是,这门语言迅速崛起。

事实证明,Java不仅仅适于在网页上内嵌动画—它是一门极好的完全的软件编程的小语言。

“虚拟机”机制、垃圾回收以及没有指针等使它很容易实现不易崩溃且不会泄漏资源的可靠程序。

虽然不是C++的正式续篇,Java从C++中借用了大量的语法。

它丢弃了很多C++的复杂功能,从而形成一门紧凑而易学的语言。

不像C++,Java强制面向对象编程,要在Java里写非面向对象的程序就像要在Pascal里写“空心粉式代码”一样困难。

优点:二进制码可移植到其他平台。

程序可以在网页中运行。

内含的类库非常标准且极其健壮。

自动分配合垃圾回收避免程序中资源泄漏。

网上数量巨大的代码例程。

缺点:使用一个“虚拟机”来运行可移植的字节码而非本地机器码,程序将比真正编译器慢。

有很多技术(例如“即时”编译器)很大的提高了Java的速度,不过速度永远比不过机器码方案。

早期的功能,如AWT没经过慎重考虑,虽然被正式废除,但为了保持向后兼容不得不保留。

越高级的技术,造成处理低级的机器功能越困难,Sun为这门语言增加新的“受祝福”功能的速度实在太慢。

移植性:最好的,但仍未达到它本应达到的水平。

低级代码具有非常高的可移植性,但是,很多UI及新功能在某些平台上不稳定。

创作工具多数创作工具有点像VisualBasic,只是它们工作在更高的层次上。

大多数工具使用一些拖拉式的流程图来模拟流程控制。

很多内置解释的程序语言,但是这些语言都无法像上面所说的单独的语言那样健壮。

优点:快速原型—如果你的游戏符合工具制作的主旨,你或许能使你的游戏跑得比使用其他语言快。

在很多情况下,你可以创造一个不需要任何代码的简单游戏。

使用插件程序,如Shockware及IconAuthor播放器,你可以在网页上发布很多创作工具生成的程序。

缺点:专利权,至于将增加什么功能,你将受到工具制造者的支配。

你必须考虑这些工具是否能满足你游戏的需要,因为有很多事情是那些创作工具无法完成的。

某些工具会产生臃肿得可怕的程序。

移植性:因为创作工具是具有专利权的,你的移植性以他们提供的功能息息相关。

有些系统,如Director可以在几种平台上创作和运行,有些工具则在某一平台上创作,在多种平台上运行,还有的是仅能在单一平台上创作和运行。

SQL语言结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

相关主题