@article {almeida1999type, title = {Type-checking balloon types}, journal = {Electronic Notes in Theoretical Computer Science}, volume = {20}, year = {1999}, pages = {1{\textendash}27}, publisher = {Elsevier}, 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. Balloon types, which we have introduced in [2], are a general extension to programming languages. They make the ability to share state a rst class property of a data type. The balloon invariant expresses a strong form of encapsulation: no state reachable (directly or transitively) by a balloon object is referenced by any external object. In this paper we describe the checking mechanism for balloon types. It relies on a non-trivial static analysis, described as an abstract interpretation. Here we focus in particular on the design of the abstract domain which allows the checking mechanism to work under realistic assumptions regarding possible object aliasing.

}, attachments = {https://haslab.uminho.pt/sites/default/files/psa/files/type-checking_balloon_types_1.pdf}, author = {Paulo S{\'e}rgio Almeida} }