HP OpenVMS Systems Documentation
HP Pascal for OpenVMS
User Manual
Begin
Index
Contents (summary)
Preface
Preface
Chapter 1
Compiling HP Pascal Programs
Chapter 2
Separate Compilation
Chapter 3
Program Correctness, Optimization, and Efficiency
Chapter 4
Programming Tools
Chapter 5
Calling Conventions
Chapter 6
Programming on OpenVMS Systems
Chapter 7
Input and Output Processing
Chapter 8
Error Processing and Condition Handling
Chapter 9
Migrating from OpenVMS VAX to OpenVMS I64 or OpenVMS Alpha
Appendix A
Errors Returned by STATUS and STATUSV Functions
Appendix B
Entry Points to HP Pascal Utilities
Appendix C
Diagnostic Messages
Index
Figures
Examples
Tables
Contents
Preface
Preface
Preface
Chapter 1
1
Compiling HP Pascal Programs
1.1
PASCAL Command
1.1.1
PASCAL Command Examples
1.1.2
PASCAL Qualifiers
1.1.3
Contents of the Compilation Listing File
1.1.3.1
Table of Contents (OpenVMS VAX systems)
1.1.3.2
Source Code
1.1.3.3
Cross-Reference Section
1.1.3.4
Machine Code Section
1.1.3.5
Structured Layout Section
1.1.3.6
Inline Summary (OpenVMS VAX systems)
1.1.3.7
Compilation Statistics
1.1.4
Text Libraries
1.1.4.1
Using the %INCLUDE Directive for Text Libraries
1.1.4.2
Specifying Text Libraries on the Command Line
1.1.4.3
Defining Default Libraries
1.2
LINK Command
1.2.1
LINK Command Examples
1.2.2
LINK Qualifiers
1.2.3
Object Module Libraries
1.3
RUN Command
1.4
Error Messages
Chapter 2
2
Separate Compilation
2.1
ENVIRONMENT, HIDDEN, and INHERIT Attributes
2.2
Interfaces and Implementations
2.3
Data Models
2.4
Separate Compilation Examples
Chapter 3
3
Program Correctness, Optimization, and Efficiency
3.1
Compiler Optimizations
3.1.1
Compile-Time Evaluation of Constants
3.1.2
Elimination of Common Subexpressions
3.1.3
Elimination of Unreachable Code
3.1.4
Code Hoisting from Structured Statements
3.1.5
Inline Code Expansion for Predeclared Functions
3.1.6
Inline Code Expansion for User-Declared Routines
3.1.7
Testing for Inline Expansion on OpenVMS VAX Systems
3.1.8
Operation Rearrangement
3.1.9
Partial Evaluation of Logical Expressions
3.1.10
Value Propagation
3.1.11
Strength Reduction (OpenVMS I64 and OpenVMS Alpha systems)
3.1.12
Split Lifetime Analysis (OpenVMS I64 and OpenVMS Alpha systems)
3.1.13
Code Scheduling (OpenVMS I64 and OpenVMS Alpha systems)
3.1.14
Loop Unrolling (OpenVMS I64 and OpenVMS Alpha systems)
3.1.15
Alignment of Compiler-Generated Labels
3.1.16
Error Reduction Through Optimization
3.1.17
Software Pipelining (OpenVMS I64 and OpenVMS Alpha systems)
3.1.18
Processor Selection and Tuning (OpenVMS Alpha systems)
3.1.19
Compiling for Optimal Performance
3.2
Programming Considerations
3.3
Implementation-Dependent Behavior
3.3.1
Subexpression Evaluation Order
3.3.2
MAXINT and MAXINT64 Predeclared Constants
3.3.3
Pointer References
3.3.4
Variant Records
3.3.5
Atomicity, Granularity, Volatility, and Write Ordering
3.3.6
Debugging Considerations
Chapter 4
4
Programming Tools
4.1
Debugger Support for HP Pascal
4.2
Language-Sensitive Editor/Source Code Analyzer Support for HP Pascal
4.2.1
Programming Language Placeholders and Tokens
4.2.2
Placeholder and Design Comment Processing
4.2.3
LSE and SCA Examples
4.3
Accessing CDD/Repository from HP Pascal
4.3.1
Equivalent HP Pascal and CDDL Data Types
4.3.2
CDD/Repository Example
Chapter 5
5
Calling Conventions
5.1
OpenVMS Calling Standard
5.1.1
Parameter Lists
5.1.2
Function Return Values
5.1.3
Contents of the Call Stack
5.1.4
Unbound Routines
5.2
Parameter-Passing Semantics
5.3
Parameter-Passing Mechanisms
5.3.1
By Immediate Value
5.3.2
By Reference
5.3.3
By Descriptor
5.3.3.1
CLASS_S Attribute
5.3.3.2
CLASS_A and CLASS_NCA Attributes
5.3.3.3
%STDESCR Mechanism Specifier
5.3.3.4
%DESCR Mechanism Specifier
5.3.4
Summary of Passing Mechanisms and Passing Semantics
5.4
Passing Parameters between HP Pascal and Other Languages
5.4.1
Parameter Mechanisms Versus Parameter Semantics
5.4.2
Passing Nonroutine Parameters between HP Pascal and Other Languages
5.4.3
Passing Routine Parameters between HP Pascal and Other Languages
Previous
Next
Contents
Index