Chapter 7: Experiments with GHC's Optimiser

Németh, László
March 2006
Trends in Functional Programming Volume 5;2006, Vol. 5, p97
There are several tricky aspects of compiling a functional language: what optimisations to perform, how to do them efficiently, and when, or more precisely in what order, the optimisations should be done. The literature discussing the first question is abundant, for the second is somewhat sparse and for the third is almost non-existent. This paper uses the Glasgow Haskell Compiler (GHC) to investigate when the optimisations should be performed to gain maximum benefits, where maximum benefits is defined as shortest runtime, for a given set of optimisations. We focus on GHC, because it has been developed as a test bed for compiler research, but we stress that the techniques are applicable to any other compiler for a functional language.


Related Articles

  • Extension of Alvis Compiler front-end. Wypych, Michał; Szpyrka, Marcin; Matyasik, Piotr // AIP Conference Proceedings;2015, Vol. 1702 Issue 1, p1 

    Alvis is a formal modelling language that enables possibility of verification of distributed concurrent systems. An Alvis model semantics finds expression in an LTS graph (labelled transition system). Execution of any language statement is expressed as a transition between formally defined...

  • High-level distributed coordination via distributed Haskell. Zhang Ying-Zhou; Zhang Wei-Feng; Zhou Guo-Qiang; Qian Jun-Yan // Journal of Communication & Computer;May2007, Vol. 4 Issue 5, p1 

    With the boom of Networks and Internet, more and more applications have an inherent distributed character. Distributed functional language can support high-level distributed coordination with automatic management of many coordination aspects, due to its features like good abstraction mechanisms,...

  • Chapter 5: Efficient Interpretation by Transforming Data Types and Patterns to Functions. Jansen, Jan Martin; Koopman, Pieter; Plasmeijer, Rinus // Trends in Functional Programming Volume 7;2007, Vol. 7, p73 

    This paper describes an efficient interpreter for lazy functional languages like Haskell and Clean. The interpreter is based on the elimination of algebraic data types and pattern-based function definitions by mapping them to functions using a new efficient variant of the Church encoding. The...

  • Haskell Programming Language.  // Database & Network Journal;Oct2005, Vol. 35 Issue 5, p16 

    This article provides information on the Haskell programming language. According to the article, Haskell is a standardized pure functional programming language with non-strict semantics. Named after the logician Haskell Curry, the programming language was created by a committee formed in 1987...

  • Haskell Programming Language.  // Network Dictionary;2007, p224 

    A definition of the term "Haskell programming language" is presented. Simply called Haskell in most cases, Haskell programming language is a standardized pure functional programming language with non-strict semantics. It features static polymorphic typing, higher-order functions, user-defined...

  • AN ANDROID HASKELL APPLICATION. Ferrara, Julián E. Gutiérrez; López, Pablo E. Martínez // Proceedings of the IADIS International Conference on WWW/Interne;2015, p177 

    This paper intends to transmit the experience of integrating a Functional Programming Language such as Haskell with a modern mobile device OS such as Android. The main advantages to do such a thing is to express powerful algorithms in a very compact way when needed, being able to take advantage...

  • Haskell for Perlers. Antonsen, Frank // Perl Review;Winter2005, Vol. 2 Issue 1, p18 

    Loosely inspired by the classic programming game The functional programming language Haskell is creating quite a fuzz in the Perl community due to the tremendous work done by Autrijius Tang and the rest of the Pugs team. Here, I want to give you a quick introduction to this language and some of...

  • Chapter 1: Proof Support for General Type Classes. Van Kesteren, Ron; Van Eekelen, Marko; De Mol, Maarten // Trends in Functional Programming Volume 5;2006, Vol. 5, p1 

    We present a proof rule and an effective tactic for proving properties about HASKELL type classes by proving them for the available instance definitions. This is not straightforward, because instance definitions may depend on each other. The proof assistant ISABELLE handles this problem for...

  • Modular Polymorphic Defunctionalization. Fourtounis, Georgios; Papaspyrou, Nikolaos S.; Theofilopoulos, Panagiotis // Computer Science & Information Systems;Oct2014, Vol. 11 Issue 4, p1417 

    Defunctionalization is generally considered a whole-program transformation and thus incompatible with separate compilation. In this paper, we formalize a modular variant of defunctionalization which can support separate compilation for a functional programming language with parametric...


Read the Article


Sorry, but this item is not currently available from your library.

Try another library?
Sign out of this library

Other Topics