APL(全名:A Programming Language[6][7],直譯 「一種程式語言」)係一種直譯嘅[8] 函數式程式語言[9],雛形由 Ken Iverson 設計[10],1962年喺佢嘅著作 《A Programming Language》 度發表[9],但係實際行得嘅版本 Adin Falkoff 有份幫手設計[2],1965年第一次出現[11][1]。佢基本上係一種數學表示法,所以用到好多特殊符號[9](不過喺某啲系統其實可以唔用特殊符號都得[12]),呢啲特殊符號有啲後來影響返數學,變成普通嘅數學符號[13],亦曾經有人當佢做普通嘅數學表示法,用嚟解釋代數、微積分等等嘅數學概念[14]。
Quick Facts 編程範式, 設計者 ...
Close
矩陣同向量都係 APL 嘅基本資料類型,有標準方法表示同有標準嘅函數處理[15],有被形容係陣列語言[16]。
控制流程方面,APL 用嘅係跳轉句(branch statement,即係 goto)[17],冇特別語法表示結構化編程嘅流程控制[13]。
用 APL 寫嘅程式通常都好簡短,但係亦因為咁被人話佢難明[18]。
APL 喺1956年左右開始設計[11],本來只係一種數學嘅表示法,叫 Iverson 表示法[19],用嚟喺教書同寫書嗰陣講解同分析有關資訊處理嘅演算法嘅嘢[11][1],後來為咗整到佢真係可以喺電腦度行,做過唔細嘅改動[10],第一次大改動喺1964年,喺用佢描述 System 360 嗰陣發覺原先設計嘅表示法唔啱使,要加同改嘢,第二次大改動喺幫終端機設計字粒球嗰陣,發覺唔可以好似數學咁用2D嘅語法,要將語法線性化[19]。
1965年最初行得嘅版本係成批處理[註 2](batch processing)嘅版本,1966年先有互動介面[11]。
佢喺1989年[20]被國際標準化組織標準化,編號 ISO 8485[21];2001年[7]再訂新標準,編號 ISO 13751,被認為係現時嘅標準[21],但係新標準叫 「APL 擴展版」[暫譯](Extended APL)[7],舊標準其實仍然有效[20]。
Hello world 喺 APL 可以咁寫(正方格 ⎕ 表示終端機[22],喺呢度指螢幕;字串用半形單引號[23]):
- ⎕ ← 'Hello world'
但係因為 APL 係綜合開發環境之下用嘅直譯語言,直譯器會自動顯示輸入算式嘅數值;所以可以略去輸出螢幕嘅指示[24],就咁寫
- 'Hello world'
- 科技教育組 (2023年1月)。〈中學資訊及通訊科技科常用英漢辭彙〉 (PDF) (香港中文)。香港特別行政區政府教育局課程發展處。喺2023年10月30號搵到。
- "APL Press Publications" (PDF). APL News (美國英文).第8號. APL Press. April 1982. pp. 3–4. 喺2024年9月10號搵到.
- Breed, Larry (1 March 2004). "How we got to APL/1130". ACM SIGAPL APL Quote Quad (美國英文). 34 (2): 26–27. doi:10.1145/1088529.10885.
- Brocklebank, Daniel (1984). "APL – The language" (PDF). John Hopkins APL Technical Digest (美國英文). 5 (3): 280–283. 喺2024年9月11號搵到.
- Cameron, Robert D. (January 30, 2002). "Operational Semantics of Block-Structured Languages: Variables" (加拿大英文). 西門菲沙大學. 喺2024年9月10號搵到.
- Digital Equipment Corporation (1978). "APL". PDP-11 software handbook (美國英文). pp. 481–498.
- Falkoff, Adin D. (2009). "APL". Masterminds of Programming (美國英文). Biancuzzi, Federico採訪. O’Reilly. 喺2024年9月11號搵到.
- Falkoff, Adin D.; Iverson, Kenneth E. (August 1978). "The evolution of APL" (PDF). ACM SIGPLAN Notices (美國英文). 計算機器學會. 13 (8): 47–57. 喺2024年9月11號搵到.
- Folorunso, Olusegun (n.d.). "Organization of Programming Languages" (PDF) (英文). Federal University of Agriculture, Abeokuta. 喺2024年9月10號搵到.
- ISO/IEC TC 97 (1989). "Programming languages – APL" (撮要) (英文). 國際標準化組織. ISO/IEC 8485:1989. 喺2024年9月10號搵到.
- ISO/IEC JTC 1 (2001). "Information Technology – Programming languages, their environments and system software interfaces – Programming language Extended APL" (撮要) (英文). 國際標準化組織. ISO/IEC 13751:2001. 喺2024年9月10號搵到.
- McGrew, Jon (2016年1月2號). "Forgotten APL Influences" (PDF). APL – Journal (美國英文). 計算機器學會. 喺2024年9月11號搵到.
- Ogilvie, J. F. (1982). "Applications of computer algebra in physical chemistry" (PDF). Computers & Chemistry (英國英文). 6 (4): 169–172. 喺2024年9月10號搵到.
- Sauermann, Jürgen; 等 (2024). A Quick Tour of GNU APL (英文). 喺2024年9月11號搵到.
- Shallit, Jeffrey (n.d.). "Why I'm Still Using APL" (PDF) (加拿大英文). 滑鐵盧大學. 喺2024年9月10號搵到.
- Smillie, Keith (1979). "Kenneth E. ("Ken") Iverson" (美國英文). 計算機器學會. 喺2024年9月11號搵到.
- "What's in a name?" (PDF). APL News (美國英文).第8號. APL Press. April 1982. p. 8. 喺2024年9月10號搵到.