Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation 2011
DOI: 10.1145/1993498.1993514
|View full text |Cite
|
Sign up to set email alerts
|

Languages as libraries

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
11
0

Year Published

2014
2014
2020
2020

Publication Types

Select...
4
3
2

Relationship

1
8

Authors

Journals

citations
Cited by 105 publications
(11 citation statements)
references
References 30 publications
0
11
0
Order By: Relevance
“…More generally, we argue for a radical rethinking of the role of high-level languages in performance critical code [16]. While our work demonstrates that Scala is a good choice, other expressive modern languages can be used just as well, as demonstrated by Racket macros [23], DSLs Accelerate [12], Feldspar [1], Nikola [11] (Haskell), Copperhead [2] (Python), Terra [4,5] (Lua).…”
Section: Perspectivesmentioning
confidence: 96%
“…More generally, we argue for a radical rethinking of the role of high-level languages in performance critical code [16]. While our work demonstrates that Scala is a good choice, other expressive modern languages can be used just as well, as demonstrated by Racket macros [23], DSLs Accelerate [12], Feldspar [1], Nikola [11] (Haskell), Copperhead [2] (Python), Terra [4,5] (Lua).…”
Section: Perspectivesmentioning
confidence: 96%
“…There are various metaprogramming techniques varying from preprocessors, templates as in C ++ or D, program generators 6 [e.g. Pronk et al 2013;Rathgeber et al 2017], JIT-compilation techniques like PACXX [Haidl et al 2016], quotation-based approaches like MetaML [Taha and Sheard 2000], MetaOCaml [Kiselyov 2014] (see Figure 3a), Terra [DeVito et al 2013] (see Figure 3b), or quasiquotation in Lisp [Bawden 1999], hygienic macro systems [Kohlbecker et al 1986] like Racket [Tobin-Hochstadt et al 2011], to deep DSL embedding (see below). MetaML and MetaOCaml stand out because unlike most other metaprogramming techniques their type systems ensure soundness of the multi-stage execution.…”
Section: Metaprogrammingmentioning
confidence: 99%
“…The table shows total line count (excluding blank lines and comments) and the number of static occurrences of contracts and primitives requiring dynamic checks such as function applications and primitive operations. These checks can be eliminated if we can show that they never fail; this has proven to produce significant speedups in practice, even without eliminating more expensive contract checks (Tobin-Hochstadt et al 2011).…”
Section: Evaluating On Existing Benchmarksmentioning
confidence: 99%
“…The table shows total line count (excluding blank lines and comments) and the number of static occurrences of contracts and primitives requiring dynamic checks such as function applications and primitive operations. These checks can be eliminated if we can show that they never fail; this has proven to produce significant speedups in practice, even without eliminating more expensive contract checks (Tobin-Hochstadt et al 2011).The table reports time (in milliseconds) and the number of false positives for SCV and our reduced system omitting the key contributions of this work (labeled "Simple"); "∞" indicates a timeout after 5 minutes.A false positive is a contract violation reported by the analysis, but by human inspection, cannot happen. The programs we consider are all known not to have contract errors, and thus all potential errors are false positives.…”
mentioning
confidence: 99%