C語言社團札記1─何謂程式語言?

語言的用途就是做為人與人溝通的橋樑,

人和人溝通的語言就是「自然語言」(Natural Language),

而和電腦溝通就稱之為「程式語言」(Programming Language)。


程式語言依據與自然語言的相似度又可分為三種,

這三種為「機器語言」、「低階語言」、「高階語言」。

其分類圖為下
cclass1

機器語言

這是電腦硬體唯一看得懂的語言,

也就是一連串的0和1二進位數字組合,所以又稱為「機器碼」。

對於電腦而言,這些數字可能代表某種資料,或者是某個指令。

由於大多數的人無法瞭解或記憶這一連串的0和1,

所以發展出了低階語言和高階語言。

其他介紹可參閱這裡

低階語言

它把機器語言使用人類比較容易記憶的單字型式來對應一連串的0和1組合。

最典型的就是「組合語言」。

程式編寫完後,須使用「組譯器」把組合語言轉換成機器語言。

優點是比機器語言更容易記憶,由於是直接控制硬體結構,

執行效率上自然就比較好,

但缺點是不同CPU所使用的組合語言不相同,所以可攜性就顯得不佳。

高階語言

比其他兩種更接近自然語言,所以不會因為更換機器而改變語法。

當程式設計完成後,必須通過另外一些翻譯程式的翻譯後才能被電腦執行。

高階語言的運算子通常具有較強大的功能,

因此,單一行的高階語言程式可能被翻譯成許多的機器碼,以便完成複雜的工作。

依照執行程序的不同,區分為「編譯式語言」、「直譯式語言」。

「編譯式語言」的翻譯程式稱為「編譯器」(compiler),

而「直譯式語言」稱之為「直譯器」(interpreter)。

這兩種翻譯軟體比起組譯器的功能更為強大和複雜,

所以當你要在A機器上所撰寫的高階語言程式,

如果拿到B機器上執行,通常不需要修改或只需要小幅度修改,

因為你只需要更換另一套在B機器上執行的編譯器或直譯器,

就可以將程式重新翻譯並在B機器上正確執行。

編譯式語言

編譯器會把翻譯結果存成一個目的檔,

然後這個目的檔可經由連結到其他目的檔及函式庫之後形成可執行檔,

最後就可以由電腦直接執行了。

常見的編譯式語言有C、C++、Pascal 等等。

直譯式語言

直譯器與前者處理程式的順序不同,

當我們使用直譯式語言撰寫程式完畢並翻譯後,

並不會產生目的檔或可執行檔。

直譯器會將程式一行一行的讀入,逐行翻譯並交由電腦執行。

因此每次要執行編譯式語言程式時,都必須啟動直譯器來重新翻譯。

但也因此,當程式有錯誤發生時,前面沒錯誤的程式片段仍會被執行,

並停留在錯誤的那一行程式,所以有監督執行狀況的效果。

常見的直譯式語言有JavaScript、VBScript、Python 等等。

文章分類:C & C++|標籤:, , ,

迴響已關閉