Efficient Implementation of Concurrent Programming Languages
چکیده
Stenman, E. 2002: Efficient Implementation of Concurrent Programming Languages, Acta Universitatis Upsaliensis. Uppsala dissertations from the Faculty of Science and Technology 43. 150 pp. Uppsala. ISBN 91–554–5422–4. This thesis proposes and experimentally evaluates techniques for efficient implementation of languages designed for high availability concurrent systems. This experimental evaluation has been done while developing the High Performance Erlang (HiPE) system, a native code compiler for SPARC and x86. The two main goals of the HiPE system are to provide efficient execution of Erlang programs, and to provide a research vehicle for evaluating implementation techniques for concurrent functional programming languages. The focus of the thesis is the evaluation of two techniques that enable interprocess optimization through dynamic compilation. The first technique is a fast register allocator called linear scan, and the second is a memory architecture where processes share memory. The main contributions of the thesis are: • An evaluation of linear scan register allocation in a different language setting. In addition the performance of linear scan on the register poor x86 architecture is evaluated for the first time. • A description of three different heap architectures (private heaps, shared heap, and a hybrid of the two), with a systematic investigation of implementation aspects and an extensive discussion on the associated performance trade-offs of the heap architectures. The description is accompanied by an experimental evaluation of the private vs. the shared heap setting. • A novel approach to optimizing a concurrent program, by merging code from a sender with code from a receiver, is presented together with other methods for reducing the overhead of context switching. • A description of the implementation aspects of a complete and robust native code Erlang system, which makes it possible to test compiler optimizations on real world programs. Erik Stenman, Department of Information Technology, Uppsala University, Box 337, SE–751 05 Uppsala, Sweden. c © Erik Stenman 2002 ISSN 1104–2516 ISBN 91–554–5422–4 Printed in Sweden by Elanders Gotab, Stockholm 2002. To my parents and my wife.