Category:PL/I: Difference between revisions
Content added Content deleted
No edit summary |
(Normal formatting) |
||
Line 1: | Line 1: | ||
{{stub}}{{language|PL/I}} |
{{stub}}{{language|PL/I}} |
||
<lang> |
|||
PL/I is a general purpose programming language suitable for commercial, scientific, non-scientific, and system programming. |
PL/I is a general purpose programming language suitable for commercial, scientific, non-scientific, and system programming. |
||
It provides the following data types: |
It provides the following data types: |
||
Floating-point, |
* Floating-point, |
||
Decimal integer, |
* Decimal integer, |
||
Binary integer, |
* Binary integer, |
||
Fixed-point decimal (with fractional part), |
* Fixed-point decimal (with fractional part), |
||
Fixed-point binary (that is, with fractional part), |
* Fixed-point binary (that is, with fractional part), |
||
Character strings of two kinds: |
* Character strings of two kinds: |
||
# fixed-length, and |
|||
# varying-length. |
|||
Bit strings of two kinds: |
* Bit strings of two kinds: |
||
# fixed-length, and |
|||
# varying length. |
|||
The float, integer,and fixed-point types can be real or complex. |
The float, integer,and fixed-point types can be real or complex. |
||
Multiple precisions are available for binary fixed-point: |
Multiple precisions are available for binary fixed-point: |
||
* 8 bits, |
|||
typically using 8 bits, 16 bits, 32 bits, and 64 bits. |
|||
* 16 bits, |
|||
* 32 bits, and |
|||
* 64 bits. |
|||
Multiple precisions are available for floating point: |
Multiple precisions are available for floating point: |
||
* 32 bits, |
|||
* 64 bits, and |
|||
* 80 bits. |
|||
The language provides for static and dynamic arrays. |
The language provides for static and dynamic arrays. Of the latter, there are automatic and controlled. |
||
Of the latter, there are automatic and controlled. |
|||
Controlled can be applied to any data type, including scalar, structure, as well as arrays. With controlled, a push-down and pop-up stack is automatically used. |
|||
scalar, structure, as well as arrays. |
|||
With controlled, a push-down and pop-up stack is automatically used. |
|||
PL/I has four kinds of I/O: |
PL/I has four kinds of I/O: |
||
# For simple I/O commands, list-directed input and output requires only the names of the variables. Default format is used, based on the variable's declaration. |
|||
requires only the names of the variables. |
# For simple I/O commands, data-directed input and output requires only the names of the variables. For this form, both the names of the variables and their values are transmitted. |
||
# When precise layouts of input and output data is required, edit-directed I/O is used. A format is specified by the user. The format is flexible, and permits the number of digits, and the number of places after the decimal point to be specified dynamically. The format may also be specified in picture form. |
|||
Default format is used, based onthe variable's declaration. |
|||
⚫ | |||
For simple I/O commands, data-directed input and output |
|||
requires only the names of the variables. For this form, |
|||
⚫ | |||
both the names of the variables and their values are transmitted. |
|||
⚫ | |||
When precise layouts of input and output data is required, |
|||
* floating-point overflow, |
|||
edit-directed I/O is used. A format is specified by the user. |
|||
* fixed-point overflow, |
|||
The format is flexible, and permits the number of digits, and |
|||
* division by zero, |
|||
the number of places after the decimal point to be specified |
|||
* sub-string range checking, and |
|||
dynamically. The format may also be specified in picture form. |
|||
* string-size checking. |
|||
⚫ | |||
is often used, either for sequential or random access. |
|||
⚫ | |||
⚫ | |||
⚫ | |||
fixed-point overflow, division by zero, substring range checking, |
|||
⚫ | |||
by the user. |
|||
When any of those conditions occurs, the user may trap them and recover from them and continue execution. |
|||
recover from them and continue execution. |
|||
</lang> |