Abstract
Data-type generic programming can be used to traverse and manipulate specific parts of large heterogeneously-typed tree structures, without the need for tedious boilerplate. Generic programming is often approached from a theoretical perspective, where the emphasis lies on the power of the representation rather than on efficiency. We describe use cases for a generic system derived from our work on a nanopass compiler, where efficiency is a real concern, and detail a new generics approach (Alloy) that we have developed in Haskell to allow our compiler passes to traverse the abstract syntax tree quickly. We benchmark our approach against several other Haskell generics approaches and statistically analyse the results, finding that Alloy is fastest on heterogeneously-typed trees.
Original language | English |
---|---|
Title of host publication | Proceedings of the 2nd ACM SIGPLAN symposium on Haskell |
Place of Publication | New York |
Publisher | Association for Computing Machinery (ACM) |
Pages | 105-116 |
Number of pages | 12 |
ISBN (Print) | 9781605585086 |
DOIs | |
Publication status | Published - 3 Sep 2009 |
Externally published | Yes |
Event | 2nd ACM SIGPLAN symposium on Haskell3/9/2003 - Edinburgh, United Kingdom Duration: 3 Sep 2009 → 3 Sep 2009 Conference number: 2nd |
Other
Other | 2nd ACM SIGPLAN symposium on Haskell3/9/2003 |
---|---|
Abbreviated title | Haskell 2009 |
Country/Territory | United Kingdom |
City | Edinburgh |
Period | 3/09/09 → 3/09/09 |
Keywords
- Generic programming
- Haskell
- Alloy