6.计算机语言的发展 编程语言发展 编程语言类型 为什么会有编程语言 编程语言什么作用 机器语言 高级语言分类 编程语言历史 编程语言有哪些 编程语言编年史
语言
计算机语言指用于人与计算机之间通讯的语言,也即是平时说的编程语言
编程
指令的概念很早就形成了,其实指令本身就是一种编程
一个指令替代了一组逻辑电路或者机电式/机械式中的一个计算单元
你只需要一个指令就相当于已经操作了一整个的模块
这不也是一种编程的思维吗,只不过是指令对应硬件
随着指令在现代计算机中的应用,计算机程序得以快速的发展
因为一旦你知道计算机可以执行哪些指令,其实也就是哪些功能,具有哪些能力
你就可以把这些指令按照一定的逻辑顺序重排组装
这就是广义上的计算机程序
计算机语言的发展有两个阶段
面向机器到脱离机器的转变
针对不同场景解决不同业务逻辑问题方向的发展
机器语言
为了使用计算机计算,必须将程序指令输入到计算机中
最原始的时候那就是开关和纸带,也就是相当于直接使用二进制来工作,而且是人工操作
也就是使用该机器指令01组合的字符串
也就是机器语言,这其实是纯粹的计算机语言
汇编语言
就如同母语是普通话的人就不能天生的和母语是英语的人交流
想要交流就必须有人要学习一门外语
而想要学习计算机的机器语言这门外语,远比学习英语要复杂晦涩
因为机器语言01字符串对于人类的认知来说,完全就等同于乱码
难读、难编、难记和易出错
你根本不会知道到底是什么意思
随后,开始用与代码指令实际含义相近的英文缩写词、字母和数字等符号来替代描述指令代码
出现了汇编语言,汇编语言只是机器语言的助记符语言
不同的机器有不同的汇编语言
需要汇编程序翻译成计算机可以识别的二进制机器语言
本质还是面向机器的低级语言
机器语言和汇编语言都是面向硬件的具体操作的,语言对机器过分依赖,所以称之为低级语言
高级语言
为了能够更加通用的解决问题,而不是专注于硬件本身,出现了高级语言
高级语言不用关注机器的指令,使用接近人习惯的自然语言和数学语言符号
能够专注于问题本身的业务逻辑
显然高级语言也是不能直接运行于机器上的,需要翻译程序转换为机器可以执行的目标代码程序
虽然高级语言不涉及寄存器这些东西,不需要你了解硬件
但是这是高级语言隐藏了她们,而不是说这些东西不存在不重要,所有的语言都逃不过这一关
始终是要编程机器语言的
也正是由于隐藏了太多东西,就好像与底层的东西隔着好几层玻璃
尽管看的见,但是自然清晰度下降
直接后果就是编译后的文件变得更大,执行速度将会变慢(相对于汇编)
从网上扒出来一份统计,或许不准,作为了解
1951 – Regional Assembly Language
1952 – Autocode
1954 – IPL (LISP语言的祖先)
1955 – FLOW-MATIC (COBOL语言的祖先)
1957 – FORTRAN (第一个编译型语言)
1957 – COMTRAN (COBOL语言的祖先)
1958 – LISP
1958 – ALGOL 58
1959 – FACT (COBOL语言的祖先)
1959 – COBOL
1959 – RPG
1962 – APL
1962 – Simula
1962 – SNOBOL
1963 – CPL (C语言的祖先)
1964 – BASIC
1964 – PL/I
1966 – JOSS
1967 – BCPL (C语言的祖先)
1968 – Logo
1969 – B (C语言的祖先)
1970 – Pascal
1970 – Forth
1972 – C
1972 – Smalltalk
1972 – Prolog
1973 – ML
1975 – Scheme
1978 – SQL
1980 – C++ (既有类的C语言,更名于1983年7月)
1983 – Ada
1984 – Common Lisp
1984 – MATLAB
1985 – Eiffel
1986 – Objective-C
1986 – Erlang
1987 – Perl
1988 – Tcl
1988 – Mathematica
1989 – FL
1990 – Haskell
1991 – Python
1991 – Visual Basic
1993 – Ruby
1993 – Lua
1994 – CLOS (ANSI Common Lisp的一部分)
1995 – Java
1995 – Delphi (Object Pascal)
1995 – JavaScript
1995 – PHP
1996 – WebDNA
1997 – Rebol
1999 – D
2000 – ActionScript
2001 – C#
2001 – Visual Basic .NET
2002 – F#
2003 – Groovy
2003 – Scala
2007 – Clojure
2009 – Go
2011 – Dart