Proceedings of the ACM SIGPLAN 2012 Workshop on Partial Evaluation and Program Manipulation 2012
DOI: 10.1145/2103746.2103769
|View full text |Cite
|
Sign up to set email alerts
|

Scala-virtualized

Abstract: Scala-Virtualized extends the Scala language to better support hosting embedded DSLs. Embedding a DSL in Scala-Virtualized comes with all the benefits of a shallow embedding thanks to Scala's flexible syntax, without giving up analyzing and manipulating the domain program -typically exclusive to deep embeddings. Through lightweight modular staging, implemented in standard Scala, the benefits of a deep embedding are recovered with little overhead. Scala-Virtualized lifts more of the language's built-in construc… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
18
0

Year Published

2012
2012
2019
2019

Publication Types

Select...
5
2
1

Relationship

3
5

Authors

Journals

citations
Cited by 30 publications
(18 citation statements)
references
References 11 publications
0
18
0
Order By: Relevance
“…For this purpose, Squid defines a small library of virtualized constructs [Jovanovic et al 2014;Moors et al 2012]. For example: variables are represented using a Var data type supporting operations .!…”
Section: Language Virtualizationmentioning
confidence: 99%
See 1 more Smart Citation
“…For this purpose, Squid defines a small library of virtualized constructs [Jovanovic et al 2014;Moors et al 2012]. For example: variables are represented using a Var data type supporting operations .!…”
Section: Language Virtualizationmentioning
confidence: 99%
“…Note that IRs that rely on virtualized constructs [Jovanovic et al 2014;Moors et al 2012] will typically refine the behavior of the reinterpret method in case the target is a subclass of ScalaAST, so that these constructs are correctly de-virtualized. For example, without de-virtualization we might observe the following behavior: scala > code " if ( true ) 1 else 0" reinterpretIn ( new ScalaAST ) result : universe .…”
Section: One Interface To Rule Them Allmentioning
confidence: 99%
“…Moreover, type-inference-based techniques help to hide staging annotations to some extent [35], which can be further improved by language virtualization [23,28], but the added complexity and fundamental limitations are still there: DSL designers have to write the entire library with staging in mind, define IR nodes for all constructs meant to be supported by the DSL, and interact directly with details of the compiler's IR (especially when defining rewritings [34]). Figure 1b presents a rewriting that optimizes calls to Math .…”
Section: Limitations Of Stagingmentioning
confidence: 99%
“…This is done by transforming these constructs into calls to methods provided by the programmer or by the LMS framework. Currently, lifting is done using a custom version of the compiler, dubbed scalavirtualized [45] or using Yin-Yang [34], a macro-based frontend that allows selectively lifting parts of a program.…”
Section: Case Study 3: Stagingmentioning
confidence: 99%
“…Miniboxing uses a custom transformation implemented as a Scala compiler plugin [5,75], aimed at only the miniboxed representation. Finally, the Lightweight Modular Staging framework [55] in Scala relies on a custom fork of the main compiler, dubbed ScalaVirtualized [45], which is specifically retrofitted to support lifting language constructs.…”
Section: Introductionmentioning
confidence: 99%