Efficient Implementation of Concurrent Programming Languages

Dissertation in Computer Science to be publicly examined in Häggsalen, Ångströmlaboratoriet, Uppsala University, on Friday, November 1, 2002 at 1:00 pm for the degree of doctor of philosophy. The examination will be conducted in English. This thesis proposes and experimentally evaluates techniques f...

Full description

Bibliographic Details
Main Author: Stenman, Erik
Format: Doctoral Thesis
Language:English
Published: Uppsala universitet, Avdelningen för datalogi 2002
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-2688
http://nbn-resolving.de/urn:isbn:91-554-5422-4
id ndltd-UPSALLA1-oai-DiVA.org-uu-2688
record_format oai_dc
spelling ndltd-UPSALLA1-oai-DiVA.org-uu-26882013-01-08T13:07:08ZEfficient Implementation of Concurrent Programming LanguagesengStenman, ErikUppsala universitet, Avdelningen för datalogiUppsala universitet, DatalogiUppsala : Acta Universitatis Upsaliensis2002Computer scienceDatalogiDissertation in Computer Science to be publicly examined in Häggsalen, Ångströmlaboratoriet, Uppsala University, on Friday, November 1, 2002 at 1:00 pm for the degree of doctor of philosophy. The examination will be conducted in English. 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 inter-process 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. Doctoral thesis, monographinfo:eu-repo/semantics/doctoralThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-2688urn:isbn:91-554-5422-4Uppsala Dissertations from the Faculty of Science and Technology, 1104-2516 ; 43application/pdfinfo:eu-repo/semantics/openAccess
collection NDLTD
language English
format Doctoral Thesis
sources NDLTD
topic Computer science
Datalogi
spellingShingle Computer science
Datalogi
Stenman, Erik
Efficient Implementation of Concurrent Programming Languages
description Dissertation in Computer Science to be publicly examined in Häggsalen, Ångströmlaboratoriet, Uppsala University, on Friday, November 1, 2002 at 1:00 pm for the degree of doctor of philosophy. The examination will be conducted in English. 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 inter-process 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.
author Stenman, Erik
author_facet Stenman, Erik
author_sort Stenman, Erik
title Efficient Implementation of Concurrent Programming Languages
title_short Efficient Implementation of Concurrent Programming Languages
title_full Efficient Implementation of Concurrent Programming Languages
title_fullStr Efficient Implementation of Concurrent Programming Languages
title_full_unstemmed Efficient Implementation of Concurrent Programming Languages
title_sort efficient implementation of concurrent programming languages
publisher Uppsala universitet, Avdelningen för datalogi
publishDate 2002
url http://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-2688
http://nbn-resolving.de/urn:isbn:91-554-5422-4
work_keys_str_mv AT stenmanerik efficientimplementationofconcurrentprogramminglanguages
_version_ 1716509431197335552