## A Semantic Model of Reference Counting and its Abstraction (1986)

Venue: | In Proceedings ACM Conference on Lisp and Functional Programming |

Citations: | 67 - 0 self |

### BibTeX

@INPROCEEDINGS{Hudak86asemantic,

author = {Paul Hudak},

title = {A Semantic Model of Reference Counting and its Abstraction},

booktitle = {In Proceedings ACM Conference on Lisp and Functional Programming},

year = {1986},

pages = {351--363}

}

### Years of Citing Articles

### OpenURL

### Abstract

Interpretation of Reference Counting The semantics presented thus far is exact, and thus evaluating a particular reference count may not terminate, any more than a program in the standard semantics would. For use by a compiler we must choose a suitable abstraction (i.e., approximation) that will guarantee termination yet still provide useful information about the true reference counts. For us a suitable abstraction is one in which the inferred reference count is at least as great as the true one; i.e., we wish to err on the side of thinking there are more pointers to an object than there actually are. In this section we methodically develop such an abstraction in which: (1) the base domains are abstracted to powersets of finite approximations, (2) the primitive functions are abstracted similarly, (3) an abstract interpretation is thus induced on R p and R, and finally (4) a collecting interpretation of expressions is developed. 4.1 Preliminaries To set up things to come, we first gi...

### Citations

2028 |
Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints
- Cousot, Cousot
- 1977
(Show Context)
Citation Context ...aper appeared in the Proceedings of the ACM Symposium on Lisp and Functional Programming, August 1986, pp. 351-363. 1 standard semantics. It also represents a classical use of abstract interpretation =-=[3, 8]-=-, demonstrating the utility of that approach even on a non-standard semantics. Finally, perhaps the most interesting aspect of the methodology, we introduce the notion of a collecting interpretation o... |

500 |
Denotational Semantics: The Scott-Strachey Approach to Programming Language Semantics
- Stoy
- 1977
(Show Context)
Citation Context ...d variable environment with no store suffices. 1 That is, (strictf) is a function just like f but that returns ? if applied to any argument that is ?. It is similar to Stoy's use of the same function =-=[12]-=-. 2 These terms have traditionally been used to describe parameter-passing mechanisms in procedure calls, but here we attribute the term to the objects themselves. 3 To see that a reference count oper... |

106 | A flexible approach to interprocedural data flow analysis and programs with recursive data structures
- Jones, Muchnick
- 1982
(Show Context)
Citation Context ...ction that any element selected from the array must be considered as a likely candidate for the subarray. Reasoning about the structure of such composite objects is more difficult; Jones and Muchnick =-=[7] provide s-=-uch a treatment for lists. 6 The original "challenge" to solve this problem functionally and efficiently was posed in January 1985 by Daniel Friedman. 17 It is interesting to note that since... |

59 |
Detecting global variables in denotational specifications
- Schmidt
- 1985
(Show Context)
Citation Context ...ing [6, 8, 11]. A special case of this situation arises in the construction of semantics-directed compilers, where knowing sharing properties of store arguments is crucial to generating efficient code=-=[10]. Other op-=-timizations include eliminating reference count operations determined to be extraneous, performing "compile-time garbage collection" of objects whose extent can be determined statically[1], ... |

48 |
Shifting Garbage Collection Overhead to Compile Time
- Barth
- 1977
(Show Context)
Citation Context ...e[10]. Other optimizations include eliminating reference count operations determined to be extraneous, performing "compile-time garbage collection" of objects whose extent can be determined =-=statically[1]-=-, stack-allocating instead of heap-allocating activation records, and reusing activation records in tail-recursive calls. In this paper we present a precise semantic model of reference counting for an... |

47 |
The Aggregate Update Problem in Functional Programming Systems
- Hudak, Bloss
- 1985
(Show Context)
Citation Context ...anguages supporting aggregate data structures that are updated "functionally," where knowing that an aggregate has only one reference allows the update to be done destructively rather than b=-=y copying [6, 8, 11]-=-. A special case of this situation arises in the construction of semantics-directed compilers, where knowing sharing properties of store arguments is crucial to generating efficient code[10]. Other op... |

24 |
An empirical study of list structures in lisp
- Clark, Green
- 1977
(Show Context)
Citation Context ...a reference count ever exceeds maxrc, it "jumps" to infinity and "sticks" there, never to decrease again. 3 Justification for using this domain comes from empirical studies (at lea=-=st of Lisp programs [2]-=-) that indicate that objects are generally not shared very much, so that choosing a suitably high value for maxrc will give fairly accurate results most of the time. As with Rc, Src is a flat domain. ... |

23 |
Abstract interpretation and Optimizing Transformations for Applicative Programs
- Mycroft
- 1981
(Show Context)
Citation Context ...anguages supporting aggregate data structures that are updated "functionally," where knowing that an aggregate has only one reference allows the update to be done destructively rather than b=-=y copying [6, 8, 11]-=-. A special case of this situation arises in the construction of semantics-directed compilers, where knowing sharing properties of store arguments is crucial to generating efficient code[10]. Other op... |

14 |
Collecting interpretations of expressions
- Hudak, Young
- 1991
(Show Context)
Citation Context ..."collects" all possible values that each expression might have during program execution. 5 The general theory of such an interpretation is beyond the scope of this paper; more details may be=-= found in [5]-=-. For our purposes the following discussion suffices: We will write a recursive set equation for RC(lab) whose least fixpoint (i.e., smallest set) has the general 5 Our use of the term collecting inte... |

3 |
The global storage needs of a subcomputation
- Raoult, Sethi
- 1984
(Show Context)
Citation Context ... can be inferred via abstract reference counting as described here, or by a more direct (but perhaps less general) analysis as described in [10]. It is also related to the pebbling games described in =-=[9]-=-. 8 Extensions There are several extensions to the analysis that should be straightforward, such as adding constants that may be pass-by-reference (i.e., that are initially allocated in the store), an... |

3 |
Verifying the safe use of destructive operations in applicative programs
- Schwarz
- 1978
(Show Context)
Citation Context ...anguages supporting aggregate data structures that are updated "functionally," where knowing that an aggregate has only one reference allows the update to be done destructively rather than b=-=y copying [6, 8, 11]-=-. A special case of this situation arises in the construction of semantics-directed compilers, where knowing sharing properties of store arguments is crucial to generating efficient code[10]. Other op... |