1,821 research outputs found
Curry-style type Isomorphisms and Game Semantics
Curry-style system F, ie. system F with no explicit types in terms, can be
seen as a core presentation of polymorphism from the point of view of
programming languages. This paper gives a characterisation of type isomorphisms
for this language, by using a game model whose intuitions come both from the
syntax and from the game semantics universe. The model is composed of: an
untyped part to interpret terms, a notion of game to interpret types, and a
typed part to express the fact that an untyped strategy plays on a game. By
analysing isomorphisms in the model, we prove that the equational system
corresponding to type isomorphisms for Curry-style system F is the extension of
the equational system for Church-style isomorphisms with a new, non-trivial
equation: forall X.A = A[forall Y.Y/X] if X appears only positively in A.Comment: Accept\'e \`a Mathematical Structures for Computer Science, Special
Issue on Type Isomorphism
Constraint Handling Rules with Binders, Patterns and Generic Quantification
Constraint Handling Rules provide descriptions for constraint solvers.
However, they fall short when those constraints specify some binding structure,
like higher-rank types in a constraint-based type inference algorithm. In this
paper, the term syntax of constraints is replaced by -tree syntax, in
which binding is explicit; and a new generic quantifier is introduced,
which is used to create new fresh constants.Comment: Paper presented at the 33nd International Conference on Logic
Programming (ICLP 2017), Melbourne, Australia, August 28 to September 1, 2017
16 pages, LaTeX, no PDF figure
Speculative Staging for Interpreter Optimization
Interpreters have a bad reputation for having lower performance than
just-in-time compilers. We present a new way of building high performance
interpreters that is particularly effective for executing dynamically typed
programming languages. The key idea is to combine speculative staging of
optimized interpreter instructions with a novel technique of incrementally and
iteratively concerting them at run-time.
This paper introduces the concepts behind deriving optimized instructions
from existing interpreter instructions---incrementally peeling off layers of
complexity. When compiling the interpreter, these optimized derivatives will be
compiled along with the original interpreter instructions. Therefore, our
technique is portable by construction since it leverages the existing
compiler's backend. At run-time we use instruction substitution from the
interpreter's original and expensive instructions to optimized instruction
derivatives to speed up execution.
Our technique unites high performance with the simplicity and portability of
interpreters---we report that our optimization makes the CPython interpreter up
to more than four times faster, where our interpreter closes the gap between
and sometimes even outperforms PyPy's just-in-time compiler.Comment: 16 pages, 4 figures, 3 tables. Uses CPython 3.2.3 and PyPy 1.
Dinaturality Meets Genericity: A Game Semantics of Bounded Polymorphism
We study subtyping and parametric polymorphism, with the aim of providing direct and tractable semantic representations of type systems with these expressive features. The liveness order uses the Player-Opponent duality of game semantics to give a simple representation of subtyping: we generalize it to include graphs extracted directly from second-order intuitionistic types, and use the resulting complete lattice to interpret bounded polymorphic types in the style of System F_<:, but with a more tractable subtyping relation.
To extend this to a semantics of terms, we use the type-derived graphs as arenas, on which strategies correspond to dinatural transformations with respect to the canonical coercions ("on the nose" copycats) induced by the liveness ordering. This relationship between the interpretation of generic and subtype polymorphism thus provides the basis of the semantics of our type system
Second-Order Type Isomorphisms Through Game Semantics
The characterization of second-order type isomorphisms is a purely
syntactical problem that we propose to study under the enlightenment of game
semantics. We study this question in the case of second-order
λ-calculus, which can be seen as an extension of system F to
classical logic, and for which we define a categorical framework: control
hyperdoctrines. Our game model of λ-calculus is based on polymorphic
arenas (closely related to Hughes' hyperforests) which evolve during the play
(following the ideas of Murawski-Ong). We show that type isomorphisms coincide
with the "equality" on arenas associated with types. Finally we deduce the
equational characterization of type isomorphisms from this equality. We also
recover from the same model Roberto Di Cosmo's characterization of type
isomorphisms for system F. This approach leads to a geometrical comprehension
on the question of second order type isomorphisms, which can be easily extended
to some other polymorphic calculi including additional programming features.Comment: accepted by Annals of Pure and Applied Logic, Special Issue on Game
Semantic
- …