2015
DOI: 10.1145/2887747.2804313
|View full text |Cite
|
Sign up to set email alerts
|

Type-safe runtime code generation: accelerate to LLVM

Abstract: Embedded languages are often compiled at application runtime; thus, embedded compile-time errors become application runtime errors. We argue that advanced type system features, such as GADTs and type families, play a crucial role in minimising such runtime errors. Specifically, a rigorous type discipline reduces runtime errors due to bugs in both embedded language applications and the implementation of the embedded language compiler itself. In this paper, we focus on the safety guarantees achieved by type pres… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
8
0

Year Published

2016
2016
2023
2023

Publication Types

Select...
4
1
1

Relationship

3
3

Authors

Journals

citations
Cited by 6 publications
(8 citation statements)
references
References 36 publications
0
8
0
Order By: Relevance
“…This intrinsically typed representation ensures that embedded language programs written by the user, as well as AST transformations written by the language implementer, are type correct by construction. While choosing a typed representation is a largely orthogonal property of the program representation and makes the techniques we present here more involved, it is well worth the cost for complex embedded languages [Chakravarty et al 2011;McDonell et al 2015McDonell et al , 2013.…”
Section: Generic Expression Languagementioning
confidence: 99%
See 1 more Smart Citation

Embedded Pattern Matching

McDonell,
Meredith,
Keller
2021
Preprint
Self Cite
“…This intrinsically typed representation ensures that embedded language programs written by the user, as well as AST transformations written by the language implementer, are type correct by construction. While choosing a typed representation is a largely orthogonal property of the program representation and makes the techniques we present here more involved, it is well worth the cost for complex embedded languages [Chakravarty et al 2011;McDonell et al 2015McDonell et al , 2013.…”
Section: Generic Expression Languagementioning
confidence: 99%
“…We implemented embedded pattern matching in Accelerate [Chakravarty et al 2011;Clifton-Everest et al 2017;McDonell et al 2015McDonell et al , 2013van den Haak et al 2020], an open source language embedded in Haskell for data-parallel array computations. Accelerate code embedded in Haskell is not compiled by the Haskell compiler: instead, the Accelerate library includes a runtime compiler which generates and compiles parallel SIMD or GPU code at application runtime.…”
Section: Case Studymentioning
confidence: 99%

Embedded Pattern Matching

McDonell,
Meredith,
Keller
2021
Preprint
Self Cite
“…The Accelerate code for dotp is almost identical to what we would write in standard Haskell over lists and is certainly more concise than an explicitly GPU-accelerated or SIMDvectorized 3 low-level dot-product, while still compiling to efficient code [12,38,39].…”
Section: Overviewmentioning
confidence: 99%
“…Code generation is not discussed in detail as it is not a focus of this work. See McDonell et al [39] for how LLVM is generated from the AST in Listing 2.1.…”
Section: Internalsmentioning
confidence: 99%
See 1 more Smart Citation