面向通用過程語言

面向通用過程語言

PL/I語言它是較流行的程式設計語言.它具有ALGOL,FORTRAN和COBOL的某些特點,併兼有其他的特點(如字元行處理、數據結構、各種編輯功能),甚至還具有一定的只有低級語言(如彙編、機器語言)才能反映的語言成分。它匯集了各種功能並分成許多功能塊,可隨意選用所需部分,像乘車選擇線路區段一樣方便,俗稱為“公共汽車”語言。它是一種面向通用過程的語言,可用在科學計算、商業事務、實時控制等領域,也可用作系統程式設計語言。

歷史背景

與Fortran語言一樣,PL/I是作為IBM的一項產品被開發的。早在20世紀60年代的初期,工業界中的計算機用戶就被分為兩個相互獨立而又相當不同的陣營。以IBM的觀點,從事科學計算的程式人員可以使用IBM的7090大型計算機或者1620小型計算機。正是這一部分人員,極大量地使用浮點數據類型和數組。他們使用的主要語言是Fortran,但也使用一些彙編語言。他們有著自己的用戶團體SHARE,而且他們與工作於商務套用領域的人員極少聯繫。

對於商務套用,人們使用IBM的7080大型計算機或者1401小型計算機。他們需要十進制及字元串數據類型,也需要精細和高效的輸入及輸出設施。他們使用COBOL語言。儘管在1963年的初期,關於PL/I語言的故事才剛剛開始,而那時從彙編語言至COBOL的轉換還遠沒有完成,他們卻已經使用了COBOL。這種類型的用戶也有自己的用戶團體GUIDE,並且他們也很少與科學計算類型的用戶聯繫。

在1963年初,IBM的規劃人員感覺到這種情況在開始變化,這兩個互相遠離的計算機用戶團體正在向彼此靠近的方向移動。IBM的人員認為這必定會產生問題。當時,科學家們已經開始採集大型檔案數據來進行處理,這些數據需要更複雜更高效的輸入輸出設施。而商務套用的人們開始套用回歸分析來建立信息管理系統,其中需要使用浮點數據和數組。這開始顯示,很快人們會需要兩台不同的計算機以及不同的技術人員來進行計算裝載工作,以便支持兩種非常不同的程式設計語言。

這種感覺十分自然地導致人們想要設計一種通用計算機的想法,這種計算機應兼有浮點數運算以及十進制算術運算的能力,因而能夠同時實施科學套用以及商務套用。IBM System/360系列計算機的原理就由此而誕生。隨之而來的想法便是,需要一種能夠兼用於科學以及商務套用的程式設計語言。作為錦上添花,這種語言還增添了系統程式設計和表處理的語言特性。因此,這樣的新語言被計畫用來替代Fortran、COBOL、LISP,以及彙編語言的系統套用。

設計過程

語言的設計工作開始於1963年10月,當時IBM和SHARE成立了“SHARE Fortran項目的高級語言開發委員會”(the Advanced Language Development Committee of the SHARE Fortran Project)。這個新委員會的成員很快碰頭,並成立了一個被稱為3×3委員會的子委員會,之所以這樣命名,是因為它的三個成員來自於IBM,而另外三個成員來自於SHARE。3×3委員會每隔一個星期開會三天或四天,來設計新的語言。

就像COBOL的短期委員會一樣,他們要在相當短的時間內完成初步的語言設計。顯然在20世紀60年代初期盛行的觀念是,不論這種語言設計的工作量如何,都可以在三個月之內完成。PL/I語言的第一個版本(當時被命名為Fortran VI)原定於子委員會成立之後不到三個月的時間即12月前完成。委員會成功地申請了延期,將完成時間推移到了1月份,進而又再次推移到了1964年2月的下旬。

在最初的設計構想中,新語言將是Fortran IV的一種擴展,以便維持語言的兼容性。但很快,這個目標連同名字Fortran VI一起被棄用。到1965年之前,這種語言一直被稱為NPL,源於英文“新程式設汁語言”(New Programming Language)的首字母組合。NPL語言的第一次發布報告於1964年3月在SHARE會議上公布。接著在4月份,發表了NPL語言的比較完整的描述,而它能夠被實際實現的版本於1964年12月由英國的IBM Hursley實驗室的編譯器工作組發表(IBM,1964)。該工作組專門進行這種語言的實現工作。NPL語言的名字在1965年被改為PL/I,以免與英國國家物理實驗室(National Physical Laboratory,NPL)的名字相混淆。假如PL/I的編譯器是在英國之外開發的,它的名字可能會保持為NPL。

語言概述

描述PL/I語言最為貼切的一句話也許是,它包括了下列這些語言中當時被認為最優秀的部分:ALGOL 60的“遞歸與塊結構”、Fortran IV的“通過全局數據來分開編譯與通信”,以及COBOL 60的“數據結構、輸入/輸出以及生成報告的設施”,還包括一系列相當多的新結構,並將所有這些部分糅合在一起。因為PL/I現在幾乎是已經死去的語言,所以我們不會哪怕只以簡略的方式來討論這種語言的所有特性,或者它的最具爭議的結構。我們只是簡要地概括這種語言對於程式設計語言知識庫的一些貢獻。

PL/I是第一種具有下列設施的程式設計語言:

1、允許程式產生並發執行的子程式。這雖然是一個好主意,但是這種功能在PL/I中的開發卻很差。

2、可以發現並處理23種不同種類的異常或運行時錯誤。

3、允許子程式遞歸,但為了便於非遞歸子程式高效率地連結,也可以停止遞歸功能。

4、指針被作為一種數據類型。

5、可以單獨引用數組的橫向部分。例如,可以將矩陣的第三行作為一個矢量來引用。

相關詞條

熱門詞條

聯絡我們