程式語言英文programming language),又叫編程語言,係一種畀電腦執行嘅人工語言,用嚟定義電腦程式嘅文法規則,並可以向電腦發出指令。

程式語言嘅描述一般可以分為語法英文Syntax (programming languages)語義。語法係說明編程語言入面,邊啲符號或文字嘅組合方式係啱嘅,而語義係對於程式嘅解釋[1]。有啲語言係用規格檔案定義,例如C語言嘅規格檔案係ISO標準嘅一部份,2011年後嘅版本為ISO/IEC 9899:2011[2],而其他語言(好似Perl)有一份主要程式嘅語言實現檔案,視為係參考實現。

語言比較

唔同程式語言支援唔同風格嘅程式編寫。喺搞清楚要用乜嘢演算法解決個問題之後,個編程員就需要諗吓用邊一隻程式語言將個程式寫出嚟。揀用邊隻語言取決於好多因素,例如係隻語言有幾啱用、公司政策、有冇啱用嘅編譯器同埋係個編程員自己嘅習慣呀噉。最理想嘅情況係個編程員揀用最啱用嗰種語言[3]

雖然話唔同程式語言有咁大嘅差異,但有一啲嘢係多人用嘅程式語言冚唪唥都會有嘅。美國電腦科學家亞倫·當尼(Allen B. Downey)喺佢本著作《How To Think Like A Computer Scientist》(粵譯:點樣好似電腦科學家噉思考)入面指出,所有程式語言都有以下呢啲功能[4]

  • 輸入:由鍵盤、檔案或者部電腦駁住嘅第啲架生嗰度攞資訊。
  • 輸出:將自己攞到或者處理過嘅資訊喺個熒光幕上面顯示出嚟,再唔係就將呢啲資訊傳去某個檔案或者第件架生嗰度。
  • 算術:做一啲基本嘅算術運算,好似係等等。
  • 條件性執行:檢查吓某啲狀態,並且根據狀況決定做邊樣嘢好。
  • 重覆:係噉重覆做某樣作業做若干次,通常次次做親嗰樣作業都會有些少唔同。

高階低階

 
顯示緊機械語言嘅熒幕;呢種語言完全唔似自然語言,冇返咁上下專業訓練實唔會睇得明。
內文: 高階程式語言低階程式語言

程式語言可以分做高階(high-level)同低階(low-level)兩大種。呢種分級唔係話唔同程式語言有啲勁啲有啲渣啲,而且基於一隻程式語言有幾似自然語言:低階嘅語言,好似係機械語言(machine language)噉,差唔多完全係由 1 同 0 等嘅數字組成嘅,一般人冇乜可能會睇得明,但電腦就係基於呢啲語言嚟行嘅-機械語言完全冇將電腦嘅運算抽象化;而高階啲嘅語言,好似係頭先提過嘅 Python 噉,就係啲電腦科學家為咗令寫程式呢家嘢容易啲而設計出嚟嘅,呢啲語言比較似自然語言,例如上面嗰串 Python 碼就有「if」等嘅英文字,所以對於一般人嚟講比較易明,但就同電腦實際處理緊嘅訊號(有電冇電)好唔同,所以喺用高階語言寫程式嗰陣,吓吓寫完段源碼之後都要搵編譯器(Compiler)將段源碼轉化,搞到呢啲源碼行起上嚟會慢少少[5]

廿一世紀頭嘅人比較多人用嘅高階程式語言包括咗[6]

... 等等。

程式語言理論

內文: 程式語言理論

程式語言理論(programming language theory,PLT)係研究程式語言應該點樣設計、執行、分析同分類嘅一套理論。廿一世紀初嘅電腦界有好多唔同嘅程式語言,每款程式語言都有獨特嘅功能,程式語言理論上嘅研究會嘗試比較唔同嘅程式語言,會用邏輯形式化(formalized)-即係每個符號都有清晰定義,唔似得自然語言咁多歧義-嘅語言表達唔同嘅程式語言,剖析唔同程式語言彼此之間喺解難能力上有乜差異,例如係某隻程式語言會唔會比起第啲程式語言更加擅長解決(需要冇咁多行碼)某啲類型嘅問題等嘅課題。程式語言理論呢個領域會同數學、軟件工程語言學認知科學等嘅領域互相影響,而且對應用電腦科學-例如係新程式語言嘅設計等-嚟講相當緊要[3][7]

參考

  1. "語言系統簡介". .nuu.edu.tw. 喺2014-06-05搵到.
  2. "C++语言漫谈" (PDF). 喺2014-06-05搵到.
  3. 3.0 3.1 Michael J. C. Gordon. Programming Language Theory and Its Implementation. Prentice Hall.
  4. Downey, A., Wentworth, P., Elkner, J., & Meyers, C. (2016). How To Think Like A Computer Scientist: Learning with Python 3.
  5. Hennessy, John L.; Patterson, David A. Computer Organization and Design. The Hardware/Software Interface. Morgan Kaufmann Publishers.
  6. 10 Most Popular Programming Languages Today
  7. Gunter, Carl and Mitchell, John C. (eds.). Theoretical Aspects of Object Oriented Programming Languages: Types, Semantics, and Language Design. MIT Press.