21 research outputs found
Game Semantics for Interface Middleweight Java
We consider an object calculus in which open terms interact with the environment through interfaces. The calculus is intended to capture the essence of contextual interactions of Middleweight Java code. Using game semantics, we provide fully abstract models for the induced notions of contextual approximation and equivalence. These are the first denotational models of this kind
Game semantic analysis of equivalence in IMJ
Using game semantics, we investigate the problem of verifying contextual equivalences in Interface Middleweight Java (IMJ), an imperative object calculus in which program phrases are typed using interfaces. Working in the setting where data types are non-recursive and restricted to finite domains, we identify the frontier between decidability and undecidability by reference to the structure of interfaces present in typing judgments. In particular, we show how to determine the decidability status of problem instances (over a fixed type signature) by examining the position of methods inside the term type and the types of its free identifiers. Our results build upon the recent fully abstract game semantics of IMJ. Decidability is proved by translation into visibly pushdown register automata over infinite alphabets with fresh-input recognition
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
Nominal Game Semantics.
Tutorial notes presenting nominal game semantic
Layered and Object-Based Game Semantics *
International audienceLarge-scale software verification relies critically on the use of compositional languages, semantic models, specifications, and verification techniques. Recent work on certified abstraction layers synthesizes game semantics, the refinement calculus, and algebraic effects to enable the composition of heterogeneous components into larger certified systems. However, in existing models of certified abstraction layers, compositionality is restricted by the lack of encapsulation of state. In this paper, we present a novel game model for certified abstraction layers where the semantics of layer interfaces and implementations are defined solely based on their observable behaviors. Our key idea is to leverage Reddy's pioneer work on modeling the semantics of imperative languages not as functions on global states but as objects with their observable behaviors. We show that a layer interface can be modeled as an object type (i.e., a layer signature) plus an object strategy. A layer implementation is then essentially a regular map, in the sense of Reddy, from an object with the underlay signature to that with the overlay signature. A layer implementation is certified when its composition with the underlay object strategy implements the overlay object strategy. We also describe an extension that allows for non-determinism in layer interfaces. After formulating layer implementations as regular maps between object spaces, we move to concurrency and design a notion of concurrent object space, where sequential traces may be identified modulo permutation of independent operations. We show how to express protected shared object concurrency, and a ticket lock implementation, in a simple model based on regular maps between concurrent object spaces
Game semantics for an object-oriented language
This thesis investigates the relationship between object-oriented programming
languages and game models of computation. These are intuitively well matched:
an object encapsulates some internal state and presents some behaviour to the
world via its publicly visible methods, while a strategy for some game represents
the possible interactions of a program with its environment.
We work with a simple and well-understood game model. Rather than tailoring
our model to match some existing programming language, we view the
simplicity of our semantic setting as a virtue, and try to find the appropriate
language corresponding to the model.
We define a class-based, stateful object-oriented language, and give a heapbased
operational semantics and an interpretation in our game model. At the
heart of this interpretation lies a novel semantic treatment of the phenomenon
of data abstraction. The model closely guides the design of our language, which
enjoys an intermediate level of expressivity between that of first-order and general
higher-order store.
The agreement between the operational and game interpretations is verified
by a soundness proof. This involves the development of specialised techniques
and a detailed analysis of the relationship between the concrete and abstract
views. We also show that definability and full abstraction hold at certain types
of arbitrary rank, but are problematic at other types.
We conclude by briefly discussing an extended language with a control operator,
along with other extensions leading to a possible core for a more realistic
programming language
A generic approach to the evolution of interaction in ubiquitous systems
This dissertation addresses the challenge of the configuration of modern (ubiquitous, context-sensitive, mobile et al.) interactive systems where it is difficult or impossible to predict (i) the resources available for evolution, (ii) the criteria for judging the success of the evolution, and (iii) the degree to which human judgements must be involved in the evaluation process used to determine the configuration.
In this thesis a conceptual model of interactive system configuration over time (known as interaction evolution) is presented which relies upon the follow steps; (i) identification of opportunities for change in a system, (ii) reflection on the available configuration alternatives, (iii) decision-making and (iv) implementation, and finally iteration of the process.
This conceptual model underpins the development of a dynamic evolution environment based on a notion of configuration evaluation functions (hereafter referred to as evaluation functions) that provides greater flexibility than current solutions and, when supported by appropriate tools, can provide a richer set of evaluation techniques and features that are difficult or impossible to implement in current systems. Specifically this approach has support for changes to the approach, style or mode of use used for configuration - these features may result in more effective systems, less effort involved to configure them and a greater degree of control may be offered to the user.
The contributions of this work include; (i) establishing the the need for configuration evolution through a literature review and a motivating case study experiment, (ii) development of a conceptual process model supporting interaction evolution, (iii) development of a model based on the notion of evaluation functions which is shown to support a wide range of interaction configuration approaches, (iv) a characterisation of the configuration evaluation space, followed by (v) an implementation of these ideas used in (vi) a series of longitudinal technology probes and investigations into the approaches
Semantic Types for Class-based Objects
We investigate semantics-based type assignment for class-based object-oriented programming. Our motivation
is developing a theoretical basis for practical, expressive, type-based analysis of the functional
behaviour of object-oriented programs. We focus our research using Featherweight Java, studying two
notions of type assignment:- one using intersection types, the other a ‘logical’ restriction of recursive
types.
We extend to the object-oriented setting some existing results for intersection type systems. In doing
so, we contribute to the study of denotational semantics for object-oriented languages. We define a
model for Featherweight Java based on approximation, which we relate to our intersection type system
via an Approximation Result, proved using a notion of reduction on typing derivations that we show
to be strongly normalising. We consider restrictions of our system for which type assignment is decidable,
observing that the implicit recursion present in the class mechanism is a limiting factor in making
practical use of the expressive power of intersection types.
To overcome this, we consider type assignment based on recursive types. Such types traditionally
suffer from the inability to characterise convergence, a key element of our approach. To obtain a semantic
system of recursive types for Featherweight Java we study Nakano’s systems, whose key feature
is an approximation modality which leads to a ‘logical’ system expressing both functional behaviour
and convergence. For Nakano’s system, we consider the open problem of type inference. We introduce
insertion variables (similar to the expansion variables of Kfoury and Wells), which allow to infer when
the approximation modality is required. We define a type inference procedure, and conjecture its soundness
based on a technique of Cardone and Coppo. Finally, we consider how Nakano’s approach may be
applied to Featherweight Java and discuss how intersection and logical recursive types may be brought
together into a single system