Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Hayo Thielecke is active.

Publication


Featured researches published by Hayo Thielecke.


Higher-order and Symbolic Computation \/ Lisp and Symbolic Computation | 2002

Linear Continuation-Passing

Josh Berdine; Peter W. O'Hearn; Uday S. Reddy; Hayo Thielecke

Continuations can be used to explain a wide variety of control behaviours, including calling/returning (procedures), raising/handling (exceptions), labelled jumping (goto statements), process switching (coroutines), and backtracking. However, continuations are often manipulated in a highly stylised way, and we show that all of these, bar backtracking, in fact use their continuations linearly; this is formalised by taking a target language for CPS transforms that has both intuitionistic and linear function types.


Information & Computation | 2003

Modelling environments in call-by-value programming languages

Paul Blain Levy; John Power; Hayo Thielecke

In categorical semantics, there have traditionally been two approaches to modelling environments, one by use of finite products in cartesian closed categories, the other by use of the base categories of indexed categories with structure. Each requires modifications in order to account for environments in call-by-value programming languages. There have been two more general definitions along both of these lines: the first generalising from cartesian to symmetric premonoidal categories, the second generalising from indexed categories with specified structure to κ-categories. In this paper, we investigate environments in call-by-value languages by analysing a fine-grain variant of Moggi’s computational λ-calculus, giving two equivalent sound and complete classes of models: one given by closed Freyd categories, which are based on symmetric premonoidal categories, the other given by closed κ-categories.


symposium on principles of programming languages | 2003

From control effects to typed continuation passing

Hayo Thielecke

First-class continuations are a powerful computational effect, allowing the programmer to express any form of jumping. Types and effect systems can be used to reason about continuations, both in the source language and in the target language of the continuation-passing transform. In this paper, we establish the connection between an effect system for first-class continuations and typed versions of continuation-passing style. A region in the effect system determines a local answer type for continuations, such that the continuation transforms of pure expressions are parametrically polymorphic in their answer types. We use this polymorphism to derive transforms that make use of effect information, in particular, a mixed linear/non-linear continuation-passing transform, in which expressions without control effects are passed their continuations linearly.


international colloquium on automata, languages and programming | 1999

Closed Freyd- and κ -categories

John Power; Hayo Thielecke

We give two classes of sound and complete models for the computational λ-calculus, or λc-calculus. For the first, we generalise the notion of cartesian closed category to that of closed Freyd-category. For the second, we generalise simple indexed categories. The former gives a direct semantics for the computational λ-calculus. The latter corresponds to an idealisation of stack-based intermediate languages used in some approaches to compiling.


Electronic Notes in Theoretical Computer Science | 2006

A Type-theoretic Reconstruction of the Visitor Pattern

Peter Buchlovsky; Hayo Thielecke

In object-oriented languages, the Visitor pattern can be used to traverse tree-like data structures: a visitor object contains some operations, and the data structure objects allow themselves to be traversed by accepting visitors. In the polymorphic lambda calculus (System F), tree-like data structures can be encoded as polymorphic higher-order functions. In this paper, we reconstruct the Visitor pattern from the polymorphic encoding by way of generics in Java. We sketch how the quantified types in the polymorphic encoding can guide reasoning about visitors in general.


Higher-order and Symbolic Computation \/ Lisp and Symbolic Computation | 2002

Comparing Control Constructs by Double-Barrelled CPS

Hayo Thielecke

We investigate call-by-value continuation-passing style transforms that pass two continuations. Altering a single variable in the translation of λ-abstraction gives rise to different control operators: first-class continuations; dynamic control; and (depending on a further choice of a variable) either the return statement of C; or Landins J-operator. In each case there is an associated simple typing. For those constructs that allow upward continuations, the typing is classical, for the others it remains intuitionistic, giving a clean distinction independent of syntactic details. Moreover, those constructs that make the typing classical in the source of the CPS transform break the linearity of continuation use in the target.


Higher-order and Symbolic Computation \/ Lisp and Symbolic Computation | 1998

An Introduction to Landin‘s “A Generalization of Jumps and Labels”

Hayo Thielecke

This note introduces Peter Landins 1965 technical report “A Generalization of Jumps and Labels”, which is reprinted in this volume. Its aim is to make that historic paper more accessible to the reader and to help reading it in context. To this end, we explain Landins control operator J in more contemporary terms, and we recall Burges solution to a technical problem in Landins original account.


international symposium on theoretical aspects of computer software | 1997

Environments, Continuation Semantics and Indexed Categories

A. John Power; Hayo Thielecke

There have traditionally been two approaches to modelling environments, one by use of finite products in Cartesian closed categories, the other by use of the base categories of indexed categories with structure. Recently, there have been more general definitions along both of these lines: the first generalising from Cartesian to symmetric premonoidal categories, the second generalising from indexed categories with specified structure to κ-categories. The added generality is not of the purely mathematical kind; in fact it is necessary to extend semantics from the logical calculi studied in, say, Type Theory to more realistic programming language fragments. In this paper, we establish an equivalence between these two recent notions. We then use that equivalence to study semantics for continuations. We give three category theoretic semantics for modelling continuations and show the relationships between them. The first is given by a continuations monad. The second is based on a symmetric premonoidal category with a self-adjoint structure. The third is based on a κ-category with indexed self-adjoint structure. We extend our result about environments to show that the second and third semantics are essentially equivalent, and that they include the first.


Information & Computation | 2004

On the call-by-value CPS transform and its semantics

Carsten Führmann; Hayo Thielecke

We investigate continuations in the context of idealized call-by-value programming languages. On the semantic side, we analyze the categorical structures that arise from continuation models of call-by-value languages. On the syntactic side, we study the call-by-value continuation-passing transformation as a translation between equational theories. Among the novelties are an unusually simple axiomatization of control operators and a strengthened completeness result with a proof based on a delaying transform.


european symposium on programming | 2000

On Exceptions Versus Continuations in the Presence of State

Hayo Thielecke

We compare the expressive power of exceptions and continuations when added to a language with local state in the setting of operational semantics. Continuations are shown to be more expressive than exceptions because they can cause a function call to return more than once, whereas exceptions only allow discarding part of the calling context.

Collaboration


Dive into the Hayo Thielecke's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Peter W. O'Hearn

Queen Mary University of London

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Alan P. Sexton

University of Birmingham

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

James Kirrage

University of Birmingham

View shared research outputs
Top Co-Authors

Avatar

Maxim Strygin

University of Birmingham

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge