PL/1語言是目前世界上比較流行的結構程式設計語言之一,它可用於科學計算、商業事務、實時控制領域,也可用作系統程式設計語言。與其它正在被廣泛使用的高級程式設計語言相比,PL/1具有更大的靈活性。
基本介紹
- 中文名:PL/1擴展程式
- 外文名:PL / 1 extension
- 套用:科學計算、商業事務等
- 時間:七十年代初期
- 系統:計算機
- 套用學科:計算機原理
簡介,基本的指令型式,程式區的定義,變數的定義,數的內部處理,輸入輸出語句,數的基本種類,基數,記數法,型式,精度,PL/1的字元集及書寫,PL/1的字元集,源程式的書寫,
簡介
在七十年代初期PL/1引起了計算機界的關注,並得到了廣泛的套用。這有幾個方面的原因:第一,與其他語言相比它是更為現代化的語言,它的語言特性與新型計算機和套用有更直接的關係。第二,PL/1是一種通用語言,它支持著科學計算、數據處理、文本處理和系統編程的套用。第三,PL/1的執行過程通用性強、效率高、可靠性好。第四,PL/1的標準化工作做的及時。
PL/1的第一種版本由SHARE FORTRAN課題的先進語言研製委員會發表在SHARE上。這個版本稱為NPL(New Programming Language--新程式語言)。1965年由IBM第一次使用,並稱之為PL/1。
在60年代,PL/1尚未得到人們的公認。它早期的編譯程式效率低、可靠性差。雖然它具有適合多種套用的特性,但還沒有一個套用領域真正使用它。但是,基於上述理由,PL/1逐漸成了一種受人歡迎的語言。
1975年2月,美國標準化委員會x3的技術委員會X3J1一PL/1和歐洲計算機生產廠聯合技術委員會TCl0一PL/1共同出版了PL/1標準草案。不久即得到了承認。
PL/1的主要特性都來源於ALGOL,FORTRAN和COBOL。事實上,在PL/1語言中,集中了ALGOL的語法結構和動態存儲器分配的特性,COBOL的記錄結構和輸入一輸出特性,以及FORTRAN的算術運算能力;並且增加了字元串處理功能,表格處理功能,以及中斷一陷井功能。
基本的指令型式
程式區的定義
PL/1程式由一個或多個聯合的稱為過程(procedures)的模組組成。正像任何其它程式設計語言一樣,需要給編譯程式提供信息,以表示過程的開始和結束;這種信息的形式取決於該過程是否是程式中所用的幾個過程中的一個,或該過程是否是通過管理和其它過程連在一起運行。
這種過程的開始,由以下語句發出信號:
標號:PROCEDURE OPTIONS(MAIN);此處“標號”是由程式設計師賦於程式的名字;它必須由字母開頭,全部由字母和數字組成。
所有過程都必須由以下語句來結束:
END標號;
“標號”在現在的情況下可以省略;如果用它,那它就必須和PROCEDURE語句中的標號相同。過程中的每條語言都用分號(;)結束。
變數的定義
變數定義的形式很簡單,只要用如下的說明語句:
DECLARE名字;
此處“名字”是由程式設計師指定的標識符。這種名字可以是一個或幾個字元長度,就目前實際套用來說,它必須以字母A~H或O~Z開頭(以I~N開頭的名字自動賦於特殊性質)。可按這種方式在一條語句中說明若干個名字,如:
DECLARE Y,X1,X2,X3;
數的內部處理
允許程式設計師利用PL/1中的一些處理指令在內部產生新的數據,用於這些操作的基本指令是賦值語句,其一般形式為:
名字=表達式;
此處“名字”指的是由程式設計師指定的某變數名,而“表達式”由一項或者由數學運算符連線的多項組成。
(1)數字常數
這是指可直接用普通記數法寫數值。
(2)算術運算
PL/1提供了五種基本的數值運算,可以用各種方式把這些基本運算組成更加複雜的運算。這五種基本的算術運算符是:+ 加法、一減法、*乘法、/除法、**取冪。
輸入輸出語句
輸入/輸出的一種基本方式被稱為流式輸入輸出(Stream I/O),PL/1用這種方式把輸入和輸出作為連續的數據流來處理。
(1)GET DATA語句
GET DATA語句用來輸入數據,其基本形式是:
GET DATA(名字1,名字2,…);
(2)PUT DATA語句用來輸出數據,其基本形式是:
PUT DATA(名字1,名字2,…);
數的基本種類
PL/1中的數可用四個屬性項加以描述,它們是:基數(Base)、記數法(Scale)、型式(Mode)和精度(Precision)。由於對這此屬性項可以指定各種不同的組合,程式設計師就可以對存貯、操作、顯示數據的格式進行控制。
基數
基數(Base)屬性決定了一個實際數值存放的數制。這種屬性可以是DECIMAL(十進制),這時,數在內部以一串十進制數字表示;也可以是BINARY(二進制),這時,數用一串‘0’或‘1’來表示,也就是表示成二進制數。
記數法
數字值可有FIXED(定點)或FLOAT(浮點)兩種記數法。
當存放浮點數時,它的指數部分和小數部分分別放在所分配存貯單元中的不同部分。而具有FIXED屬性的數當然就不用指數部分,而是在整個存貯單元中放入實際值。浮點形式的使用,比起定點格式來,使程式設計師能存放更寬數值範圍的數。
型式
PL/1語言提供了兩種型式(MODE)的數,即REAL(實數)和COMPLEX(復型),可供程式設計師任意選用。因為只有在相當有限的情況下才使用複數,所以COMPLEX屬性決不由隱含賦予。
精度
這個精度屬性關係到數的兩部大小和排列。因為計算機中所貯存的數實際上不帶小數點,所以每個數值都必須伴有某種說明,以便通知程式給數值分配多少位。
PL/1的字元集及書寫
PL/1的字元集
PL/1的字元集一般分為48個字元與60個字元兩種,目前採用60個字元的字元集。
(1)29個字母字元
A,B,…….,Z,$,@,#
(2)10個數字
0,1,2,3,4,5,6,7,8,9
(3)21個專用字元(如下所示)
♀ | 空格 | % | 百分號 |
= | 等號 | ; | 分號 |
+ | 加號 | : | 冒號 |
- | 減號 | < | 小於 |
* | 星號(乘號) | > | 大於 |
/ | 斜線(除號) | | | 或 |
( | 左括弧 | & | 與 |
) | 右括弧 | ┒ | 非 |
, | 逗號 | _ | 短劃號 |
. | 小數點 | ? | 問號 |
’ | 引號 |
源程式的書寫
1.源程式從第2列開始寫至第72列為止。
2.每個語句(Statement)以“;”結束。
3.注釋(Comment)以“/*”開始,以“*/”結束,期間可出現任何字元。
4.第1列上的字元用作列印時的控制字元。
1 | : | 換新頁 |
♀ | : | 換一行 |
0 | : | 換二行(空一行,現換一行) |
- | : | 換三行(空二行,再換一行) |