最近我想把计算机语言的发展史整理一下,阅读了很多关于这方面的资料,并且画了一张思维导图,希望能够加深对这一方面的思考和理解。
第一代程序设计语言(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进入了计算机科学的研究范畴。 其原意是非过程化程序设计语言,是针对以处理过程为中心的第三代语言提出的,希望通过某些标准处理过程的自动生成,使用户只说明要做什么,而把具体的执行步骤的安排交软件自动处理。
转自:https://blog.csdn.net/futurelifes/article/details/78577847