版权归原作者所有,如有侵权,请联系我们

[科普中国]-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的算术运算能力;并且增加了字符串处理功能,表格处理功能,以及中断一陷井功能。2

基本的指令型式程序区的定义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,…);1

数的基本种类PL/1中的数可用四个属性项加以描述,它们是:基数(Base)、记数法(Scale)、型式(Mode)和精度(Precision)。由于对这此属性项可以指定各种不同的组合,程序员就可以对存贮、操作、显示数据的格式进行控制。

基数基数(Base)属性决定了一个实际数值存放的数制。这种属性可以是DECIMAL(十进制),这时,数在内部以一串十进制数字表示;也可以是BINARY(二进制),这时,数用一串‘0’或‘1’来表示,也就是表示成二进制数。

记数法数字值可有FIXED(定点)或FLOAT(浮点)两种记数法。

当存放浮点数时,它的指数部分和小数部分分别放在所分配存贮单元中的不同部分。而具有FIXED属性的数当然就不用指数部分,而是在整个存贮单元中放入实际值。浮点形式的使用,比起定点格式来,使程序员能存放更宽数值范围的数。

型式PL/1语言提供了两种型式(MODE)的数,即REAL(实数)和COMPLEX(复型),可供程序员任意选用。因为只有在相当有限的情况下才使用复数,所以COMPLEX属性决不由隐含赋予。

精度这个精度属性关系到数的两部大小和排列。因为计算机中所贮存的数实际上不带小数点,所以每个数值都必须伴有某种说明,以便通知程序给数值分配多少位。

PL/1的十进制或二进制定点数均可用精度说明。精度的表示形式为(W,d),其中W为总位数,d代表小数点右边的位数(若d省略则表示d为0)。1

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列上的字符用作打印时的控制字符。

|| ||