DEC Trellis Object System Introduction

*HyperReader

  CONTENTS

  Title Page

  Copyright Page

  Preface

  Caution

  1      Overview

  1.1     Object-Oriented Features of Trellis
    1.1.1      Objects and Types
    1.1.2      Subtyping and Inheritance
    1.1.3      Abstract Types
    1.1.4      Benefits of Object-Oriented Features of Trellis
    1.1.5      Type-Checking

  1.2     Programming Language
    1.2.1      Language Features
    1.2.2      Program Structure
    1.2.3      Subtype Compatibility

  1.3     Programming Tools
    1.3.1      Browsing Tools
    1.3.2      Code Development Tools
    1.3.3      Debugging Tools
    1.3.4      Environment Tools

  1.4     Programming Environment
    1.4.1      Information
    1.4.2      Workspaces
    1.4.3      Incremental Compiler
    1.4.4      Storage Management
    1.4.5      Persistent Objects

  1.5     DECwindows Interface

  1.6     Type Library
    1.6.1      Type Categories

  1.7     Integration with Other Programming Languages

  1.8     SQL Facility

  1.9     Activity Facility

  2      Comparing Trellis to Conventional Programming Approaches

  2.1     Conceptual Differences

  2.2     Design Differences

  2.3     Programming Process Differences
    2.3.1      Traditional Programming Process
    2.3.2      Trellis Programming Process

  3      Invoking Trellis

  4      Trellis Design Concepts

  4.1     Creating Types
    4.1.1      Modeling Processes in the Application Domain
    4.1.2      Modeling Intangible Entities

  4.2     Determining Placement of Functionality
    4.2.1      Reusability
    4.2.2      Complexity
    4.2.3      Applicability
    4.2.4      Dependence on Implementation Knowledge
    4.2.5      Applying Criteria for Placing Functionality

  4.3     Uses of Type Hierarchies
    4.3.1      Specialization Hierarchy
    4.3.2      Implementation Hierarchy
    4.3.3      Combination Hierarchy

  4.4     Nonstandard Uses of Type Hierarchies
    4.4.1      Generalization
    4.4.2      Variance

  4.5     Extended Example
    4.5.1      Designing an Inspector Facility
    4.5.2      Placing Inspector Functionality
    4.5.3      Describing How Inspectors Are Associated with Objects
    4.5.4      Considering the Inspector Type Hierarchy

  5      Overview of the Development Process

  5.1     Designing a Program

  5.2     Coding a Program

  5.3     Testing and Debugging a Program

  5.4     Running and Creating a Command for a Program
    5.4.1      Creating a Workspace for a Program
    5.4.2      Creating a Command for a Program

  5.5     Additional Development Tasks

  Glossary of Trellis Terms
    abstract type . . . Callout
    client . . . fixed name
    garbage collection . . . multiple inheritance
    mutable . . . selector_value
    single inheritance . . . type definition
    type hierarchy . . . workspace

  FIGURES

  1-1        A Simple Type Hierarchy

  2-1        Traditional Programming Process

  2-2        Trellis Programming Process

  3-1        Trellis Toolbox

  3-2        Trellis Icon

  4-1        Input_device Hierarchy

  4-2        Hierarchy Showing Multiple Supertypes

  4-3        Incorrect Use of Multiple Inheritance

  4-4        Subtyping for Generalization

  4-5        Subtyping for Variance

  4-6        Removing Subtyping for Variance by Factoring Out Behavior

  4-7        Final Inspector Hierarchy Design

  TABLES

  1-1        Browsing Tools

  1-2        Code Development Tools

  1-3        Debugging Tools

  1-4        Environment Tools