|
Kednos PL/I for OpenVMS Systems User Manual
*HyperReader |
|
|
CONTENTS
Title Page
Copyright Page
Preface
1 Overview
2 Developing PL/I Programs at the DCL Command Level
2.1 DCL Commands for Program Development
2.2 Creating a PL/I Program
2.2.1 Using EDT
2.2.2 Using LSE
2.2.3 Using DECTPU
2.2.3.1 The EVE Interface
2.2.3.2 The EDT Keypad Emulator Interface
2.3 Compiling a PL/I Program
2.3.1 PLI Command
2.3.2 PLI Command Qualifiers
2.3.3 PL/I Preprocessor
2.3.3.1 Preprocessor Compilation Control
2.3.3.2 Preprocessor Procedures
2.3.4 Compiler Error Messages
2.3.5 Kednos PL/I for OpenVMS VAX Compiler Listing
2.3.6 Kednos PL/I for OpenVMS Alpha Compiler Listing
2.4 Linking a PL/I Program
2.4.1 LINK Command
2.4.2 LINK Command Qualifiers
2.4.3 Linker Input Files
2.4.4 Linker Output Files
2.4.5 Object Module Libraries
2.4.6 Linker Error Messages
2.5 Running a PL/I Program
3 Using the OpenVMS Debugger
3.1 Overview
3.2 Features of the Debugger
3.3 Getting Started with the Debugger
3.3.1 Compiling and Linking a Program to Prepare for Debugging
3.3.2 Starting and Terminating a Debugging Session
3.3.3 Issuing Debugger Commands
3.3.4 Viewing Your Source Code
3.3.4.1 Noscreen Mode
3.3.4.2 Screen Mode
3.3.5 Controlling and Monitoring Program Execution
3.3.5.1 Starting and Resuming Program Execution
3.3.5.2 Determining the Current Value of the Program Counter
3.3.5.3 Suspending Program Execution
3.3.5.4 Tracing Program Execution
3.3.5.5 Monitoring Changes in Variables
3.3.6 Examining and Manipulating Data
3.3.6.1 Displaying the Values of Variables
3.3.6.2 Changing the Values of Variables
3.3.6.3 Evaluating Expressions
3.3.6.4 Notes on Debugger Support for PL/I
3.3.7 Controlling Symbol References
3.3.7.1 Module Setting
3.3.7.2 Resolving Multiply Defined Symbols
3.4 Sample Debugging Session
3.5 Debugger Command Summary
3.5.1 Starting and Terminating a Debugging Session
3.5.2 Controlling and Monitoring Program Execution
3.5.3 Examining and Manipulating Data
3.5.4 Controlling Type Selection and Symbolization
3.5.5 Controlling Symbol Lookup
3.5.6 Displaying Source Code
3.5.7 Using Screen Mode
3.5.8 Editing Source Code
3.5.9 Defining Symbols
3.5.10 Using Keypad Mode
3.5.11 Using Command Procedures and Log Files
3.5.12 Using Control Structures
3.5.13 Additional Commands
4 The File System
4.1 File Control
4.2 Using the OpenVMS File System for I/O
4.2.1 PL/I Files and OpenVMS File Specifications
4.2.2 Using the TITLE Option
4.2.3 Using Logical Names
4.2.4 Using the DEFAULT_FILE_NAME Option
4.2.5 Expanding File Specifications
4.3 Error Handling
4.3.1 Values Returned by PL/I Built-In Functions for Error Handling
4.3.2 Writing an Error Handler
4.3.3 Default Error Handling for the File System
5 Stream Input/Output
6 Record Input/Output
6.1 File Organizations
6.2 Access Modes
6.2.1 Sequential Access
6.2.2 Random Access
6.2.3 Random and Sequential Access
6.2.4 Block Input/Output
6.2.5 Access by Record Identification
6.3 Record Formats
6.3.1 Fixed-Length Records
6.3.2 Variable-Length Records
6.3.3 Variable-Length Records with a Fixed-Length Control Area
6.4 Carriage Control
6.5 Sequential Files
6.5.1 Creating a Sequential File
6.5.2 Using Magnetic Tape Files
6.5.3 Allocated and Spooled Devices
6.6 Relative Files
6.6.1 Relative File Organization
6.6.2 Creating a Relative File
6.6.3 Using Relative Files
6.6.4 Error Handling
6.7 Indexed Sequential Files
6.7.1 Indexed File Organization
6.7.2 Defining and Creating an Indexed Sequential File
6.7.2.1 Using EDIT/FDL
6.7.2.2 Using a PL/I Program
6.7.3 Defining Keys
6.7.4 Using Indexed Sequential Files
7 Options of the ENVIRONMENT Attribute
7.1 Specifying and Using ENVIRONMENT Options
7.1.1 Arguments for ENVIRONMENT Options
7.1.1.1 Expressions
7.1.1.2 Variable References
7.1.1.3 Boolean Values
7.1.2 Interpretation of ENVIRONMENT Options for Existing Files
7.1.3 Determining ENVIRONMENT Options
7.1.4 Device Independence of ENVIRONMENT Options
7.1.5 Conflicting and Invalid ENVIRONMENT Options
7.2 Summary of ENVIRONMENT Options
7.2.1 APPEND Option
7.2.2 BACKUP_DATE Option
7.2.3 BATCH Option
7.2.4 BLOCK_BOUNDARY_FORMAT Option
7.2.5 BLOCK_IO Option
7.2.6 BLOCK_SIZE Option
7.2.7 BUCKET_SIZE Option
7.2.8 CARRIAGE_RETURN_FORMAT Option
7.2.9 CONTIGUOUS Option
7.2.10 CONTIGUOUS_BEST_TRY Option
7.2.11 CREATION_DATE Option
7.2.12 CURRENT_POSITION Option
7.2.13 DEFAULT_FILE_NAME Option
7.2.14 DEFERRED_WRITE Option
7.2.15 DELETE Option
7.2.16 EXPIRATION_DATE Option
7.2.17 EXTENSION_SIZE Option
7.2.18 FILE_ID Option
7.2.19 FILE_ID_TO Option
7.2.20 FILE_SIZE Option
7.2.21 FIXED_CONTROL_SIZE Option
7.2.22 FIXED_CONTROL_SIZE_TO Option
7.2.23 FIXED_LENGTH_RECORDS Option
7.2.24 GROUP_PROTECTION Option
7.2.25 IGNORE_LINE_MARKS Option
7.2.26 INDEX_NUMBER Option
7.2.27 INDEXED Option
7.2.28 INITIAL_FILL Option
7.2.29 MAXIMUM_RECORD_NUMBER Option
7.2.30 MAXIMUM_RECORD_SIZE Option
7.2.31 MULTIBLOCK_COUNT Option
7.2.32 MULTIBUFFER_COUNT Option
7.2.33 NO_SHARE Option
7.2.34 OWNER_GROUP Option
7.2.35 OWNER_ID Option
7.2.36 OWNER_MEMBER Option
7.2.37 OWNER_PROTECTION Option
7.2.38 PRINTER_FORMAT Option
7.2.39 READ_AHEAD Option
7.2.40 READ_CHECK Option
7.2.41 RECORD_ID_ACCESS Option
7.2.42 RETRIEVAL_POINTERS Option
7.2.43 REVISION_DATE Option
7.2.44 REWIND_ON_CLOSE Option
7.2.45 REWIND_ON_OPEN Option
7.2.46 SCALARVARYING Option
7.2.47 SHARED_READ Option
7.2.48 SHARED_WRITE Option
7.2.49 SPOOL Option
7.2.50 SUPERSEDE Option
7.2.51 SYSTEM_PROTECTION Option
7.2.52 TEMPORARY Option
7.2.53 TRUNCATE Option
7.2.54 USER_OPEN Option
7.2.55 WORLD_PROTECTION Option
7.2.56 WRITE_BEHIND Option
7.2.57 WRITE_CHECK Option
7.3 ENVIRONMENT Options for File Protection and File Sharing
7.3.1 File Protection
7.3.1.1 Defining a File's Ownership
7.3.1.2 Defining a File's Protection
7.3.2 File Sharing
7.3.2.1 Specifying File Sharing
7.3.2.2 File Locking
7.3.2.3 Record Locking
7.3.2.4 Examples of File Sharing
7.4 ENVIRONMENT Options for I/O Optimization
8 Input/Output Statement Options
8.1 Option Format
8.2 Summary of Input/Output Statement Options
8.2.1 CANCEL_CONTROL_O Option
8.2.2 FAST_DELETE Option
8.2.3 FIXED_CONTROL_FROM Option
8.2.4 FIXED_CONTROL_TO Option
8.2.5 INDEX_NUMBER Option
8.2.6 LOCK_ON_READ Option
8.2.7 LOCK_ON_WRITE Option
8.2.8 MANUAL_UNLOCKING Option
8.2.9 MATCH_NEXT Option
8.2.10 MATCH_NEXT_EQUAL Option
8.2.11 NO_ECHO Option
8.2.12 NO_FILTER Option
8.2.13 NOLOCK Option
8.2.14 NONEXISTENT_RECORD Option
8.2.15 PROMPT Option
8.2.16 PURGE_TYPE_AHEAD Option
8.2.17 READ_REGARDLESS Option
8.2.18 RECORD_ID Option
8.2.19 RECORD_ID_TO Option
8.2.20 TIMEOUT_PERIOD Option
8.2.21 WAIT_FOR_RECORD Option
9 File-Handling Built-In Subroutines
9.1 DISPLAY Built-In Subroutine
9.2 EXTEND Built-In Subroutine
9.3 FLUSH Built-In Subroutine
9.4 FREE Built-In Subroutine
9.5 NEXT_VOLUME Built-In Subroutine
9.6 RELEASE Built-In Subroutine
9.7 REWIND Built-In Subroutine
9.8 SPACEBLOCK Built-In Subroutine
10 Error Handling
10.1 RESIGNAL Built-In Subroutine
10.2 ON-Unit Actions
10.2.1 Handling the Condition
10.2.2 Resignaling the Condition
10.2.3 Unwinding the Call Stack
10.2.4 Stopping the Program
10.3 Relationship of OpenVMS Condition Handlers to PL/I ON-Units
10.4 Search Path for ON-Units
10.4.1 Default Handling for Main Procedures
10.4.2 Default Handling for Non-Main Procedures
10.4.3 Multiple Conditions
10.5 Scope of ON-Units
10.6 ON-Unit Examples
10.7 Condition-Handling Built-In Functions
10.7.1 ONARGSLIST Built-In Function
10.7.2 ONCODE Built-In Function
10.7.3 ONFILE Built-In Function
10.7.4 ONKEY Built-In Function
11 Using PL/I in the Common Language Environment
11.1 OpenVMS Calling Standard
11.1.1 Register and Stack Usage
11.1.2 Return of the Function Value
11.1.3 The Argument List
11.2 Parameter-Passing Mechanisms
11.2.1 Passing Parameters by Reference
11.2.1.1 Using the ANY Attribute
11.2.1.2 Dummy Arguments for Arguments Passed by Reference
11.2.1.3 Using Pointer Values for Arguments Passed by Reference
11.2.1.4 Passing Arrays to a FORTRAN Routine by Reference
11.2.2 Passing Parameters by Descriptor
11.2.2.1 Passing Character Strings
11.2.2.2 Passing Varying Character Strings
11.2.2.3 Using ANY CHARACTER( * )
11.2.2.4 Using ANY DESCRIPTOR
11.2.2.5 Passing an Actual Descriptor
11.2.3 Passing Parameters by Value
11.2.3.1 Dummy Arguments for Arguments Passed by Value
11.2.4 Special Parameter Attributes
11.2.4.1 LIST Attribute
11.2.4.2 OPTIONAL Attribute
11.2.4.3 TRUNCATE Attribute
11.2.5 Summary of Rules for Passing Parameters
11.3 OpenVMS Run-Time Library Routines
11.4 OpenVMS System Service Routines
11.5 OpenVMS Utility Routines
11.5.1 OpenVMS SORT/MERGE Routines
11.6 Calling Routines
11.6.1 Determining the Type of Call
11.6.2 Declaring an External Routine and Its Arguments
11.6.3 Calling the External Routine
11.6.4 Calling System Routines
11.6.4.1 Declaring System Routines
11.6.4.2 System Routine Arguments
11.6.4.3 Symbol Definitions
11.7 Condition Values
11.7.1 Testing for Specific Condition Values
11.7.2 Setting and Displaying Fields Within a Status Value
11.8 Examples of Calling System Routines
11.8.1 Logical Name Translation
11.8.2 Mailbox Services
11.8.2.1 Creating the Mailbox
11.8.2.2 Deleting the Mailbox
11.8.3 Timer and Time Conversion Routines
11.8.3.1 Obtaining a Time Value in System Format
11.8.3.2 Setting the Timer
11.8.4 A Ctrl/c-Handling Routine
11.8.4.1 Establishing a Ctrl/c-Handling Routine
11.8.4.2 Ctrl/c Routine
11.8.4.3 Testing the Ctrl/c Routine
11.8.5 Obtaining Job/Process Information
11.8.6 Using SORT Routines
12 Global Symbols
12.1 Using Global Symbols in PL/I Procedures
12.1.1 The GLOBALDEF Attribute
12.1.2 The GLOBALREF Attribute
12.1.3 Defining Global Symbols in PL/I
12.1.4 Using MACRO Global Symbols with Multiple Definitions
12.2 The READONLY and VALUE Attributes
12.2.1 The READONLY Attribute
12.2.2 The VALUE Attribute
12.3 Obtaining Definitions for System Global Symbols
13 Mailboxes
13.1 Using Mailboxes
13.1.1 System Information
13.1.2 Applications
13.1.3 Effects of the OPEN Statement
13.1.4 Effects of the CLOSE Statement
13.2 Mailbox Input/Output
13.2.1 Synchronous Input/Output
13.2.2 Asynchronous Input/Output
14 Accessing Files on a Network
14.1 Remote File Access
14.2 Task-to-Task Communication
15 Storage Allocation
15.1 Program Sections
15.1.1 Attributes of Program Sections
15.1.2 Program Sections Created by PL/I
15.1.3 Sharing Program Sections with FORTRAN Procedures
15.2 Addressability
A PL/I Messages
A.1 Compiler Messages
A.2 Run-Time Messages
A.3 %DICTIONARY Error Messages
B Correspondence of PL/I and RMS
C Optional Programming Productivity Tools
C.1 Using LSE with PL/I
C.1.1 Entering Source Code Using Tokens and Placeholders
C.1.2 Compiling Source Code
C.1.3 Examples
C.1.4 DO Statement
C.1.5 IF Statement
C.1.6 Assignment Statement
C.1.7 DECLARE Statement
C.1.8 SUBSTR Expression
C.1.9 %PROCEDURE Statement
C.2 Using SCA (Kednos PL/I for OpenVMS VAX only)
C.2.1 Multimodular Development
C.2.2 Setting Up an SCA Environment
C.2.2.1 Creating an SCA Library
C.2.2.2 Generating the Data Analysis Files
C.2.2.3 Loading Data Analysis Files into a Local Library
C.2.2.4 Selecting an SCA Library
C.2.3 Using SCA for Cross-Referencing
D Rules for Conversion of Data
D.1 Assignments to Arithmetic Variables
D.1.1 Arithmetic to Arithmetic Conversions
D.1.2 Pictured to Arithmetic Conversions
D.1.3 Bit-String to Arithmetic Conversions
D.1.4 Character String to Arithmetic Conversions
D.2 Assignments to Bit-String Variables
D.2.1 Arithmetic and Pictured to Bit-String Conversions
D.2.2 Character-String to Bit-String Conversions
D.3 Assignments to Character-String Variables
D.3.1 Arithmetic to Character-String Conversions
D.3.1.1 Conversion from Fixed-Point Binary or Decimal
D.3.1.2 Conversion from Floating-Point Binary or Decimal
D.3.2 Pictured to Character-String Conversions
D.3.3 Bit-String to Character-String Conversions
D.4 Assignments to Pictured Variables
D.5 Conversions Between Offsets and Pointers
E The Common Data Dictionary
E.1 PL/I and CDDL Data Types
E.2 Creating CDD Structure Declarations
E.3 Using the CDD
|
|