<span>For the ninth time now, the European Conference on Object-Oriented P- gramming provides a mid-summer gathering place for researchers, practitioners, students and newcomers in the field of object technology. Despite fierce c- petition from an increasing number of attractive conferences on objec
ECOOP '95 - Object-Oriented Programming: 9th European Conference, Aarhus, Denmark, August 7 - 11, 1995. Proceedings (Lecture Notes in Computer Science)
β Scribed by Walter Olthoff
- Publisher
- Springer
- Year
- 1995
- Tongue
- English
- Leaves
- 482
- Edition
- 1
- Category
- Library
No coin nor oath required. For personal study only.
β¦ Synopsis
For the ninth time now, the European Conference on Object-Oriented P- gramming provides a mid-summer gathering place for researchers, practitioners, students and newcomers in the field of object technology. Despite fierce c- petition from an increasing number of attractive conferences on object-related topics, ECOOP has successfully positioned itself as the premier European - ject technology conference. One reason is without doubt the composition of the conference week and the nature of its events. Running in parallel on the first two days, a comprehensive tutorial program and a very selective workshop program are offered to attendees. This is followed by a three-day technical p- gram organized in a single track providing a highly communicative atmosphere of scientific exchange and learning. Overlapping with these events are a two-day industrial exhibition and a two-day opportunity for non-industrial system dev- opers to demonstrate their software. Thus, ECOOP is not just a conference on programming but an event touching on the full spectrum of object technology. This volume constitutes the proceedings of the Ninth European Conference on Object-Oriented Programming, ECOOP, held in Aarhus, Denmark, August 7-11, 1995. Previous ECOOP conferences were held in Paris (France), Oslo (Norway), Nottingham (England), Ottawa (Canada, jointly with OOPSLA), Geneva (Switzerland), Utrecht (the Netherlands), Kaiserslautern (Germany), and Bologna (Italy). Object technology continues to increase its impact on the corporate world.
β¦ Table of Contents
Front matter
Object-Oriented Programming
Preface
Organization
Contents
Chapter 1
Keynote AddressExperiences on The Road to Object Utopia
Chapter 2
The Cartesian Product AlgorithmSimple and Precise Type Inference Of Parametric Polymorphism
1 Introduction
1.1 Concrete versus Abstract Types
1.2 Polymorphism
1.3 Contributions
2 Background
2.1 Definition of Type
2.2 The Basic Type Inference Algorithm
2.3 Templates
2.4 Polymorphism is Analyzed Imprecisely by the Basic Algorithm
2.5 Previous Improvements of the Basic Algorithm
2.5.1 1-Level and p-Level Expansion Algorithms
2.5.2 The Iterative Algorithm
3 The Cartesian Product Algorithm
3.1 How CPA Can Use Exact Type Information Without Iterating
3.2 Assessing the Cartesian Product Algorithm
3.3 Scaling Issues
3.4 A Case Where the Cartesian Product Algorithm Improves Precision
3.5 Inheritance
3.6 Summary
4 Measurements
5 Conclusions
References
Chapter 3
PolyTOIL:A Type-Safe Polymorphic Object-OrientedLanguage
1 Introduction
2 Language Design for Type Safety
3 A Formal Definition of PolyTOIL Syntax
4 An Operational Semantics for PolyTOIL
5 Comparison with Other Work
6 hrther Results and Extensions to PolyTOIL
References
Appendices
A Sample PolyTOIL Program
B Selected Subtyping Rules
C Selected Matching Rules
D Selected Type-Checking Rules
E The Natural Semantics of PolyTOIL
Chapter 4
Object Imaging
1 Introduction
Motivations for Object Imaging
Shortcomings of Current Approaches
Goals for an Imaging Service
Motivation for Conformance Considerations
Designing an Abstract Conformance Framework
2 Symbolic Knowledge Representation
Primitive Types
Atomic Object Types
Compound Object Types
Sorts and Signatures
Conformance Checking and Wrapper Generation
3 Reasoning Algorithms for Imaging
Delineating the Problem
Notation and Definitions
4 Related Work
5 Conclusions
References
Chapter 5
Optimization ofObject-Oriented ProgramsUsing Static Class Hierarchy Analysis
1 Introduction
2 Class Hierarchy Analysis
2.1 Alternatives to Class Hierarchy Analysis
2.2 Implementation
2.2.1 Cone Class Sets
2.2.2 Method Applies-To Sets
2.2.3 Support for Dynamically-Typed Languages
2.2.4 Support for Multi-Methods
2.3 Incremental Programming Changes
2.4 Optimization of Incomplete Programs
3 Empirical Assessment
3.1 Effectiveness of Class Hierarchy Analysis
3.2 Class Hierarchy Analysis and Specialization
3.3 Class Hierarchy Analysis and Profile-Guided Receiver Class Prediction
4 Other Related Work
5 Conclusions
Acknowledgments
References
Chapter 6
Objects with Multiple Most Specific Classes
1 Introduction
1.1 Related works
2 Reference object model
2.1 Static and dynamic types
2.2 Object references and contexts
3 Inheritance hierarchies
3.1 A total order on classes
4 Attributes
4.1 Attribute access
5 Methods and dispatching
5.1 Preferred class
5.2 Argument specificity
6 Conclusions
References
Chapter 7
A Marriage of Class- and Object-Based InheritanceWithout Unwanted Children
1 Introduction
2 Terminology and Concepts
2.1 Objects and Client Interfaces
2.2 Incremental Modification and Specialisation Interfaces
2.3 Classes
2.3.1 Classes as Templates
2.3.2 Class-Rased Inheritance
2.4 Object-Based inheritance
3 Object-Based Inheritance Breaches Encapsulation
4 Prototypes With Encapsulated Specialisation Interfaces
4.1 The General Idea
4.2 An Example Mechanism
5 Discussion
5.1 Encapsulated Inheritance on Objects: A Marriage Without Unwanted Children
5.2 Overcoming the Limitations of our Example Mechanism
6 Conclusion
7 Acknowledgements
References
Chapter 8
On Subtyping and Matching
1 Introduction
2 The Power and Limits of Subtyping
2.1 Objects Types and Subtyping
2.2 Inheritance
2.3 Classes
2.4 Binary Methods
2.5 Protocols
3 Matching
3.1 Basic Properties of Matching
3.2 Classes with Matching
3.3 Discussion
4 Type Operators
4.1 Type Operators and Recursive Object Types
4.2 F-bounded Subtyping
4.3 Higher-Order Subtyping
4.4 Semantic Equivalence
4.5 Discussion
5 Matching as F-bounded Subtyping
5.1 The F-bounded Interpretation
5.2 Reflexivity and Transitivity
5.3 Matching Self
6 Matching as Higher-Order Subtyping
6.1 The Higher-Order Interpretation
6.2 Reflexivity and Transitivity
6.3 Matching Self
7 Inheritance and Classes via Higher-Order Subtyping
8 Conclusions
Acknowledgments
References
Chapter 9
Using Metaobject Protocols to ImplementAtomic Data Types
1 Introduction
2 Background and Concepts
3 An Implicit Approach for Atomic Data Types
3.1 Defining Atomic Data Types
3.2 Constructing Transactions
3.3 PC++ Implementation
4 Metaobject Protocols
4.1 The Basic Idea
4.2 Open C++
5 Using Metaobject Protocols to Implement Atomic Data Types
5.1 The Computation Model
5.2 Metaobject Protocol Approach
6 Implementing Concurrency Control Methods Using an Atomic Metaobject
6.1
An Optimistic Concurrency Control Metaobject Class
6.2 A Pessimistic Concurrency Control Metaobject Class
7 Summary and Conclusions
Acknowledgements
References
Chapter 10
Meta-level Programming with CodA
1 Introduction
2 The CodA Meta-Architecture
2.1 The Meta-level
2.2 Meta-level Components
2.3 Example Meta-level
2.4 Implementation
3 Concurrent Objects
4 Distributed Objects
4.1 Replication
4.2 Summary
5 Ported Objects
5.1 Meta-level Design
5.2 Compound PortedObjects
6 Putting the Pieces Together
7 Related Work
8 Conclusions and Future Work
9 Acknowledgements
References
Chapter 11
An Object-Oriented Framework for the FormalVerification of Processors
1 Introduction
1.1 Motivations
1.2 The Problem of Processor Verification
1.3
Aims of the Paper and Related Works
2 Overview of our Method: an Example
3 The Fβramework Basis
3.1 Why an Object-Oriented Approach?
3.2 Why a Computer Algebra Simplification System?
4 The F'ramework Implementation
4.1 The Specification Process
4.2 The Proof Process
5 Experimental Results
5.1 Application to Tamarack-3
5.2 Other Results
6 Conclusion
References
Chapter 12
Incremental Mature Garbage CollectionUsing the Train Algorithm
1 Introduction
2 The Algorithm
2.1 The Train Algorithm
2.1.1 The Train Metaphor
2.1.2 Car Collection Strategy
2.1.3 Tenuring Strategy
2.1.4 Technical Issues
2.2 Correctness
2.3 Popular Objects
3 The Implementation
3.1 Memory Layout
3.1.1 Original Mjelner BETA System
3.1.2 New Mjdner BETA System
3.2 Practical Considerations
3.2.1 Evacuation Strategy
3.2.2 Invocation Frequency
3.2.3 Popular Object Treatment
3.3 Implementation Efforts
4 The Results
4.1 Benchmarks
4.1.1 Benchmark Programs
4.1.2 Benchmark System
4.2 Collection Pauses
4.3 Time Overhead
4.3.1 Old Generation Collector
4.3.2 Young Generation Collector
4.3.3 Mutator
4.3.4 Overall Result
4.4 Storage Overhead
4.4.1 Inter-Car Remembered Set Overhead
4.4.2 Garbage Overhead
4.4.3 Train Table Overhead
4.4.4 Overall Result
4.5 Copying Overhead
4.6 Popular Objects
4.7 Virtual Memory Behavior
5 Future Work
6 Conclusion
7 Acknowledgments
Chapter 13
Message Dispatch on Pipelined Processors
1 Introduction
1.1 Specific measurements vs. analytical models
1.2 Processor architecture
1.3 Influence of dynamic typing
1.4 Single versus multiple inheritance
1.5 Limitations
1.6 Overview of the paper
2 Method lookup techniques
3 Dynamic techniques
3.1 Global lookup caches (LC)
3.2 Inline caches (IC)
3.3 Polymorphic inline caching (PIC)
4 Static techniques
4.1 Selector Table Indexing (STI)
4.2 Virtual function tables (VTBL)
4.3 Selector coloring (SC)
4.4 Row displacement (RD)
4.5 Compact Selector-Indexed Dispatch Tables (CT)
5 Analysis
5.1 Parameters influencing performance
5.2 Overview of dispatch costs
5.3 Cost of multiple inheritance and dynamic typing
5.4 Influence of processor implementation
5.5 Limitations
6 Other considerations
6.1 Memory cost
6.2 Other aspects
7 Related work
8 Conclusions
9 References
Appendix A. Detailed data
Chapter 14
Do Object-Oriented Languages NeedSpecial Hardware Support?
1 Introduction
2 Methods
3 Instruction Usage
4 Hardware Support for Tagged Arithmetic
5 Hardware Support for Message Lookup
6 Instruction Cache Behavior
7 Data Cache Behavior
8 Future Work
9 Conclusions
References
Appendix A. Detailed data
Chapter 15
Programming as an Experience:The Inspiration for Self
1 Introduction
1.1 Motivation
2 Language Semantics
2.1 Discussion
3 The User Interface and Programming Environment
3.1 Structural reification
3.2 Live Editing
3.3 Example of Direct Application Construction
3.4 Issues
3.5 Summary
4 Implementing Self
4.1 Transparent Efficiency
4.2 Responsiveness
4.3 Malleability
4.4 Encouragiong Factoring and Extensible Control
4.5 Openlfsues
4.6 Summary
5 Conclusions
6 Acknowledgments
7 References
Chapter 16
Time and Asynchrony in Interactionsamong Distributed Real-Time Objects*
1 Introduction
2 Language
Basic Framework
Non-blocking Message Sending
The Passage of Time and Delayed Processing
Syntax
Semantics
3 Verification for Distributed Real-Time Objects
Relating Objects with Respect to Speed
Cooperationability for Distributed Real-Time Objects
Example of Verification
4 Related Work
5 Conclusion
References
Chapter 17
Object Protocols as Functional Parsers
1 Introduction and background
1.1 Protocols
1.2 About this paper
2 Parsing with Combinators
2.1 Combinators
2.2 Parsers as monads
3 Protocols as message parsers
3.1 The general idea
3.2 Message representation
3.3
A simple example: the file-protocol
4 Examples of protocol parsers
4.1 Simple stacks
4.2 Context sensitivity
4.3 Access control
4.4 The voting protocol
4.5 Discussion
5 Parallellism and shared state
5.1 The need for parallellism
5.2 Parallel file access
5.3 A shared drawing object
5.4 Discussion
6 Incremental protocol checking
6.1 Parsers with continuations
6.2 Input representation
6.3 Incremental checking
7 Conclusions
Acknowledgements
References
Chapter 18
Interface-Based Protocol Specification of OpenSystems using PSL
1 Opensystems
2 Interfaces
3 Extending Interface Specification
4 Attributes
5 Situations
6 Protocol Rules
7 Constraints
8 Subsituations
9 Refinement
10 Describing Interactions
11 Foundations
12 Related Work
References
Chapter 19
Experience Using Design Patterns to EvolveCommunication Software Across Diverse 0s Platforms
1 Introduction
2 Overview of Design Patterns
2.1 The Reactor Pattern
2.2 The Acceptor Pattern
3 Evolving Design Patterns Across 0s Platforms
3.1 Motivation
3.2 The Impact of Platform Demultiplexing and YO Semantics
3.3 UNIX Evolution of the Patterns
3.4 Evolving the Design Patterns to Windows NT
4 Lessons Learned
4.1 Pros and Cons of Design Patterns
4.2 Solutions and Workarounds
5 Concluding Remarks
References
Chapter 20
Sharing Properties in a Uniform Object Space
1 Introduction
2 Requirements
2.1 Direct Description of Objects
2.2 Direct Description of Aspects of Objects
2.3 Categorization of Objects
3 Objects
4 Views
4.1 Introduction
4.2 Selecting Versions of Implementation
4.3 Cooperation among Aspects
4.4 Derivation of Views
4.5 Views and Delegation
5 Categorization of Objects
5.1 Patterns
5.2 Derivation of Patterns
5.3 Instances and Class Components
5.4 Nested Patterns
5.5 Patterns and Delegation
6 Related Work
6.1 Views
6.2 Delegation and Inheritance
7 Conclusion
References
Chapter 21
ChyProβ : A Hypermedia Programming Environmentfor Smalltalk-SO
1 Introduction
2 Limitations of the Smalltalk-SO Standard Tools
2.1 Limitations of the Browser
2.2 Limitations of the Inspector
2.3 Limitations of the Debugger
3 ChyPro: a Hypermedia Programming Environment forSmalltalk
3.1 A Browser Based on Hypermedia
3.3 Other Tools
3.4 Implementation Issues and User Evaluation
4 Conclusion and Perspectives
References
Back matter
Author Index
π SIMILAR VOLUMES
This book presents the carefully refereed proceedings of the 9th European Conference on Object-Oriented Programming, ECOOP '95, held in Aarhus, Denmark in August 1995. Besides the scientific conference documented in this book, ECOOP '95 included a number of tutorials and workshops as well as a two-d
This book presents the carefully refereed proceedings of the 9th European Conference on Object-Oriented Programming, ECOOP '95, held in Aarhus, Denmark in August 1995.<BR>Besides the scientific conference documented in this book, ECOOP '95 included a number of tutorials and workshops as well as a tw
<span>It is now more than twenty-five years since object-oriented programming was βinve- edβ (actually, more than thirty years since work on Simula started), but, by all accounts, it would appear as if object-oriented technology has only been βdiscoveredβ in the past ten years! When the first Europe
<p><span>This book constitutes the refereed proceedings of the 20th European Conference on Object-Oriented Programming, ECOOP 2006, held in Nantes, France in July 2006.</span></p><p><span>20 revised full papers, together with 3 keynote papers were carefully reviewed and selected. The papers are orga
<span>It is a pleasure to present the proceedings of the 22nd European Conference on Object-Oriented Programming (ECOOP 2008) held in Paphos, Cyprus. The conference continues to serve a broad object-oriented community with a tech- cal program spanning theory and practice and a healthy mix of industr