Abstraction Without Guilt By Steve Blackburn Abstract: While on the one hand systems programmers strive for reliability, security, and maintainability, on the other hand they depend on performance and transparent access to low-level primitives. Abstraction is the key tool for enabling the former but it typically obstructs the latter. This talk addresses this conundrum from three distinct angles; as a producer, a consumer, and an evaluator of high level programming languages, and is based on ten years of experience in each of these roles. I will discuss my experience as a producer, engineering a low-overhead, highly-expressive Java dialect suitable for systems programming. I will discuss my experience as a consumer, using Java and object oriented programming principles to build a JVM and memory management subsystem. Key to both of these is the role as an evaluator, measuring and understanding the complex behavior of managed runtime systems. The phrase "abstraction without guilt", coined by Ken Kennedy, nicely captures our philosophy on systems building. Bio: Steve Blackburn is an Associate Professor at the Australian National University. His interests include memory management, runtime systems, performance analysis and computer architecture. Together with his collaborators, he has produced a number of tools that are in wide use in the research community, including the DaCapo benchmark suite and the MMTk memory management toolkit. He been heavily involved in development of the Jikes RVM research JVM, and lead the development of the Moxie JVM while at Intel. He is actively involved in the research community and was program chair for ISMM 2008 and MSP 2004.