開啟主選單

求真百科

編程語言英語:programming language),是用來定義計算機程序的形式語言。它是一種被標準化的交流技巧,用來向計算機發出指令[1]。一種能夠讓程序員準確地定義計算機所需要使用數據的計算機語言,並精確地定義在不同情況下所應當採取的行動。

最早的編程語言是在電腦發明之前產生的,當時是用來控制提花織布機及自動演奏鋼琴的動作。在電腦領域已發明了上千不同的編程語言,而且每年仍有新的編程語言誕生。很多編程語言需要用指令方式說明計算的程序,而有些編程語言則屬於宣告式編程,說明需要的結果,而不說明如何計算。

編程語言的描述一般可以分為語法及語義。語法是說明編程語言中,哪些符號或文字的組合方式是正確的,語義則是對於編程的解釋。有些語言是用規格文件定義,例如C語言的規格文件也是ISO標準中一部分,2011年後的版本為ISO/IEC 9899:2017,而其他55語言(像Perl)有一份主要的編程語言實現文件,視為是參考實現。

目錄

概論

編程語言原本是被設計成專門使用在計算機上的,但它們也可以用來定義算法或者數據結構。正是因為如此,程序員才會試圖使程序代碼更容易閱讀。

編程語言往往使程序員能夠比使用機器語言更準確地表達他們所想表達的目的。對那些從事計算機科學的人來說,懂得程序設計語言是十分重要的,因為在當今所有的計算都需要程序設計語言才能完成。

目前發明了許多的編程語言,編程語言本身可能修改以符合新需求,或是和其他的編程語言結合使用,儘管人們多次試圖創造可以符合所有需求的通用編程語言,但以「符合所有需求」的標準來看,這些嘗試都失敗了。之所以有那麼多種不同的編程語言存在的原因是,編寫程序的初衷其實也各不相同;新手與老手之間技術的差距非常小,而且有許多語言對新手來說太容易學;還有,不同程序之間的運行成本(runtime cost)各不相同。

有許多用於特殊用途的語言,只在特殊情況下使用。例如,PHP專門用來顯示網頁;Perl更適合文本處理;C語言被廣泛用於操作系統和編譯器的開發(所謂的系統編程)。

高級語言的出現使得計算機程序設計語言不再過度地依賴某種特定的機器或環境。這是因為高級語言在不同的平台上會被編譯成不同的機器語言,而不是直接被機器執行。最早出現的編程語言FORTRAN的一個主要目標,就是實現平台獨立。

雖然大多數的語言既可被編譯又可被解譯,但大多數僅在一種情況下能夠良好運行。在一些編程系統中,程序要經過幾個階段的編譯,一般而言,後階段的編譯往往更接近機器語言。這種常用的使用技巧最早在1960年代末用於BCPL,編譯程序先編譯一個叫做「0代碼」的轉換程序(representation),然後再使用虛擬器轉換到可以運行於機器上的真實代碼。這種成功的技巧之後又用於Pascal和P-code,以及Smalltalk和二進制碼,在很多時候,中間過渡的代碼往往是解譯,而不是編譯的。

如果所使用的翻譯的機制是將所要翻譯的程序代碼作為一個整體翻譯,並之後運行內部格式,那麼這個翻譯過程就被稱為編譯。因此,一個編譯器是一個將人可閱讀的程序文本(叫做源代碼)作為輸入的數據,然後輸出可執行文件(object code)。所輸出的可執行文件可以是機器語言,由計算機的中央處理器直接運行,或者是某種模擬器的二進制代碼。

如果程序代碼是在運行時才即時翻譯,那麼這種翻譯機制就被稱作解釋。經解釋的程序運行速度往往比編譯的程序慢,但往往更具靈活性,因為它們能夠與執行環境互相作用。

歷史

1940年代當計算機剛剛問世的時候,程序員必須手動控制計算機。當時的計算機十分昂貴,唯一想到利用程序設計語言來解決問題的人是德國工程師康拉德·楚澤[2]

幾十年後,計算機的價格大幅度下跌,而計算機程序也越來越複雜。也就是說,開發時間已經遠比運行時間寶貴。

於是,新的集成、可視的開發環境越來越流行。它們減少了所付出的時間、金錢(以及腦細胞)。只要輕敲幾個鍵,一整段代碼就可以使用了。這也得益於可以重用的程序代碼庫。

視頻

編程語言 相關視頻

什麼是編程語言,你知道嗎?
編程語言的發展史

參考文獻