Chitil, Olaf (1997) Common Subexpression Elimination in a Lazy Functional Language. In: Clack, Chris and Davie, Tony and Hammond, Kevin, eds. Draft Proceedings of the 9th International Workshop on Implementation of Functional Languages. . pp. 501-516. (KAR id:21455)
PDF
Language: English |
|
Download this file (PDF/187kB) |
Preview |
Request a format suitable for use with assistive technology e.g. a screenreader |
Abstract
Common subexpression elimination is a well-known compiler optimisation that saves time by avoiding the repetition of the same computation. To our knowledge it has not yet been applied to lazy functional programming languages, although there are several advantages. First, the referential transparency of these languages makes the identification of common subexpressions very simple. Second, more common subexpressions can be recognised because they can be of arbitrary type whereas standard common subexpression elimination only shares primitive values. However, because lazy functional languages decouple program structure from data space allocation and control flow, analysing its effects and deciding under which conditions the elimination of a common subexpression is beneficial proves to be quite difficult. We developed and implemented the transformation for the language Haskell by extending the Glasgow Haskell compiler and measured its effectiveness on real-world programs.
Item Type: | Conference or workshop item (Paper) |
---|---|
Subjects: | Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming, |
Divisions: | Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing |
Funders: | University of St Andrews (https://ror.org/02wn5qz54) |
Depositing User: | Olaf Chitil |
Date Deposited: | 01 Aug 2009 15:08 UTC |
Last Modified: | 05 Nov 2024 09:59 UTC |
Resource URI: | https://kar.kent.ac.uk/id/eprint/21455 (The current URI for this page, for reference purposes) |
- Link to SensusAccess
- Export to:
- RefWorks
- EPrints3 XML
- BibTeX
- CSV
- Depositors only (login required):