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
|