APL語言標準

APL語言標準

APL語言(APL,A Programming Language的縮寫)是一種表達能力很強的會話語言。套用範圍包括數學統計、事務經營、信息檢索、報表生成、財務預算等。它也可用於模擬計畫管理、圖形處理、正文編輯、計算機輔助教學等方面。APL的特點是,語法規則簡單,運算符豐富,表達式簡練,並包含多種構造和處理數據的運算符。它在數據加工和矩陣計算上特別有效,不過程式設計師具有較高的數學素養。

關於APL

APL語言是在1960年左右由IBM的Kenneth E.Iverson設計的,起初並沒有想實現這種程式設計語言,只是用它作為描述計算機體系結構的工具。APL最早是在名為《一種程式設計語言(A Programming Language)》的書中介紹的,這也是它名字的由來。在20世紀60年代中期,IBM開發出了APL語言最早的實現。

APL語言具有大量功能強大的運算符,對實現者造成了困難。最初,使用APL語言的方法是通過IBM的列印終端,這些終端有特殊的列印球,提供語言所需的特殊的字元集。APL語言具有這么多運算符的原因之一是因為它提供了大量數組的單元運算。例如,任意矩陣的轉置只需一個運算符即可實現。大量的運算符提供了極強的表達能力,但也使得APL程式很難閱讀,使人們認為APL是一種最適於用來“一次性”程式設計的語言:雖然用APL語言寫起程式來很快,但是程式在使用過後就應該扔掉,因為程式難以維護。

APL語言已經存在了超過45年,雖然並不廣泛但今天仍在使用,而且在此期間變化不大。

語言標準

1954年,美國哈佛大學在Aiken教授主持下開設了數據處理這樣一門新課程,Iverson作為其中一員參加了。在那裡APL作為一種為記述和解析數據處理方法的表記法而誕生了,而且還將它編入哈佛大學的救科書,F.Brooks著的“Automatic Date Processing”(自動數據處理)一書中。Iverson關於APL語言的構思就是在這樣的土壤里萌發的。

這樣,由於APL的誕生是其他工作途中偶然的成果,開始出現的時間稍有些模糊,大約為1956年初吧。此後,Iverson曾供職McKinsey公司任經營顧閱等職務,繼而加入了IBM公司。在IBM公司,他的工作是使IBM系統/360命令標準化,從而結交了一個朋友Adin Falkoff,此人後來對APL語言的發展起了很大的推動作用,以這時(1962年)所著的“A Programming Language”(一種程式設計語育)一書為基礎,Iverson的表記法作為APL語言固定下來了。此時,已作出了各種各樣的單目(monadic)、雙目(dyadic)函式,為統一句法,按照語言的格式進行了各種規整,如設法使絕對值的記|X|定為|X等。但是,那時APL還未能成為可以在計算機上運行的語言,始終是用於算法和邏輯設計的紙上語言。

APL能在現實的計算機上運行,是1964年以後J.Lawrence,H.Hellerman等人在工具語言方面精誠合作的結果。APL字元的表示是在IBM 1050終端上進行的,該終端具有可交換的高爾夫球型的打字元件。為了便於印表機打字,APL記號也有把上標、下標變成一行的。

起初,APL是在IBM 7090計算機上利用卡片輸入,以分批方式運行的,1966年,L.Breed,P.Abrams使之在S/360計算機的TSM(time-sharing monitor)上以翻譯器方式運行。1969年用APL/360規整成系統代碼,又利用工作區開發程式,其管理變得更為有效。

繼而,在數據檔案和外部的對話方面,採用了共用變數和輔助處理程式的概念,變成APL SV。

再往後,APL再S/370計算機的TSO、CMS等各種OS上,經統一合併變成VS APL。

正如Iverson講演稿的感謝部分說說,實際上,從最早的合作者Falkoff開始,許多人都參與了APL的規整、擴充、裝備等方面的工作。

自70年代起。APL從誕生地IBM費城科學中心向IBM公司內的用戶推廣,後來,進一步製成軟體製品向一般的計算機用戶推廣開來。接著,Barrows、UniVac、DEC甚至日本的富士通、日立等許多計算機製造廠也生產出APL軟體製品。

APL這樣的程式設計語言,已是歷迎長久的語言了,但最近,它又迎來了第二個發展高峰。一方面是語言本身的又一次大飛躍,產生了APL2,大幅度地擴充和強化了APL的功能,引入稱為廣義數組的嵌套數組(在數組中能套數組)和混合數組(數值和字元串可混用)等。在科學技術計算中,進行複數運算時已可以用不完全相同的式子來區別實部和虛部。

另一方面是APL的計算機環境的變化。半導體CPU的高性能化和存儲器的高集成度化,使APL可以往微機上運行。以IBM 5100為開端,出現了備種個人用APL,在IBM 5550上增加了日本語APL。在微型信息處理機8086、68000上,作為作業系統(OS)的CP/M、MS—DOS、UNIX等上運行的各種APL也已問世。

特點

①APL不像Basic、Fortran等程式設計語言那樣,使用很多英語關鍵字(如read、write、for、next…),它使用數字和各種符號作為文字進行程式設計。這些文字是以功能為基礎想像出來的計算機世界的象形文字,擺脫了英語的束縛,便於程式設計語言的普及。

②APL是像使用計算器一樣簡便的語言。這是因為APL不是編譯型語言,而是解釋型語言。程式一旦輸入,就立即執行,而且不必對使用變數及其類型等進行說明。它排除了計算機機械的制約,單刀直入地解決用戶的問題。

③APL是把數據集中處理的語言,這是APL的最大特徵。通常,其他語言在處理大量數據時。要使用循環語句對數據一個一個加以處理。APL則是把數據作為數組形式集中處理。這是APL語言簡潔的關鍵所在。

④APL通用性很強,從簡單使用到高級數據處理都能做。在日常事物中,可用於排序、制表,從檢索到構築資料庫;在國民經濟統計部門,APL最適合做統計計算;在科研部門,它適用於實驗數據整理、合計以及微分方程和積分方程的計算;APL也適用於決策處理等人工智慧領域。

相關詞條

相關搜尋

熱門詞條

聯絡我們