2009
DOI: 10.1145/1498926.1498930
|View full text |Cite
|
Sign up to set email alerts
|

Operational semantics for multi-language programs

Abstract: Interoperability is big business, a fact to which .NET, the JVM, and COM can attest. Language designers are well aware of this, and they are designing programming languages that reflect it-for instance, SML.NET, F#, Mondrian, and Scala all treat interoperability as a central design feature. Still, current multi-language research tends not to focus on the semantics of these features, but only on how to implement them efficiently. In this article, we attempt to rectify that by giving a technique for specifying t… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
7
0

Year Published

2013
2013
2023
2023

Publication Types

Select...
6
2
1

Relationship

0
9

Authors

Journals

citations
Cited by 60 publications
(7 citation statements)
references
References 48 publications
0
7
0
Order By: Relevance
“…The techniques devised in these works were further developed into Relational Transition Systems (RTS) and Parametric Inter-Language Simulations (PILS) in order to prove both vertically-and horizontally-composable compiler correctness [Hur et al, 2012, Neis et al, 2015. A different approach to cross-language relations could have been adopting a Matthews and Findler-style multi-language semantics, where source and target language are combined [Matthews and Findler, 2009]. For example, Perconti and Ahmed [2014] devised a two-step correct compiler for System F with existential and recursive types to typed assembly language using multi-language logical relations.…”
Section: Related Workmentioning
confidence: 99%
“…The techniques devised in these works were further developed into Relational Transition Systems (RTS) and Parametric Inter-Language Simulations (PILS) in order to prove both vertically-and horizontally-composable compiler correctness [Hur et al, 2012, Neis et al, 2015. A different approach to cross-language relations could have been adopting a Matthews and Findler-style multi-language semantics, where source and target language are combined [Matthews and Findler, 2009]. For example, Perconti and Ahmed [2014] devised a two-step correct compiler for System F with existential and recursive types to typed assembly language using multi-language logical relations.…”
Section: Related Workmentioning
confidence: 99%
“…If the linear language could not interact with lumped values at all, our multilanguage programs would be rather boring, as the only way for the linear extension to provide a value back to ML would be to have received it from 位 U and pass it back unchanged (as in the lump embedding of Matthews and Findler [2009]). To provide a real interaction, we provide a way to extract values out of a lump !…”
Section: Interoperability: Static Semanticsmentioning
confidence: 99%
“…Our multi-language semantics builds on the seminal work by Matthews and Findler [2009], who gave a formal semantics of interoperability between a dynamically and a statically typed language. Others have followed the Matthews-Findler approach of designing multi-language systems with fine-grained boundaries-for instance, formalizing interoperability between a simply and dependently typed language [Osera, Sj枚berg, and Zdancewic, 2012]; between a functional and typed assembly language [Patterson, Perconti, Dimoulas, and Ahmed, 2017]; between an ML-like and an affinely typed language, where linearity is enforced at runtime on the ML side using stateful contracts [Tov and Pucella, 2010]; and between the source and target languages of compilation to specify compiler correctness [Perconti and Ahmed, 2014].…”
Section: Related Workmentioning
confidence: 99%
“…Unfortunately, this approach is unnatural (the syntactic and semantic conveniences of the sibling language are unavailable) and unsafe (the type system of the sibling language is not enforced, and the internal representations of the compiler are exposed.) This problem can, at best, be mitigated by inserting dynamic checks at language boundaries [46]. It appears then that the language-oriented approach [75] is difficult to reconcile with the best practices of "programming in the large" [22].…”
Section: Introductionmentioning
confidence: 99%