计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
电脑每做的一次动作,一个步骤,都是按照以经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。
计算机所能识别的语言只有机器语言,即由0和1构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。
目前通用的编程语言有两种形式:汇编语言和高级语言。
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:
解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。
编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。
现将编程语言分为四个阶段进行讲述它的发展史:
第一代程序设计语言(First generation programming language)是一种机器级别的程序设计语言,其被用 1s 和 0s 写。它不需要被编译和转换和能够被 CPU 直接使用。使用 1GL 这个代码能够很快和高效地被运行,因为它是直接被 CPU 运行的。然而,机器语言相比更级的语言稍难学习,如果发生了错误更难被编辑。而且代码可移植性在基于 1GL 的代码上显著地缩减。第一代程序设计语言现在主要使用在非常古老的计算机上。机器级别的语言仍在现代语言的少数领域被使用,在创建机器语言的本机代码编译器的帮助下,通常来自一个更高级的语言。
第二代程序设计语言是一种符号式语言,以简单易懂的英文或数字符来取代机器语言中的二进码,也称之为助忆语言。第二代编程语言(2GL)指的是组合语言(Assembly Language),是最接近机器语言(1GL)的编程语言。[1] 它是一种符号式语言,以简单易懂的英文或数字符来取代机器语言中的二进码,也称之为助忆语言(Mnemonic Language)。[1] 组合语言无法直接供给机器使用,仍须透过组合程式(Assembler)翻译成由”0”、”1”组成的机器语言,才能被机器加以执行。[1] 组合语言近似于机器语言,一样不具移植性,所以跟机器语言一样被称为低阶语言。
第三代编程语言(3GL)是设计更容易被人们所理解的高级程序语言,包括像命名变量的事物。Fortran, ALGOL 和 COBOL 是这种语言的早期例子。大部分“现代”语言(BASIC, C, C++)是第三代语言。大部分 GLs 支持结构化语言设计。
四代语言(Fourth-Generation Language, 以下简称4GL)的出现是出于商业需要。4GL这个词最早是在80年代初期出现在软件厂商的广告和产品介绍中的。因此,这些厂商的4GL产品不论从形式上看还是从功能上看,差别都很大。但是人们很快发现这一类语言由于具有“面向问题”、“非过程化程度高”等特点,可以成数量级地提高软件生产率,缩短软件开发周期,因此赢得了很多用户。1985年,美国召开了全国性的4GL研讨会,也正是在这前后,许多著名的计算机科学家对4GL展开了全面研究,从而使 4GL进入了计算机科学的研究范畴。
其原意是非过程化程序设计语言,是针对以处理过程为中心的第三代语言提出的,希望通过某些标准处理过程的自动生成,使用户只说明要做什么,而把具体的执行步骤的安排交软件自动处理。