2012
DOI: 10.1007/s10990-013-9096-9
|View full text |Cite
|
Sign up to set email alerts
|

Scala-Virtualized: linguistic reuse for deep embeddings

Abstract: Scala-Virtualized extends the Scala language to better support hosting embedded DSLs. Scala is an expressive language that provides a flexible syntax, type-level computation using implicits, and other features that facilitate the development of embedded DSLs. However, many of these features work well only for shallow embeddings, i.e. DSLs which are implemented as plain libraries. Shallow embeddings automatically profit from features of the host language through linguistic reuse: any DSL expression is just as a… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
28
0

Year Published

2013
2013
2022
2022

Publication Types

Select...
5
2
2

Relationship

3
6

Authors

Journals

citations
Cited by 46 publications
(28 citation statements)
references
References 53 publications
0
28
0
Order By: Relevance
“…The major problem authors focused on is heterogenous environment which, despite of lots of advantages requires researchers to have expert knowledge in different programming models (aimed at a speci ic component of a computing system: messagepassing libraries, threaded libraries, data parallel programming models etc. It has to be underlined that signi icant difference between our research and OptiML is OptiML's dependency on Scala-Virtualized [26]. Scala-Virtualized is a branch of the Scala compiler and standard library that contains a few additions to provide even better support for embedded DSLs.…”
Section: Related Workmentioning
confidence: 99%
“…The major problem authors focused on is heterogenous environment which, despite of lots of advantages requires researchers to have expert knowledge in different programming models (aimed at a speci ic component of a computing system: messagepassing libraries, threaded libraries, data parallel programming models etc. It has to be underlined that signi icant difference between our research and OptiML is OptiML's dependency on Scala-Virtualized [26]. Scala-Virtualized is a branch of the Scala compiler and standard library that contains a few additions to provide even better support for embedded DSLs.…”
Section: Related Workmentioning
confidence: 99%
“…Scala dialects provide flexible forms of overloading that extend to language built-ins like conditionals [70]. An expression such as…”
Section: High-level Low-level Programmingmentioning
confidence: 99%
“…Blame Assignment To assign blame for contract violations, we use Scala's implicit SourceContext facility [70]. Whenever the Scala compiler encounters a method call that requires a SourceContext argument maked as implicit, the compiler will synthesize such an object and initialize it with the source file and line number at the method call site.…”
Section: Contracts For Deep Functionsmentioning
confidence: 99%
“…Methods like infix_+ can serve as smart constructors that perform optimizations on the fly while building the IR [18]. With some tweaks to the Scala compiler (or alternatively using Scala macros) we can extend this approach to lift language built-ins like conditionals or variable assignments into the IR, by redefining them as method calls [15].…”
Section: Futamura Projectionsmentioning
confidence: 99%