3 research outputs found
Thin Games with Symmetry and Concurrent Hyland-Ong Games
We build a cartesian closed category, called Cho, based on event structures.
It allows an interpretation of higher-order stateful concurrent programs that
is refined and precise: on the one hand it is conservative with respect to
standard Hyland-Ong games when interpreting purely functional programs as
innocent strategies, while on the other hand it is much more expressive. The
interpretation of programs constructs compositionally a representation of their
execution that exhibits causal dependencies and remembers the points of
non-deterministic branching.The construction is in two stages. First, we build
a compact closed category Tcg. It is a variant of Rideau and Winskel's category
CG, with the difference that games and strategies in Tcg are equipped with
symmetry to express that certain events are essentially the same. This is
analogous to the underlying category of AJM games enriching simple games with
an equivalence relations on plays. Building on this category, we construct the
cartesian closed category Cho as having as objects the standard arenas of
Hyland-Ong games, with strategies, represented by certain events structures,
playing on games with symmetry obtained as expanded forms of these arenas.To
illustrate and give an operational light on these constructions, we interpret
(a close variant of) Idealized Parallel Algol in Cho
Transparent synchronous dataflow: a functional paradigm for systems modelling and optimisation
System modelling is the use of mathematical formalisms to model real world systems for the purpose of analysis, simulation and prediction. One of the most common ways to model a system is to create the dataflow among its various components. There are two main approaches on how dataflow graphs are constructed in these system modelling frameworks: ‘define-and-run’ vs ‘define-by-run’. The former approach first creates a dataflow graph and then executes it by pushing data into it. The latter however constructs the graph while computing with data on-the-fly. ‘Define-and-run’ is usually more efficient because many graph optimisations can be applied; ‘Define-by-run’ however handles dynamic models better. This thesis aims to develop a new functional paradigm for systems modelling and optimisation that exhibits properties of both approaches where dataflow graphs are dynamic but efficient.
We propose a new functional language, namely transparent synchronous dataflow (TSD), where dataflow graphs are constructed transparently with imperative commands to manipulate them explicitly; together with a synchronous mode of change propagation. The semantics of the language is designed on top of an unconventional graph abstract machine, Dynamic Geometry of Interaction Machine (DGoIM), which is natural for manipulating dataflow graphs. By using this semantics, the language is proved to be sound and efficient. Several experimental implementations were also created, including a native compiler for DGoIM and OCaml implementations for TSD
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