Operational semantics for multi-language programs

@article{Matthews2009OperationalSF,
  title={Operational semantics for multi-language programs},
  author={Jacob Matthews and Robert Bruce Findler},
  journal={ACM Transactions on Programming Languages and Systems},
  year={2009},
  volume={31},
  pages={12}
}
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… Expand
Operational semantics for multi-language programs
TLDR
This paper abstracts away the low-level details of interoperability like garbage collection and representation coherence, and lets us focus on semantic properties like type-safety and observable equivalence, which sheds light on real multi-language systems and tools such as the JNI, SWIG, and Haskell's stable pointers. Expand
On the Multi-Language Construction
TLDR
This work extends the boundary functions-based approach a la Matthews and Findler to propose an algebraic framework that provides a constructive mathematical notion of multi-language able to determine its semantics, regardless of the inherent nature of the underlying languages. Expand
An operational semantics for Scheme
TLDR
This paper presents an operational semantics for the core of Scheme, and contributes three novel modeling techniques for Felleisen Hieb-style rewriting semantics, suggesting that they would scale to complete models of other languages. Expand
A Provably Correct Compilation of Functional Languages into Scripting Languages
TLDR
A big-step operational semantics for core F# and for IL is defined and a coinductive formalization of the divergence predicate is given, proving that well-typed expressions either converge to a value or diverge and so they are never stuck. Expand
Pidgin : Types for safe and natural multi-language interoperation Qualifying Exam
Bridging code between different languages usually require s the use of foreign function interfaces (FFIs). While FFIs and to ols that generate bindings between different peering language s exist,Expand
Structural operational semantics through context-dependent behaviour
TLDR
An operational semantics for an imperative language with concurrency and procedures is presented, which utilises the context-dependent behaviour in the transition label to neatly handle variable name scoping and defines the semantics of recursion without requiring additional rules. Expand
1-1-2012 Dependent Interoperability
In this paper we study the problem of interoperability – combining constructs from two separate programming languages within one program – in the case where one of the two languages is dependentlyExpand
Programmable semantic fragments: the design and implementation of typy
This paper introduces typy, a statically typed programming language embedded by reflection into Python. typy features a fragmentary semantics, i.e. it delegates semantic control over each term, drawnExpand
Fully-abstract compilation by approximate back-translation
TLDR
A general technique for proving compiler full-abstraction is described and demonstrated on a compiler from λτ to λu and makes innovative use of step-indexing to express the relation between a context and its approximate back-translation. Expand
Cross-Platform Language Design
TLDR
This thesis presents the design of Scala.js, the dialect of Scala targeting the JavaScript platform, which turned Scala into a cross-platform language and designs and specifies an intermediate representation (IR) with first-class support for dynamically typed interoperability features in addition to statically typed JVM-style operations. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 52 REFERENCES
Operational semantics for multi-language programs
TLDR
This paper abstracts away the low-level details of interoperability like garbage collection and representation coherence, and lets us focus on semantic properties like type-safety and observable equivalence, which sheds light on real multi-language systems and tools such as the JNI, SWIG, and Haskell's stable pointers. Expand
Equivalence in Functional Languages with Effects
TLDR
This paper shows that adding objects with memory to the call-by-value lambda calculus results in a language with a rich equational theory, satisfying many of the usual laws, providing evidence that expressive, mathematically clean programming languages are indeed possible. Expand
A framework for interoperability
TLDR
A framework for language interoperability that is expressive enough to support very efficient implementations of a wide range of different foreign-interface policies and two tools that implement substantially different policies on top of this framework are described. Expand
Interlanguage working without tears: blending SML with Java
TLDR
The features for bidirectional interlanguage working with Java that are built into the latest version of the MLj compiler are described, which are unusually powerful, safe and easy to use interlanguageWorking features. Expand
Safe and Principled Language Interoperation
TLDR
It is shown that effect annotations alone are insufficient to guarantee safety, and a type system with bounded effect polymorphism designed to verify the compatibility of abstract resources required by the computational models of the interoperating languages is presented. Expand
Typing a multi-language intermediate code
TLDR
The main theorem asserts type safety, that well-typed programs in their IL fragment do not lead to untrapped execution errors, and the formal system of this paper is an abstraction of informal and executable specifications the authors wrote for the full product during its development. Expand
Contracts for higher-order functions
TLDR
This paper introduces λcon, a typed lambda calculus with assertions for higher-order functions, which models the assertion monitoring system that is employed in DrScheme and establishes basic properties of the model (type soundness, etc.). Expand
Types and programming languages
TLDR
This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages, with a variety of approaches to modeling the features of object-oriented languages. Expand
Semantics for communication primitives in a polymorphic language
TLDR
A method to extend an ML-style polymorphic language with transparent communication primitives, and give their precise operational semantics, is proposed, and it is proved that the polymorphic type system of dML is sound with respect to the operational semantics of the translated terms of the core language. Expand
LCF Considered as a Programming Language
TLDR
Study of connections between denotational and operational semantics for a simple programming language based on LCF finds that by allowing further parallel facilities, every r.e. element of the fully abstract semantics becomes definable, thus characterising the programming language, up to interdefinability, from the set of elements of the domains of the semantics. Expand
...
1
2
3
4
5
...