Software Product Description
Kednos PL/I for OpenVMS
November 2003
This SPD describes the following two products:
Kednos PL/I Version 3.8 for OpenVMS VAX
Kednos PL/I Version 4.4 for OpenVMS Alpha
The general description section describes features common to both
products. Within the context of the general description both products
will be referred to as Kednos PL/I. The differences in product
functionality are indicated in separate sections that follow.
1 DESCRIPTION
Kednos PL/I for OpenVMS VAX and Alpha are products of Kednos Corporation.
Kednos PL/I is an extended implementation of the ANSI X3.74 1981,
American National Standard PL/I General Purpose Subset. Kednos PL/I
extensions include compatibility features with industry standard
implementations and ANSI full language features as well as OpenVMS
system-specific features. Kednos PL/I consists of a shareable compiler,
a HELP facility, and a system interface library which includes
declarations for system routines. The Kednos PL/I compiler runs under
the OpenVMS Operating System and generates optimized,
position-independent machine code.
Kednos PL/I is a comprehensive and powerful programming language that
supports scientific computation, commercial data handling and data
organization, and extensive string manipulation. The block-structuring
provided by the PL/I language helps to reduce the costs of program
development and support.
Kednos PL/I allows access to Oracle CDD. A compile-time preprocessor
facility allows language extension and conditional compilation. All
OpenVMS System Services, the Common Run-Time Library, and system
utilities are available through the PL/I CALL statement. A library of
predefined ENTRY declarations provided with Kednos PL/I minimizes the
coding required to use OpenVMS system services, the Common Run-Time
Library, and many system utilities.
Features
- Support for CDD/Repository, allowing Kednos PL/I programmers to
extract a designate CDD/Repository record description node and
represent the record as a PL/I structure declaration. CDD/Repository
structure declarations may be optionally included in the compiler
listing.
- Support for the following data types:
Binary integer (FIXED BINARY), floating point (FLOAT BINARY, FLOAT
DECIMAL), decimal (FIXED DECIMAL), fixed or varying length character
strings (CHARACTER [VARYING]), fixed length bit strings (BIT), edited
numeric data in character format (PICTURE), address manipulation (AREA,
OFFSET, and POINTER), entry point (ENTRY), label with an optional
subscript (LABEL), and condition (CONDITION).
- An assignment operator that operates on equivalent structures or
arrays of data as well as scalar variables. A scalar can be assigned to
an entire array.
- Support for all OpenVMS RMS file organizations (sequential,
relative, and indexed), and access methods (sequential, direct, and
keyed). A set of ENVIRONMENT options provides access to a large subset
of RMS features. The OPTIONS option on READ provides extended control
of record locking.
- Five storage classes:
- AUTOMATIC: Variables are allocated upon block entry.
- STATIC: Variables are allocated at compile time. Static data can be
EXTERNAL or globally shared. The GLOBALDEF attribute provides program
section (PSECT) control of data.
- DEFINED: Variables are overlaid upon existing variables.
- BASED: Variable allocation is dynamically controlled by the
programmer.
- CONTROLLED: Variables are allocated and freed dynamically as
generations. Only the most recent generation is available to the
programmer.
- INITIAL values may be specified for AUTOMATIC, BASED, CONTROLLED,
and STATIC variables.
- A REFER option is available for the creation of dynamically
self-defining based structures. This option may be specified for any or
all bounds and extents for structure members which are arrays, bit
strings, character strings, or areas.
- ALLOCATE statement with the SET and IN options for explicit dynamic
storage allocation.
- FREE space previously allocated by the ALLOCATE statement
- POINTER and OFFSET data types for address manipulation of scalar
and aggregate data
- AREA as an address base for variables of OFFSET type with language
supported allocation and deallocation
- LIKE attribute to allow the members of a structure to be declared
in terms of an already-declared structure.
- UNION attribute to declare overlaid minor structures.
- TYPE attribute to allow scalars, arrays, or members of a structure
to be declared in terms of already declared scalars, arrays, and
structures.
- A powerful set of structured program control statements.
- DO statement with TO, BY, WHILE, UNTIL, and REPEAT options
- LEAVE statement to transfer control out of one or more levels of
containing DO-groups
- SELECT-WHEN-OTHERWISE group allowing CASE-like selection of a
statement or statement group
- IF...THEN...ELSE conditional statement
- CALL statement and function reference (RETURN)
- GOTO statement for transfer of control
- OTHERWISE option applies to the GOTO statement
- Condition Handling
- ON statement to establish ON-units (for AREA, CONDITION,
CONVERSION, ENDFILE, ENDPAGE, KEY, UNDEFINEDFILE, FIXEDOVERFLOW,
OVERFLOW, UNDERFLOW1, ZERODIVIDE, STORAGE, STRINGRANGE,
SUBSCRIPTRANGE, ERROR, FINISH, ANYCONDITION, and VAXCONDITION
conditions).
- REVERT statement to cancel ON-units.
- RESIGNAL statement that allows conditions to be passed to other
ON-units.
- Input/Output Control
- OPEN and CLOSE file control statements.
- READ, WRITE, DELETE, and REWRITE record-oriented I/O statements.
- GET and PUT stream-oriented I/O statements (with FILE, STRING,
EDIT, LIST, PAGE, and SKIP options).
- ENVIRONMENT and OPTIONS clauses provide access to RMS features
including a USEROPEN feature and extended record locking control.
- Program Structuring Statements
- PROCEDURE blocks: Internal (nested) and EXTERNAL
- BEGIN...END blocks, allowing local variable declaration
- DO groups that provide compound statement capabilities
- ENTRY statement that allows a routine to have multiple entry points
- Preprocessor Statements
- %REPLACE statement for compile-time replacement of arithmetic,
bit-, or character-string constants
- %INCLUDE statement for compile-time source copying, with full
library support for INCLUDE modules and default and user-specified
system libraries
- %DICTIONARY for CDD record extraction
- %DECLARE, %ACTIVATE, %DEACTIVATE statements for declaration and
control of compile-time variables
- %DO...%END, %IF...%THEN...%ELSE, and %GOTO statements for
compilation control
- %PROCEDURE to define compile-time procedures
- %INFORM, %WARN, %ERROR, %FATAL statements for user-generated
diagnostics
- %[NO]LIST[_ALL], %[NO]LIST_DICTIONARY, %[NO]LIST_INCLUDE,
%[NO]LIST_MACHINE, and %[NO]LIST_SOURCE statements for selective
listing control
- %PAGE, %TITLE, %SBTTL statements for listing format control
- Preprocessor Expressions and Built-in Functions
- Built-In Functions
- A full set of arithmetic functions: ABS, ADD, CEIL, DIVIDE, FLOOR,
MAX, MIN, MOD, MULTIPLY, ROUND, SIGN, SUBTRACT, TRUNC
- A full set of mathematical (transcendental) functions: ACOS, ASIN,
ATAN, ATAND, ATANH, COS, COSD, COSH, EXP, LOG, LOG10, LOG2, SIN, SIND,
SINH, SQRT, TAN, TAND, TANH
- String functions: BOOL, COLLATE, COPY, EVERY, HIGH, INDEX, LENGTH,
LOW, MAXLENGTH, REVERSE, SEARCH, SOME, STRING, SUBSTR, TRANSLATE, TRIM,
LTRIM, RTRIM, VERIFY
- Conversion functions: BINARY, BIT, BYTE, CHARACTER, DECIMAL,
DECODE, ENCODE, FIXED, FLOAT, RANK, UNSPEC, INT, POSINT
- Condition-handling functions: ONARGSLIST, ONCHAR, ONCODE, ONFILE,
ONKEY, ONSOURCE
- Array-handling functions: DIMENSION, HBOUND, LBOUND, PROD, SUM,
ADDREL
- Storage functions: ADDR, ALLOCATION, EMPTY, NULL, OFFSET, POINTER,
SIZE, BYTESIZE
- Timekeeping functions: DATE, DATETIME, TIME
- File Control functions: LINENO, PAGENO
- Pseudovariables (functions allowed on left-hand side of an
assignment): INT, ONCHAR, ONSOURCE, PAGENO, POSINT, STRING, SUBSTR,
UNSPEC
- Calling mechanism support functions: DESCRIPTOR, REFERENCE, VALUE,
ACTUALCOUNT, PRESENT
- Picture Variable Validation function: VALID
- Built-in Subroutines are provided for:
- File-handling: DISPLAY, EXTEND, FLUSH, FREE, NEXT_VOLUME, RELEASE,
REWIND, SPACEBLOCK
- Condition-handling: RESIGNAL
Other Kednos PL/I language capabilities include:
- Expressions in format lists
- Replication factors for string constants
- Preprocessor statements in any context
Compiler Options
Compile-time command qualifiers provide a variety of options:
- /[NO]ANALYSIS_DATA: Causes Source Code Analyzer component
information to be generated.1
- /[NO]ALIGN: to allow for natural data alignment for RISC machine
data types.
- /[NO]CHECK: Produce extra code to check array and string
references. Options: Bounds.
- /[NO]CROSS_REFERENCE: Produce an alphabetical symbol
cross-reference.
- /DATA: Specifies integer size and status of alignment.2
- /[NO]DEBUG: Causes DEBUG information to be included with the object
code. Options inline, traceback, symbols.
- /[NO]DIAGNOSTICS: Causes Language-Sensitive Editor component
information to be generated.1
- /[NO]FIXED BINARY: Sets the default size of fixed binary. Options:
31, 15.
- /FLOAT: Specifies the default representation of floating-point
variables.2
- /[NO]G_FLOAT: Specifies the default floating point representation.
- /GRANULARITY: Specifies the smallest unit of data that can be
cached in a register.2
- /[NO]LIST: Controls the production of a listing file.
- /SHOW: Selects specific listing. Options: source, CDD definitions,
include files, map, statistics, trace, header, terminal, and expansion.
- /[NO]ERROR_LIMIT: Controls the compiler diagnostic message limit.
- /VARIANT: Permits specification of compilation variants.
- /[NO]MACHINE_CODE: Causes machine code to be listed with the source.
- /[NO]OBJECT: Controls the production of the object file.
- /[NO]OPTIMIZE: Controls optimizations performed by the compiler.
Options: common_subexpressions, disjoint, inline, invariant,
locals_in_registers, peephole, result_incorporation.
- /[NO]WARNINGS: Controls the printing of compiler warning messages.
Options: noinformationals, nowarnings.
- /LIBRARY: Indicates the associated file is a library of source text
modules specified by %INCLUDE statements.
- /[NO]DESIGN: Controls the generation of design information for the
Program Design Facility. Options: comments, placeholders.1
At the end of each compilation in which messages are generated, the
Kednos PL/I compiler will display the number of informational,
warning, and error messages.
Optimizations
Kednos PL/I generates efficient object code. Optimizations include:
- Value propagation
- Subexpression elimination
- Allocation of local variables to registers
- Removal of invariant computations from loops
- Simplification of Boolean expressions
- Extensive special case code generation
- Pattern replacement in generated code
- Inline expansion of procedure calls
Industry PL/I Compatibility
Kednos PL/I provides many of those PL/I features often used by
mainframe PL/I programmers. Conversion effort depends upon the
individual program and the set of PL/I features used by the programmer.
Well-structured programs that do not rely on system-specific or
implementation-specific features convert with a minimum of effort (from
no changes to a few percent of the lines in the program). Programs that
use implementation-specific features such as ENVIRONMENT and OPTIONS
can require a larger conversion effort.
Kednos Corporation does not provide any special programs or other conversion
aids. The user is responsible for determining the extent of any
conversion effort and for providing appropriate conversion tools to
convert programs and data.
- Unusual conversion requirements may be necessary if programs use
the machine-dependent representation of data. The VAX and Alpha
architecture organizes bytes within an integer differently than most
other vendors' hardware. This can lead to different results when UNSPEC
or DEFINED operations are used to convert between BIT and FIXED BINARY
data.
Run-Time Library Redistribution
The Kednos PL/I kit may include updated Run-Time Library shareable
images. A license may be obtained from Kednos Corporation to distribute the
executable version of the Run-Time Library designated as PLIRTL.EXE
(VAX) and DPLI$RTLSHR.EXE (Alpha)(the "RTL's") provided that the user:
- distribute the RTLs only in conjunction with and as a part of the
user's software application product which is designed to operate in the
OpenVMS environment;
- does not use the name, logo, or trademarks of Kednos Corporation to
market the user's software application product;
- includes Kednos Corporation's copyright notice for Kednos PL/I on the
user's product disk label and/or on the title page of the documentation
for software application product; and
- agrees to indemnify, hold harmless, and defend Kednos Corporation from
and against any claims or lawsuits, including attorney's fees, that
arise or result from the use or distribution of the software
application product. Except as expressly provided herein, Kednos Corporation
grants no implied or express license under any of its patents,
copyrights, trade secrets, trademarks, or any license or other
proprietary interest and rights.
Kednos PL/I Special Features
As a native-mode VAX language, Kednos PL/I is integrated into the VAX
common language environment. This integration provides Kednos PL/I
users with support for the VAX Interlanguage Calling Standard, access
to the VAX Symbolic Debugger (including support for source-line
debugging), and callable interfaces to VAX utilities and optional
products (such as SORT, DEC DATATRIEVE, and Oracle CODASYL DBMS).
Kednos PL/I also interfaces to the DEC Language-Sensitive
Editor/Source Code Analyzer. Source programs can be written and
compiled using the Language-Sensitive Editor component which has
built-in intelligence about the source format of PL/I programs.
Language elements that support the VAX extended range and extended
precision floating point architectural features are as follows:
- 64-bit G_floating point data type, with an 11-bit exponent and
53-bit mantissa, which provides a range of 0.56*10**-308 to
0.09*10**308 and a precision of 15 decimal digits.
- 128-bit H_floating data type, with a 15-bit exponent and a 113-bit
mantissa, which provides a range of 0.84*10**-4932 to 0.59*10**4932 and
a precision of 33 decimal digits.
Kednos PL/I provides support for low-level program design, including
the processing of pseudo code and the extraction of design information
from comments.
Kednos PL/I Version 4.4 for OpenVMS Alpha Special Features
As a native-node language, Kednos PL/I Version 4.4 for OpenVMS Alpha is integrated into the OpenVMS
common language environment. This integration provides Kednos PL/I
users with support for Interlanguage Calling Standard, access to the
OpenVMS Debugger (including support for source-line debugging), and
callable interfaces to utilities and optional products (such as SORT,
DEC DATATRIEVE, and Oracle CODASYL DBMS).
Kednos PL/I also interfaces to the DEC Language-Sensitive Editor.
Source programs can be written and compiled using the
Language-Sensitive Editor component which has built-in intelligence
about source format of PL/I programs.
Language elements that support the extended range and extended
precision floating point architectural features:
- 64-bit G_floating point data type, with an 11-bit exponent and
53-bit matissa, which provides a range of 0.56*10**-308 to 0.09*10**308
and a precision of 15 decimal digits.
Note
1 Kednos PL/I Version 3.8 for OpenVMS VAX only
2 Kednos PL/I Version 4.4 for OpenVMS Alpha only
|
2 CLUSTER ENVIRONMENT
This layered product is fully supported when installed on any valid and
licensed VAXcluster* configuration without restrictions.
- V5.x VAXcluster configurations are fully described in the
VAXcluster Software Product Description (SPD 29.78.xx) and include CI,
Ethernet, and Mixed Interconnect configurations.
3 SOFTWARE REQUIREMENTS
For VAX Systems:
- OpenVMS VAX Operating System 5.5 or higher
For Alpha Systems:
- OpenVMS Alpha Operating System Version 6.2 or higher
OpenVMS VAX Tailoring
The following OpenVMS classes are required for full functionality of
this layered product:
- OpenVMS Required Saveset
- Programming Support
- Utilities
4 OPTIONAL SOFTWARE
For VAX Systems:
- DEC Language-Sensitive Editor/Source Code Analyzer
- VAX Performance and Coverage Analyzer
- CDD/Repository3
For Alpha Systems:
- DEC Language-Sensitive Editor component of the DEC
Language-Sensitive Editor/Source Code Analyzer for OpenVMS Alpha Systems
- DEC Performance and Coverage Analyzer (PCA) for OpenVMS Alpha
Systems
Note
3 The reference to CDD/Repository
refers to all CDD products: VAX CDD, VAX CDD/Plus, and CDD
Repository.
|
5 GROWTH CONSIDERATIONS
The minimum hardware/software requirements for any future version of
this product may be different from the requirements for the current
version.
6 MEDIA DISTRIBUTION
The normal distribution for Kednos PL/I for OpenVMS VAX and Alpha is via ftp over the Internet.
7 ORDERING INFORMATION
Kednos PL/I Version 3.8 for OpenVMS VAX
Software License:
Unlimited System Use: L-PLDAUAxV,
x = [ W | D | E ] Workgroup, Departmental or Enterprise
Software Media:
ftp from www.kednos.com
Software Documentation:
as above, ps, pdf and html formats available
Software Product Services: S-PLDAUAxV,
x = [ W | D | E ] Workgroup, Departmental or Enterprise
Kednos PLIRTL Version 4.4 for OpenVMS VAX
Software License:
Unlimited System Use: L-PLIRTLxV,
x = [ W | D | E ] Workgroup, Departmental or Enterprise
Software Media:
ftp from www.kednos.com
Software Documentation:
as above, ps, pdf and html formats available
Software Product Services: S-PLIRTLxV,
x = [ W | D | E ] Workgroup, Departmental or Enterprise
Kednos PL/I Version 4.4 for OpenVMS Alpha
Software License:
Unlimited System Use: L-PLDAUAxA,
x = [ W | D | E ] Workgroup, Departmental or Enterprise
Software Media:
ftp from www.kednos.com
Software Documentation:
as above, ps, pdf and html formats available
Software Product Services: S-PLDAUAxA,
x = [ W | D | E ] Workgroup, Departmental or Enterprise
Kednos PLIRTL Version 5.7 for OpenVMS Alpha
Software License:
Unlimited System Use: L-PLIRTLxA,
x = [ W | D | E ] Workgroup, Departmental or Enterprise
Software Media:
ftp from www.kednos.com
Software Documentation:
as above, ps, pdf and html formats available
Software Product Services: S-PLIRTLxA,
x = [ W | D | E ] Workgroup, Departmental or Enterprise
The above information is valid at the time of release. Please contact
Kednos Corporation for the most up-to-date information.
8 SOFTWARE LICENSING
This software is furnished under the licensing terms and conditions of
Kednos Corporation. For more information about the licensing terms and
conditions contact Kednos Corporation directly.
License Management Facility Support
This layered product supports the OpenVMS License Management Facility.
License units for this product are allocated on an Unlimited System Use
basis.
For more information on the License Management Facility, refer to the
appropriate Operating System Software Product Description (SPD) or
documentation.
9 SOFTWARE PRODUCT SERVICES
A variety of service options are available. Contact Kednos Corporation for
more information.
10 SOFTWARE WARRANTY
Warranty for this software product is provided by Kednos Corporation with the
purchase of a license for the product. This means that Kednos Corporation
will remedy any nonconformance when it is reported to Kednos Corporation by
the customer during the warranty period.
The warranty period is one year. It begins when the software is
installed or thirty days after delivery to the end user, whichever
occurs first and expires one year later. All warranty related support
for this software will end one year after release of the subsequent
version.
Warranty is provided in the country of purchase. Kednos Corporation will
provide a service location which will accept reporting (in a format
prescribed by Kednos Corporation) of a nonconformance problem caused when
using the licensed software under normal conditions as defined by the
SPD. Kednos Corporation will remedy a nonconformance problem in the current
unaltered release of the licensed software by issuing corrections
information such as: correction documentation, corrected code, or
notice of availability of corrected code; or a restriction or bypass.
The customer will have responsible for the preparation and submission
of the problem report to the service location.
11 WARRANTY EXCLUSION
KEDNOS CORPORATION DOES NOT WARRANT THAT THE SOFTWARE LICENSED TO CUSTOMER
SHALL BE ERROR FREE, THAT THE SOFTWARE SHALL OPERATE WITH ANY HARDWARE
AND SOFTWARE OTHER THAN AS SPECIFIED IN THIS SPD, THAT THE SOFTWARE
SHALL SATISFY CUSTOMER'S OWN SPECIFIC REQUIREMENTS, OR THAT COPIES OF
THE SOFTWARE OTHER THAN THOSE PROVIDED OR AUTHORIZED BY KEDNOS CORPORATION
SHALL CONFORM TO THIS SPD.
KEDNOS CORPORATION MAKES NO WARRANTIES WITH RESPECT TO THE FITNESS AND
OPERABILITY OF MODIFICATIONS NOT MADE BY KEDNOS CORPORATION.
IF THE SOFTWARE FAILS TO FUNCTION FOR REASONS STATED ABOVE, THE
CUSTOMER WARRANTY WILL BE INVALIDATED AND ALL SERVICE CALLS WILL BE
BILLABLE AT THE PREVAILING PER CALL RATES.
This Software Warranty Addendum is effective for licensed software
products ordered in the United States after October 1988 and supersedes
all prior versions.
The above information is valid at time of release. Please contact
Kednos Corporation for the most up-to-date information.
®
|
Oracle is a registered trademark of Oracle Coporation.
|
tm
|
Oracle CODASYL DBMS is a trademark of Oracle Corporation.
|
tm
|
The DIGITAL Logo, Alpha AXP, AXP, DATATRIEVE, DEC, DECwindows, Digital,
OpenVMS, and VAX are trademarks of Hewlett Packard.
|
|
|
©
|
2003 Kednos Corporation. All Rights Reserved.
|