讓小朋友懂一點計算機(八)|程式語言的發展歷史

二進制

現代計算機都只能理解二進制代碼,也就是0和1,其實現代的編程的語言其實對於計算機來說是看不懂的,必須要轉換成二進制的形式計算機才可以運行,因此這種二進制的編程語言稱為

機器語言或者機器碼。而現代編程語言則儘可能地滿足人類的需求。這就像漢語和英語還有法語都可以表示你好這個意思一樣。語言都是相通的,本質並沒有區別。

助記符(彙編器)

在計算機早期階段,必須用機器碼來寫程序。首先,人們會把要寫的程序用比較程序化的描述記錄下來(這裡使用的是英語),這種對程序的高層次的描述,叫偽代碼,在紙上寫好偽代碼之後,用操作碼錶將偽代碼轉換成二進制機器碼。然後交給計算機來執行。這種方法一聽就很繁瑣。

讓小朋友懂一點計算機(八)|編程語言的發展歷史

所以在1940-1950年代,人們將機器碼和一些英文單詞對應起來,給每一個操作碼起一個簡單的名字,叫“助記符”,助記符後面緊跟數據,形成完整的指令,這樣程序讀起來會更直觀一些。

但是助記符方便了人類,但是計算機只能理解二進制操作碼,於是程序員用二進制程序來幫忙,它可以讀懂文字指令,自動轉換為二進制指令,將這些助記符指令轉換為機器碼。

這種轉換程序就叫做彙編器(Assembler),彙編器讀取用匯編語言寫的程序,然後轉換為機器碼,一般來說,一條彙編指令對應一條機器指令。

讓小朋友懂一點計算機(八)|編程語言的發展歷史

這是一段彙編程序

編譯器

彙編語言和底層硬件的連接很緊密,因此彙編語言還是很繁瑣,很麻煩。

葛麗絲·霍普博士也覺得彙編語言很麻煩,於是設計了一個高級編程語言,叫算術語言版本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語言


分享到:


相關文章: