PL/1 是 Programming Language One 的简写。它是 IBM 公司在二十世纪五十年代发明的第三代高级编程语言,作为汇编语言、COBOL和FORTRAN 语言的替代品,用于 BM的MVS或迪吉多的 VAX/VMS等操作系统中。PL/1 编译程序是指PL/1语言编写的程序翻译成等价的机器语言格式目标程序的翻译程序。

简介

PL/1 编译程序是指将PL/1编程语言编写的计算机程序翻译成目标程序的翻译程序,采用生成性实现途径实现。以源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。同其他编程语言编译程序一样,PL/1编译程序是一个足够复杂的程序,语言功能的完善。

语言特点介绍

PL/1程序由一个或多个联合的称为过程(procedures)的模块组成。正像任何其它程序设计语言一样,需要给编译程序提供信息,以表示过程的开始和结束;这种信息的形式取决于该过程是否是程序中所用的几个过程中的一个,或该过程是否是通过管理和其它过程连在一起运行。

语言结构

PL/1 程序由一个或多个称为过程(Procedures)的模块组成,这种过程的开始,由以下语句发出信号:

标号:PROC OPTIONS(MAIN);

DCL 变量名 属性;

其他语句;

END

标号;

此处“标号”是由程序员赋于程序的名字;它必须由字母开头,全部由字母和数字组成,不能含有空格。OPTIONS(MAIN)这部分通知 PL/1,这是一个接受起始控制的过程。DCL 是变量的定义,PL/1 语言要求变量要先定义后使用,且在定义结构变量时,要求在结构声明后直接定义该结构类型的所有变量。所有过程都必须用END 来结束。其数据基本类型也像诸多其他程序设计语言一样,包含:数字类型、字符串类型、数组类型、结构类型等。PL/1 所处理的数值数据有四种属性:

基数(Base)、记数法(Scale)、型式(Mode)和精度(Precision)。基数属性决定了一个实际数值存放的数制,这种属性可以是 DECIMAL(十进制)也可以是 BINARY(二进制)。记数法可以分为 FIXED(定点)和 FLOAT(浮点)两种记数法。型式分为 REAL(实型)和COMPLEX(复型)。精度对于浮点数表示的是存放这种数的有效位数(称之为 p),对于定点数是由(w,d)来表示,w 表示位数,指定实际长度,d 代表十进制或二进制小数点右边的位数。PL/1 语言像 C 语言一样,使用条件语句 if-then-else,使用 while 语句可以引发循环,使用 do 语句进行一个或多个循环的判断,使用 call 语句进行调用,使用 read 和 write 读写数据,使用 open 和 close 打开和关闭文件,用 return 进行返回值操作等。

语言特点

PL/1 语言有许多特点,与正在被广泛使用的其它程序设计语言相比,PL/1 程序设计语言具有更大的灵活性,其特点主要有以下方面:

PL/1 语言数据类型的设计不受硬件条件的制约。

PL/1 语言是面向模块的程序设计语言,这种特有的结构使得编程人员能编写出高标准组件的应用软件。

PL/1 语言包含控制结构,比如说 SELECT...WHEN...OTHERWISE语句允许合理操作的执行,DO 语句允许当条件为真或条件变为真时,指令在一定时间内的执行。

PL/1 语言支持队列、结构、联合、结构或联合的队列、队列的结构或联合等形式。

PL/1 语言提供四个不同的存储级别:AUTOMATIC,STATIC,CONTROLLED 和 BASED。应用于对象的数据类型、使用的种类等,通常用来决定各自存储的类型1。

编译程序与目标程序

编译程序

计算机语言之所以能由单一的机器语言发展到现今的数千种高级语言,就是因为有了编译技术。编译技术是计算机语言发展的支柱,也是计算机科学中发展最迅速、最成熟的一个分支,它集中体现了计算机发展的成果与精华。编译技术的核心思想就是把同样的逻辑结构和思想从一种语言表示转化为另外一种语言表示。编译程序完成从源程序到目标程序的翻译工作是一个复杂的整体过程,一般来说,一个编译程序的整个工作过程是分成六个阶段进行的,每个阶段将源程序的一种表示形式转换成另一种表示形式,各个阶段进行的操作在逻辑上是紧密连接在一起的。这个六个阶段是: 词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成。

目标程序

又称为“目的程序”,为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名----由语言处理程序(汇编程序,编译程序,解释程序)将源程序处理(汇编,编译,解释)成与之等价的由机器码构成的,计算机能够直接运行的程序,该程序叫目标程序。目标代码尽管已经是机器指令,但是还不能运行,因为目标程序还没有解决函数调用问题,需要将各个目标程序与库函数连接,才能形成完整的可执行程序。

本词条内容贡献者为:

王慧维 - 副研究员 - 西南大学

PL/1 编译程序

图文简介

PL/1 是 Programming Language One 的简写。它是 IBM 公司在二十世纪五十年代发明的第三代高级编程语言,作为汇编语言、COBOL和FORTRAN 语言的替代品,用于 BM的MVS或迪吉多的 VAX/VMS等操作系统中。PL/1 编译程序是指PL/1语言编写的程序翻译成等价的机器语言格式目标程序的翻译程序。