rbbb@RICE.EDU (David Chase) (07/16/86)
I am looking for references on interactions (good and bad, intended and unintended) between garbage collectors and compilers that (attempt to) do optimizations. For example, if you know of a good optimization that reduces the amount of garbage produced, tell me about it. If you know of an ugly surprise that someone received when they tried to optimize code in a garbage-collected system, tell me about that. I realize that this isn't exactly AI, but I think people reading this list might have some pointers (to other lists, if nothing else). What I already have (no references for ugly surprises): "Optimization of Very High Level Languages-I: Value Transmission and its Corollaries" Schwartz, in Computer Languages, volume 1, pp 161-194 (1975) (copy optimizations, heap->stack allocation conversions) "Experience with the SETL Optimizer" Freudenberger, Schwartz and Sharir, in TOPLAS 5:1 (January 1983) (copy optimizations) "Binding Time Optimization in Programming Languages: Some Thoughts Toward the Design of an Ideal Language" Muchnick and Jones, in POPL 3, 1976 (heap->stack allocation conversions) "Shifting Garbage Collection Overhead to Compile Time" Barth, in CACM 20:7 (July 1977) (reference counting at compile time) "RABBIT: A Compiler for SCHEME" Steele, 1978 (heap->stack allocation conversions for activation records) "Fast Arithmetic in MacLISP" Steele, in 1977 Macsyma Users' Conference (heap->stack allocation conversions for numbers) "An Optimizing Compiler for Lexically Scoped Lisp" Brooks, Gabriel and Steele, in Compiler Construction 1982 (heap->stack allocation conversions for numbers) "A scheme of storage allocation and garbage collection for ALGOL 68" Branquart and Levi, in Algol 68 Implementation (North-Holland, 1971) (compiled marking routines) "Methods of garbage collection for ALGOL 68" Wodon, in Algol 68 Implementation (North-Holland, 1971) (compiled marking routines) David Chase