2017
DOI: 10.1145/3158101
|View full text |Cite
|
Sign up to set email alerts
|

Unifying analytic and statically-typed quasiquotes

Abstract: Metaprograms are programs that manipulate (generate, analyze and evaluate) other programs. These tasks are greatly facilitated by quasiquotation, a technique to construct and deconstruct program fragments using quoted code templates expressed in the syntax of the manipulated language. We argue that two main flavors of quasiquotes have existed so far: Lisp-style quasiquotes, which can both construct and deconstruct programs but may produce code that contains type mismatches and unbound variables; and MetaML-sty… Show more

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

2018
2018
2023
2023

Publication Types

Select...
5
3

Relationship

0
8

Authors

Journals

citations
Cited by 24 publications
(11 citation statements)
references
References 67 publications
(73 reference statements)
0
11
0
Order By: Relevance
“…Quotation-Based DSLs. Quotation-based DSLs [51], such as LINQ [50], LMS [59], and Squid [55], reuse the syntax and type system of the host language and gives access to the program's AST during compilation and runtime. In contrast to type-based and shallowly-embedded DSLs, quotation gives access to the entire AST of the GPL, including types, white-box UDFs, and control flow.…”
Section: Introductionmentioning
confidence: 99%
“…Quotation-Based DSLs. Quotation-based DSLs [51], such as LINQ [50], LMS [59], and Squid [55], reuse the syntax and type system of the host language and gives access to the program's AST during compilation and runtime. In contrast to type-based and shallowly-embedded DSLs, quotation gives access to the entire AST of the GPL, including types, white-box UDFs, and control flow.…”
Section: Introductionmentioning
confidence: 99%
“…The underlying problem that our effect system solves is a general one: we need to restrict the lifetime of a resource (capabilities in our case) to a certain dynamic region (the call to handle in our case). This problem occurs in the domain of regionbased resource management (Kiselyov & Shan, 2008), object capabilities (Haller & Loiko, 2016), delimited control (Dybvig et al, 2007), scope safety in type-safe metaprogramming (Parreaux et al, 2017), as well as with prompt-based implementations of effect handlers (Brachthäuser & Schuster, 2017). Our effect system is inspired by the λ calculus (Zhang & Myers, 2019), which uses dependent types to track the set of used labels (i.e., capabilities) in the effect type.…”
Section: Establishing Effect Safetymentioning
confidence: 99%
“…We achieve effect safety by generalizing techniques of Launchbury & Sabry (1997) to nested regions (Kiselyov & Shan, 2008) and using intersection types of abstract type members (Parreaux et al, 2017) instead of rank-2 types. Our effect system rules out some use cases of multi-prompt delimited control (Kobori et al, 2016), but can express many interesting use cases of effect handlers.…”
Section: List Of Contributions and Paper Overviewmentioning
confidence: 99%
“…In the area of DSL development, future research aims to provide a more stable foundation and better tooling for rapid development of optimizing DSLs embedded in Scala. An important milestone in this direction is the Squid metaprogramming framework by Parreaux et al (2018). Squid combines the flexibility of dynamic quasiquotes (in the style offered by Lisp) with the typing and scoping guarantees of static quasiquotes (in the style offered by MetaML).…”
Section: Future Directions For Researchmentioning
confidence: 99%