ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

编程语言发展历程

编程语言发展历程 为什么会出现编程语言计算机本质上只能执行非常简单的机器指令。最早的程序员甚至需要直接使用由0和1组成的机器码编写程序例如10110000 01100001这种方式存在几个明显问题难读、难写、易出错、和具体 CPU 强相关。因此编程语言的发展本质上一直在解决一个问题怎样让人类更容易地告诉计算机“我要你做什么”从这个角度看编程语言的发展过程其实就是不断提高“抽象层次”的过程。机器语言机器语言是 CPU 能够直接执行的指令。假设有一种简单的 CPU其中10110000 表示“把一个数放进寄存器”后面的 00000101 表示数字5那么一段机器语言可能长这样10110000 00000101它可以理解为把数字5放进某个寄存器。机器语言的问题难写程序员需要记忆大量二进制编码。难读10110000 01100001 人几乎无法直观理解它是什么意思。不可移植不同 CPU 的机器指令不同因此早期程序与硬件高度绑定。汇编语言为了让机器指令更容易书写人们发明了汇编语言汇编语言使用助记符代替二进制指令。MOV AX,10相比机器码1011000000001010 显然容易理解很多程序员写汇编语言然后通过 汇编器Assembler 转换为机器码。汇编语言虽然比机器语言好很多但仍然存在和 CPU 强相关编程效率低程序复杂后难以维护很多操作需要程序员自己完成MOV AX,10MOV BX,20ADD AX, BX 程序员希望直接写1020高级编程语言诞生20 世纪 50 年代开始高级编程语言逐渐出现。高级语言不再直接描述 CPU 指令而是更接近人类的数学表达和逻辑表达。1957 年IBM 推出了 FORTRANFORmula TRANslation 即公式翻译语言主要用于科学计算CA B 程序员不再需要关心把 A 放到哪个寄存器把 B 放到哪个寄存器执行哪个 ADD 指令而只需要表达CA B程序员描述“做什么”编译器负责解决“怎么做”。1959 年左右COBOL 出现。COBOL 主要面向商业领域。COBOL 的特点是语法非常接近英语。ADD A TO B. 它代表编程语言发展的另一个方向让程序越来越容易被人类理解。1958 年左右ALGOL 出现。虽然今天 ALGOL 使用者已经很少但它对后来编程语言的影响非常大。很多现代语言的基本结构都受到 ALGOL 影响例如if else for while begin/endB语言与C语言20 世纪 60 年代末贝尔实验室开始开发 UNIX 操作系统。最初 UNIX 很多代码使用汇编语言编写。但汇编语言的问题很明显开发慢难维护难移植于是开发者希望用高级语言写操作系统。Ken Thompson 开发了 B 语言B 语言受到 BCPL 的影响。1972 年左右Dennis Ritchie 在贝尔实验室设计出了 C语言。C语言最重要的用途之一就是重新实现 UNIX 操作系统。这件事情非常重要。因为以前操作系统 ≈ 汇编语言而 C 语言证明操作系统也可以主要使用高级语言编写C语言有一个非常特殊的位置它既具有高级语言的结构又可以进行非常底层的操作指针内存位运算地址所以 C 语言经常被称为接近硬件的高级语言。大量现代编程语言都受到 C 的影响。结构化程序设计时代早期程序中经常大量使用GOTO程序可能出现大量跳转。程序复杂后会变成所谓Spaghetti Code意大利面条式代码逻辑非常混乱。因此后来开始强调结构化程序设计。核心思想是程序主要由三种基本结构组成顺序、分支、循环。1970 年Niklaus Wirth 设计 Pascal。Pascal 的目标之一是教程序员学习良好的结构化编程方式。if a b then begin writeln(a); end;面向对象编程出现随着程序越来越复杂仅仅依靠函数已经难以管理大型软件于是出现了Object-Oriented Programming即面向对象编程OOP。核心思想是把 数据 操作数据的方法 放在一起。例如Car ├── speed ├── color ├── start() ├── stop() └── drive()20 世纪 70 年代Smalltalk 出现。Smalltalk 对面向对象编程的发展影响巨大。它强调Everything is an object。即一切皆对象。很多现代语言的面向对象思想都受到 Smalltalk 影响。1980 年代Bjarne Stroustrup 在 C 语言基础上开发了 C。最初名称是C with Classes后来改名C含义可以理解为增强版 C。1995 年Sun Microsystems 发布 Java。Java 提出了一个非常重要的理念Write Once, Run Anywhere即一次编写到处运行。脚本语言兴起随着计算机越来越普及很多程序并不需要追求极致性能。人们开始更重视开发速度、简单易学、自动化、快速开发于是脚本语言越来越流行。Python 由 Guido van Rossum 在 1991 年左右发布。Python 的设计目标之一简单、清晰、易读。a10b20print(ab)#includestdio.hintmain(){inta10;intb20;printf(%d\n,ab);return0;}1995 年Brendan Eich 设计 JavaScript。最初 JavaScript 的目标非常简单让网页可以“动起来”。JavaScript 从浏览器脚本逐渐发展成完整生态JavaScript │ ├── 浏览器前端 │ ├── Node.js 后端 │ ├── Electron 桌面应用 │ └── React Native 移动端互联网后端语言的发展Go面向云计算时代Go 由 Google 设计并于 2009 年左右公开。Go 的主要设计目标包括简单、编译快、并发方便、部署简单、适合服务器Go 提供go function()这种非常简单的并发模型。Rust安全 高性能Rust 最初由 Mozilla 推动2010 年前后开始发展。Rust 主要解决一个长期存在的问题如何既拥有 C/C 的高性能又减少内存安全问题
返回列表