15 research outputs found
The Dynamic Geometry of Interaction Machine: A Call-by-Need Graph Rewriter
Girard's Geometry of Interaction (GoI), a semantics designed for linear logic
proofs, has been also successfully applied to programming language semantics.
One way is to use abstract machines that pass a token on a fixed graph along a
path indicated by the GoI. These token-passing abstract machines are space
efficient, because they handle duplicated computation by repeating the same
moves of a token on the fixed graph. Although they can be adapted to obtain
sound models with regard to the equational theories of various evaluation
strategies for the lambda calculus, it can be at the expense of significant
time costs. In this paper we show a token-passing abstract machine that can
implement evaluation strategies for the lambda calculus, with certified time
efficiency. Our abstract machine, called the Dynamic GoI Machine (DGoIM),
rewrites the graph to avoid replicating computation, using the token to find
the redexes. The flexibility of interleaving token transitions and graph
rewriting allows the DGoIM to balance the trade-off of space and time costs.
This paper shows that the DGoIM can implement call-by-need evaluation for the
lambda calculus by using a strategy of interleaving token passing with as much
graph rewriting as possible. Our quantitative analysis confirms that the DGoIM
with this strategy of interleaving the two kinds of possible operations on
graphs can be classified as "efficient" following Accattoli's taxonomy of
abstract machines
Hypernet semantics of programming languages
Comparison is common practice in programming, even regarding a single programming language. One would ask if two programs behave the same, if one program runs faster than another, or if one run-time system produces the outcome of a program faster than another system. To answer these questions, it is essential to have a formal specification of program execution, with measures such as result and resource usage.
This thesis proposes a semantical framework based on abstract machines that enables analysis of program execution cost and direct proof of program equivalence. These abstract machines are inspired by Girard’s Geometry of Interaction, and model program execution as dynamic rewriting of graph representation of a program, guided and controlled by a dedicated object (token) of the graph. The graph representation yields fine control over resource usage, and moreover, the concept of locality in analysing program execution. As a result, this framework enjoys novel flexibility, with which various evaluation strategies and language features, whether they are effects or not, can be modelled and analysed in a uniform way
The Dynamic Geometry of Interaction Machine: A Token-Guided Graph Rewriter
In implementing evaluation strategies of the lambda-calculus, both
correctness and efficiency of implementation are valid concerns. While the
notion of correctness is determined by the evaluation strategy, regarding
efficiency there is a larger design space that can be explored, in particular
the trade-off between space versus time efficiency. Aiming at a unified
framework that would enable the study of this trade-off, we introduce an
abstract machine, inspired by Girard's Geometry of Interaction (GoI), a machine
combining token passing and graph rewriting. We show soundness and completeness
of our abstract machine, called the \emph{Dynamic GoI Machine} (DGoIM), with
respect to three evaluations: call-by-need, left-to-right call-by-value, and
right-to-left call-by-value. Analysing time cost of its execution classifies
the machine as ``efficient'' in Accattoli's taxonomy of abstract machines.Comment: arXiv admin note: text overlap with arXiv:1802.0649
Efficient implementation of evaluation strategies via token-guided graph rewriting
In implementing evaluation strategies of the lambda-calculus, both
correctness and efficiency of implementation are valid concerns. While the
notion of correctness is determined by the evaluation strategy, regarding
efficiency there is a larger design space that can be explored, in particular
the trade-off between space versus time efficiency. We contributed to the study
of this trade-off by the introduction of an abstract machine for call-by-need,
inspired by Girard's Geometry of Interaction, a machine combining token passing
and graph rewriting. This work presents an extension of the machine, to
additionally accommodate left-to-right and right-to-left call-by-value
strategies. We show soundness and completeness of the extended machine with
respect to each of the call-by-need and two call-by-value strategies. Analysing
time cost of its execution classifies the machine as "efficient" in Accattoli's
taxonomy of abstract machines.Comment: In Proceedings WPTE 2017, arXiv:1802.0586
The Dynamic Geometry of Interaction Machine: A Token-Guided Graph Rewriter
In implementing evaluation strategies of the lambda-calculus, both
correctness and efficiency of implementation are valid concerns. While the
notion of correctness is determined by the evaluation strategy, regarding
efficiency there is a larger design space that can be explored, in particular
the trade-off between space versus time efficiency. Aiming at a unified
framework that would enable the study of this trade-off, we introduce an
abstract machine, inspired by Girard's Geometry of Interaction (GoI), a machine
combining token passing and graph rewriting. We show soundness and completeness
of our abstract machine, called the \emph{Dynamic GoI Machine} (DGoIM), with
respect to three evaluations: call-by-need, left-to-right call-by-value, and
right-to-left call-by-value. Analysing time cost of its execution classifies
the machine as ``efficient'' in Accattoli's taxonomy of abstract machines
Explicit Hopcroft's Trick in Categorical Partition Refinement
Algorithms for partition refinement are actively studied for a variety of
systems, often with the optimisation called Hopcroft's trick. However, the
low-level description of those algorithms in the literature often obscures the
essence of Hopcroft's trick. Our contribution is twofold. Firstly, we present a
novel formulation of Hopcroft's trick in terms of general trees with weights.
This clean and explicit formulation -- we call it Hopcroft's inequality -- is
crucially used in our second contribution, namely a general partition
refinement algorithm that is \emph{functor-generic} (i.e. it works for a
variety of systems such as (non-)deterministic automata and Markov chains).
Here we build on recent works on coalgebraic partition refinement but depart
from them with the use of fibrations. In particular, our fibrational notion of
-partitioning exposes a concrete tree structure to which Hopcroft's
inequality readily applies. It is notable that our fibrational framework
accommodates such algorithmic analysis on the categorical level of abstraction