243 research outputs found
The (In)Efficiency of interaction
Evaluating higher-order functional programs through abstract machines inspired by the geometry of the interaction is known to induce space efficiencies, the price being time performances often poorer than those obtainable with traditional, environment-based, abstract machines. Although families of lambda-terms for which the former is exponentially less efficient than the latter do exist, it is currently unknown how general this phenomenon is, and how far the inefficiencies can go, in the worst case. We answer these questions formulating four different well-known abstract machines inside a common definitional framework, this way being able to give sharp results about the relative time efficiencies. We also prove that non-idempotent intersection type theories are able to precisely reflect the time performances of the interactive abstract machine, this way showing that its time-inefficiency ultimately descends from the presence of higher-order types
Automated deduction with built-in theories: completeness results and constraint solving techniques
Postprint (published version
Introduction to the Literature on Semantics
An introduction to the literature on semantics. Included are pointers to the literature on axiomatic semantics, denotational semantics, operational semantics, and type theory
Introduction to the Literature On Programming Language Design
This is an introduction to the literature on programming language design and related topics. It is intended to cite the most important work, and to provide a place for students to start a literature search
Recommended from our members
Lambda: The Ultimate Sublanguage (experience report)
We describe our experience teaching an advanced typed functional programming course based around the use of System Fω as a programming language.</jats:p
Normal Form Bisimulations By Value
Normal form bisimilarities are a natural form of program equivalence resting
on open terms, first introduced by Sangiorgi in call-by-name. The literature
contains a normal form bisimilarity for Plotkin's call-by-value
-calculus, Lassen's \emph{enf bisimilarity}, which validates all of
Moggi's monadic laws and can be extended to validate . It does not
validate, however, other relevant principles, such as the identification of
meaningless terms -- validated instead by Sangiorgi's bisimilarity -- or the
commutation of \letexps. These shortcomings are due to issues with open terms
of Plotkin's calculus. We introduce a new call-by-value normal form
bisimilarity, deemed \emph{net bisimilarity}, closer in spirit to Sangiorgi's
and satisfying the additional principles. We develop it on top of an existing
formalism designed for dealing with open terms in call-by-value. It turns out
that enf and net bisimilarities are \emph{incomparable}, as net bisimilarity
does not validate Moggi's laws nor . Moreover, there is no easy way to
merge them. To better understand the situation, we provide an analysis of the
rich range of possible call-by-value normal form bisimilarities, relating them
to Ehrhard's relational model.Comment: Rewritten version (deleted toy similarity and explained proof method
on naive similarity) -- Submitted to POPL2
Using Pi-Calculus Names as Locks
Locks are a classic data structure for concurrent programming. We introduce a
type system to ensure that names of the asynchronous pi-calculus are used as
locks. Our calculus also features a construct to deallocate a lock once we know
that it will never be acquired again. Typability guarantees two properties:
deadlock-freedom, that is, no acquire operation on a lock waits forever; and
leak-freedom, that is, all locks are eventually deallocated.
We leverage the simplicity of our typing discipline to study the induced
typed behavioural equivalence. After defining barbed equivalence, we introduce
a sound labelled bisimulation, which makes it possible to establish equivalence
between programs that manipulate and deallocate locks.Comment: In Proceedings EXPRESS/SOS2023, arXiv:2309.0578
- …