Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!caip!topaz!ll-xn!nike!ucbcad!ucbvax!RICE.EDU!rbbb From: rbbb@RICE.EDU (David Chase) Newsgroups: mod.ai Subject: Query on compilers, optimization, and garbage collection Message-ID: <415.rbbb.titan@Rice> Date: Wed, 16-Jul-86 00:46:59 EDT Article-I.D.: Rice.415.rbbb.titan Posted: Wed Jul 16 00:46:59 1986 Date-Received: Sat, 19-Jul-86 03:51:47 EDT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 51 Approved: ailist@sri-ai.arpa 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