語言
計算機語言指用於人與計算機之間通訊的語言,也即是平時說的編程語言
編程
指令的概念很早就形成了,其實指令本身就是一種編程
一個指令替代了一組邏輯電路或者機電式/機械式中的一個計算單元
你只需要一個指令就相當於已經操作了一整個的模塊
這不也是一種編程的思維嗎,只不過是指令對應硬件
隨着指令在現代計算機中的應用,計算機程序得以快速的發展
因為一旦你知道計算機可以執行哪些指令,其實也就是哪些功能,具有哪些能力
你就可以把這些指令按照一定的邏輯順序重排組裝
這就是廣義上的計算機程序
計算機語言的發展有兩個階段
面向機器到脫離機器的轉變
針對不同場景解決不同業務邏輯問題方向的發展
機器語言
為了使用計算機計算,必須將程序指令輸入到計算機中
最原始的時候那就是開關和紙帶,也就是相當於直接使用二進制來工作,而且是人工操作
也就是使用該機器指令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