2002
DOI: 10.1145/636517.636528
|View full text |Cite
|
Sign up to set email alerts
|

Template meta-programming for Haskell

Abstract: We propose a new extension to the purely functional programming language Haskell that supports compile-time meta-programming . The purpose of the system is to support the algorithmic construction of programs at compile-time.The ability to generate code at compile time allows the programmer to implement such features as polytypic programs, macro-like expansion, user directed optimization (such as inlining), and the generation of supporting data structures and func… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
244
0

Year Published

2005
2005
2020
2020

Publication Types

Select...
7
2

Relationship

0
9

Authors

Journals

citations
Cited by 268 publications
(244 citation statements)
references
References 11 publications
0
244
0
Order By: Relevance
“…Generic functions are defined on types of the Data class [10]. -Template Haskell (TH) is a language extension that allows us to define functions on a meta-level that are evaluated at compile-time and construct code from types, functions or other expressions [21].…”
Section: Three Data Generic Frameworkmentioning
confidence: 99%
See 1 more Smart Citation
“…Generic functions are defined on types of the Data class [10]. -Template Haskell (TH) is a language extension that allows us to define functions on a meta-level that are evaluated at compile-time and construct code from types, functions or other expressions [21].…”
Section: Three Data Generic Frameworkmentioning
confidence: 99%
“…Splicing code is not restricted to the top-level but can also be done from within templates. For a more comprehensive explanation we refer the interested reader to [21].…”
Section: Observer Templatesmentioning
confidence: 99%
“…To alleviate this problem, we developed a macro using TemplateHaskell [36]. The macro extracts all the constrained variables in the matched type of the pointcut, and generates an annotated deployment for every possible combination of instances that satisfy all constraints.…”
Section: Advising Overloaded Functionsmentioning
confidence: 99%
“…Some macro systems check whether expanded fragments will pass type checking in the target language. Multi-stage extensions generate safe code in, for instance, ML [17], Haskell [21], and Java [27]. C++ concepts add contracts to templates [7].…”
Section: Language-specific Safe Macro Systemsmentioning
confidence: 99%