1,718 research outputs found
A fully-abstract semantics of lambda-mu in the pi-calculus
We study the lambda-mu-calculus, extended with explicit substitution, and
define a compositional output-based interpretation into a variant of the
pi-calculus with pairing that preserves single-step explicit head reduction
with respect to weak bisimilarity. We define four notions of weak equivalence
for lambda-mu -- one based on weak reduction, two modelling weak head-reduction
and weak explicit head reduction (all considering terms without weak
head-normal form equivalent as well), and one based on weak approximation --
and show they all coincide. We will then show full abstraction results for our
interpretation for the weak equivalences with respect to weak bisimilarity on
processes.Comment: In Proceedings CL&C 2014, arXiv:1409.259
On Berry's conjectures about the stable order in PCF
PCF is a sequential simply typed lambda calculus language. There is a unique
order-extensional fully abstract cpo model of PCF, built up from equivalence
classes of terms. In 1979, G\'erard Berry defined the stable order in this
model and proved that the extensional and the stable order together form a
bicpo. He made the following two conjectures: 1) "Extensional and stable order
form not only a bicpo, but a bidomain." We refute this conjecture by showing
that the stable order is not bounded complete, already for finitary PCF of
second-order types. 2) "The stable order of the model has the syntactic order
as its image: If a is less than b in the stable order of the model, for finite
a and b, then there are normal form terms A and B with the semantics a, resp.
b, such that A is less than B in the syntactic order." We give counter-examples
to this conjecture, again in finitary PCF of second-order types, and also
refute an improved conjecture: There seems to be no simple syntactic
characterization of the stable order. But we show that Berry's conjecture is
true for unary PCF. For the preliminaries, we explain the basic fully abstract
semantics of PCF in the general setting of (not-necessarily complete) partial
order models (f-models.) And we restrict the syntax to "game terms", with a
graphical representation.Comment: submitted to LMCS, 39 pages, 23 pstricks/pst-tree figures, main
changes for this version: 4.1: proof of game term theorem corrected, 7.: the
improved chain conjecture is made precise, more references adde
Game semantics for first-order logic
We refine HO/N game semantics with an additional notion of pointer
(mu-pointers) and extend it to first-order classical logic with completeness
results. We use a Church style extension of Parigot's lambda-mu-calculus to
represent proofs of first-order classical logic. We present some relations with
Krivine's classical realizability and applications to type isomorphisms
Probabilistic call by push value
We introduce a probabilistic extension of Levy's Call-By-Push-Value. This
extension consists simply in adding a " flipping coin " boolean closed atomic
expression. This language can be understood as a major generalization of
Scott's PCF encompassing both call-by-name and call-by-value and featuring
recursive (possibly lazy) data types. We interpret the language in the
previously introduced denotational model of probabilistic coherence spaces, a
categorical model of full classical Linear Logic, interpreting data types as
coalgebras for the resource comonad. We prove adequacy and full abstraction,
generalizing earlier results to a much more realistic and powerful programming
language
On the Relation of Interaction Semantics to Continuations and Defunctionalization
In game semantics and related approaches to programming language semantics,
programs are modelled by interaction dialogues. Such models have recently been
used in the design of new compilation methods, e.g. for hardware synthesis or
for programming with sublinear space. This paper relates such semantically
motivated non-standard compilation methods to more standard techniques in the
compilation of functional programming languages, namely continuation passing
and defunctionalization. We first show for the linear {\lambda}-calculus that
interpretation in a model of computation by interaction can be described as a
call-by-name CPS-translation followed by a defunctionalization procedure that
takes into account control-flow information. We then establish a relation
between these two compilation methods for the simply-typed {\lambda}-calculus
and end by considering recursion
CPL: A Core Language for Cloud Computing -- Technical Report
Running distributed applications in the cloud involves deployment. That is,
distribution and configuration of application services and middleware
infrastructure. The considerable complexity of these tasks resulted in the
emergence of declarative JSON-based domain-specific deployment languages to
develop deployment programs. However, existing deployment programs unsafely
compose artifacts written in different languages, leading to bugs that are hard
to detect before run time. Furthermore, deployment languages do not provide
extension points for custom implementations of existing cloud services such as
application-specific load balancing policies.
To address these shortcomings, we propose CPL (Cloud Platform Language), a
statically-typed core language for programming both distributed applications as
well as their deployment on a cloud platform. In CPL, application services and
deployment programs interact through statically typed, extensible interfaces,
and an application can trigger further deployment at run time. We provide a
formal semantics of CPL and demonstrate that it enables type-safe, composable
and extensible libraries of service combinators, such as load balancing and
fault tolerance.Comment: Technical report accompanying the MODULARITY '16 submissio
FICS 2010
International audienceInformal proceedings of the 7th workshop on Fixed Points in Computer Science (FICS 2010), held in Brno, 21-22 August 201
Fully Abstract Translations Between Functional Languages
We examine the problem of finding fully abstract translations between programming languages, i.e., translations that preserve code equivalence and nonequivalence. We present three examples of fully abstract translations: one from call-by-value to lazy PCF, one from call-by name to call-by-value PCF, and one from lazy to call-by-value PCF. The translations yield upper and lower bounds on decision procedures for proving equivalences of code. We finally define a notion of functional translation that captures the essence of the proofs of full abstraction, and show that some languages cannot be translated into others
- …