Balloon types: controlling sharing of state in data types
File(s)DTR96-10.pdf (2.53 MB)
Technical report
Author(s)
Almeida, Paulo Sergio
Type
Report
Abstract
Current data abstraction mechanisms are not adequate to control sharing of state in the general case involving objects in linked structures. The pervading possibility of sharing is a source of errors and an obstacle to language implementation techniques.
We present a general extension to programming languages which makes the ability to share state a first class property of a data type, resolving a long-standing flaw in existing data abstraction mechanisms.
Balloon types enforce a strong form of encapsulation: no state reachable (directly or transitively) by a balloon object is referenced by any external object. Syntactic simplicity is achieved by relying on a non-trivial static analysis as the checking mechanism.
Balloon types are applicable in a wide range of areas such as program transformation, memory management and distributed systems. They are the key to obtaining self-contained composite objects, truly opaque data abstractions and value types - important concepts for the development of large scale, provably correct programs.
We present a general extension to programming languages which makes the ability to share state a first class property of a data type, resolving a long-standing flaw in existing data abstraction mechanisms.
Balloon types enforce a strong form of encapsulation: no state reachable (directly or transitively) by a balloon object is referenced by any external object. Syntactic simplicity is achieved by relying on a non-trivial static analysis as the checking mechanism.
Balloon types are applicable in a wide range of areas such as program transformation, memory management and distributed systems. They are the key to obtaining self-contained composite objects, truly opaque data abstractions and value types - important concepts for the development of large scale, provably correct programs.
Date Issued
1996-01-01
Citation
Departmental Technical Report: 96/10, 1996, pp.1-25
Publisher
Department of Computing, Imperial College London
Start Page
1
End Page
25
Journal / Book Title
Departmental Technical Report: 96/10
Copyright Statement
© 1996 The Author(s) The . This report is available open access under a CC-BY-NC-ND (https://creativecommons.org/licenses/by-nc-nd/4.0/)
Publication Status
Published