| Introduction | p. 1 |
| Persistent Languages: Introduction and Overview | p. 5 |
| Language Design: Introductionand State of the Art | p. 9 |
| Higher-Order Persistent Polymorphic Programming in Tycoon | p. 13 |
| Fibonacci: A Programming Language for Object Databases | p. 60 |
| The Napier88 Persistent Programming Language and Environment | p. 98 |
| Linguistic Reflection: Introduction and Stateof the Art | p. 155 |
| Type-Safe Linguistic Reflection: A Generator Technology | p. 158 |
| Type-Safe Linguistic Run-time Reflection: A Practical Perspective | p. 189 |
| Type Systems: Introductionand Stateofthe Art | p. 193 |
| A Calculus for Overloaded Functions with Subtyping | p. 196 |
| Protection in Persistent Object Systems | p. 234 |
| Subtyping and Assignment in Database Programming Languages | p. 238 |
| Bulk Types and Iterators: Introduction and State of the Art | p. 241 |
| The Joy of Sets | p. 245 |
| Bulk Types: Built-In or Add-On? | p. 257 |
| Extensible Objects for Database Evolution: Language Features and Implementation Issues | p. 262 |
| Concurrency and Transactions: Introductionand Stateofthe Art | p. 283 |
| Specifying Flexible Concurrency Control Schemes: an Abstract Operational Approach | p. 286 |
| Persistent Threads | p. 290 |
| Persistent Support Systems: Introduction and Overview | p. 297 |
| Architecture and Abstract Machines: Introduction and State of the Art | p. 303 |
| Persistent Foundations for Scalable Multi-Paradigmal Systems | p. 310 |
| The DBPL Project: Advances in Modular Database Programming | p. 341 |
| The Pam Case Machine | p. 346 |
| Tycoon: A Scalable and Interoperable Persistent System Environment | p. 365 |
| Object Store Design: Introductionand Stateofthe Art | p. 383 |
| An Open System Architecture for a Persistent Object Store | p. 387 |
| Overview of PIOS: a Physically Independent Object Server | p. 391 |
| Efficient Incremental Garbage Collection for Client-Server Object Database Systems | p. 427 |
| Towards a Unified Model of Untyped Object Stores: Experience with the Tycoon Store Protocol | p. 431 |
| Measuring Persistent Object Systems | p. 434 |
| Implementation Techniques: Introduction and State of the Art | p. 439 |
| Concurrent Shadow Paging in the Flask Architecture | p. 442 |
| Locking in OODBMS Clients Supporting Nested Transactions | p. 446 |
| Query Processing in PIOS | p. 462 |
| Optimization of Nested Queries in Object Bases | p. 481 |
| Integrating Query and Program Optimization Using Persistent CPS Representations | p. 496 |
| An ad hoc Approach to the Implementation of Polymorphism | p. 502 |
| Using Persistent Languages: Introductionand Overview | p. 505 |
| Persistent Programming Environments: Introductionand Stateofthe Art | p. 507 |
| Exploiting Persistent Linkage in Software Engineering Environments | p. 511 |
| Using Persistence Technology to Control Schema Evolution | p. 515 |
| Unifying Interaction with Persistent Data and Program | p. 519 |
| The Persistent Workshop: Programming Environment for Napier88 | p. 523 |
| The Glasgow Persistent Libraries | p. 527 |
| Visualising Persistent Stores | p. 540 |
| Data Modelling: Introduction and State of the Art | p. 549 |
| Application Development using Data Modelling | p. 553 |
| The Style Workbench: Systematics of Typed Language Environments | p. 570 |
| Using Extensible Grammars for Data Modelling | p. 584 |
| Interoperability: Introduction and State of the Art | p. 599 |
| Querying the File | p. 602 |
| Updating the File | p. 621 |
| Lean Languages and Models: Towards an Interoperable Kernel for Persistent Object Systems | p. 623 |
| List of Contributors | p. 629 |
| Table of Contents provided by Publisher. All Rights Reserved. |