CONTENTS Title Page Copyright Page Preface Caution 1 Concepts 1.1 Objects and Operations 1.1.1 Objects 1.1.2 Invoking Operations 1.1.3 Components 1.1.3.1 Error Handling 1.1.3.2 Iterators 1.1.4 Variables and Assignment 1.2 Types 1.2.1 Basic Ideas 1.2.2 Subtypes and Inheritance 1.2.2.1 Subtype 1.3 Type Safety 1.4 Program Structure 2 Syntax 2.1 Identifiers 2.2 Labels 2.3 Integer Literals 2.4 Real Literals 2.5 String Literals 2.6 Comments 3 Simple Expressions 3.1 Order of Evaluation 3.2 Literals 3.3 Identifiers 3.4 Type Specs 3.5 Operation Invocations 3.5.1 Unary Operator Expressions 3.5.2 Binary Operator Expressions 3.6 Sequence Constructors 3.7 Simple Component Selection 3.8 Indexed Component Selection 3.9 Assignments 3.9.1 Variable Assignment 3.9.2 Simple Component Assignment 3.9.3 Indexed Component Assignment 3.10 Blocks 3.11 Precedence 4 Control Expressions 4.1 Bodies 4.2 Variable Declaration 4.3 Control Expressions 4.3.1 Block 4.3.2 Case Expression 4.3.3 Continue Expression 4.3.4 Exception Handlers 4.3.5 Exit Expression 4.3.6 For Expression 4.3.6.1 Iterators 4.3.7 If Expression 4.3.8 Leave Expression 4.3.9 Loop Expression 4.3.10 Resignal Expression 4.3.11 Return Expression 4.3.12 Signal Expression 4.3.13 Type_case Expression 4.3.14 Yield Expression 5 Types and Operations 5.1 Type Definition 5.2 Operation Definition 5.2.1 Interface of Operations 5.2.2 Implementation of Operations 5.3 Component Definitions 5.4 Object Creation 5.5 Visibility 5.6 Subtyping and Inheritance 5.6.1 Subtype Compatibility 5.6.2 Inheritance of Interfaces 5.6.3 Inheritance of Implementations 5.7 Fixed Name 6 More on Types 6.1 Type Generators 6.1.1 Using Parameters 6.1.1.1 Subtyping 6.1.1.2 Fixed Names 6.2 Special Type Specs 6.3 Union Types A Quick Reference Appendix A.1 Lexemes A.2 Simple Expressions A.3 Control Expressions A.4 Definitions B Contracted Forms C Special Names D Foreign Operations D.1 Builtin Operations FIGURES 3-1 Precedence of Binary and Unary Operators from Highest to Lowest Precedence B-1 Precedence of Binary and Unary Operators from Highest to Lowest Precedence TABLES B-1 Unary Operators B-2 Binary Operators B-3 Components B-4 Constructors C-1 Special names D-1 Purpose of Character Strings in a Builtin Operation D-2 Location of Online Examples for Builtin Operations on VMS and ULTRIX Systems