二進制
現代計算機都只能理解二進制代碼,也就是0和1,其實現代的編程的語言其實對於計算機來說是看不懂的,必須要轉換成二進制的形式計算機才可以運行,因此這種二進制的編程語言稱為
機器語言或者機器碼。而現代編程語言則儘可能地滿足人類的需求。這就像漢語和英語還有法語都可以表示你好這個意思一樣。語言都是相通的,本質並沒有區別。助記符(彙編器)
在計算機早期階段,必須用機器碼來寫程序。首先,人們會把要寫的程序用比較程序化的描述記錄下來(這裡使用的是英語),這種對程序的高層次的描述,叫偽代碼,在紙上寫好偽代碼之後,用操作碼錶將偽代碼轉換成二進制機器碼。然後交給計算機來執行。這種方法一聽就很繁瑣。
![讓小朋友懂一點計算機(八)|編程語言的發展歷史](http://p2.ttnews.xyz/loading.gif)
所以在1940-1950年代,人們將機器碼和一些英文單詞對應起來,給每一個操作碼起一個簡單的名字,叫“助記符”,助記符後面緊跟數據,形成完整的指令,這樣程序讀起來會更直觀一些。
但是助記符方便了人類,但是計算機只能理解二進制操作碼,於是程序員用二進制程序來幫忙,它可以讀懂文字指令,自動轉換為二進制指令,將這些助記符指令轉換為機器碼。
這種轉換程序就叫做彙編器(Assembler),彙編器讀取用匯編語言寫的程序,然後轉換為機器碼,一般來說,一條彙編指令對應一條機器指令。
![讓小朋友懂一點計算機(八)|編程語言的發展歷史](http://p2.ttnews.xyz/loading.gif)
這是一段彙編程序
編譯器
彙編語言和底層硬件的連接很緊密,因此彙編語言還是很繁瑣,很麻煩。
葛麗絲·霍普博士也覺得彙編語言很麻煩,於是設計了一個高級編程語言,叫算術語言版本0(Arithmetic Language Version 0)簡稱A-0。
一行高級編程語言,可能會轉換成幾條或者幾十條二進制指令。為了做到這種複雜的轉換,霍普博士在1952年創造了第一個編譯器。這種編譯器可以將高級語言轉換為低級語言,例如彙編語言或者機器碼。
例如計算兩個數的值:
左邊是彙編語言,右邊是Python語言
早期計算機編程語言
1957年IBM發明了FORTRAIN語言,1950年代大多數編程語言和編程語言只能運行在一種計算機上,如果升級電腦,那麼一些軟件的代碼就要重寫。這樣很不方便,因此早1959年社會各界組成了一個聯盟——數據系統語言聯盟,由葛麗絲·霍普博士擔任顧問,來開發一種通用的編程語言,可以在不同的機器上運行。
最後COBOL語言誕生了(Common Business-Oriented Language)普通面向商業語言。
為了兼容不同的底層硬件,每個計算機架構需要一個COBOL編譯器,不同的計算機架構有不同的編譯器,COBOL語言被不同的編譯器翻譯成不同的機器碼,但是執行起來的結果都是一樣的。這就是一次編寫,到處運行,現代大多數編程語言都是如此。
這一變化大大降低了編程的門檻。現在,科學家、工程師、醫生、小學生都可以學會編程。編程成為了大眾化的工具。這使得人們更好地使用計算機。
現代編程語言的發展
隨著硬件製造水平的突飛猛進,計算機編程語言也在快速發展。
1960年代有ALGOL、LISP、BASIC語言
1970年代有Pascal、C、Smalltalk語言
1980年代有C++、Objective-C、Perl語言
1990年代有Python、Ruby、Java語言
2000年之後有Swift、C#、GO語言
閱讀更多 01先生你好 的文章