EDBT 2026 Demo / reviewers in the wild / expert
Andrew Kennedy
dblp:93/2262
· DBLP profile ↗
27ranked-venue papers
12as first author
2since 2021 · last 2025
0000-0002-7888-2109ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 20 · 8 first-authorTheory of computation · 5 · 2 first-authorArtificial intelligence and machine learning · 2 · 1 first-author · 1 since 2021Systems, architecture and hardware · 2 · 1 first-author · 1 since 2021Graphics, computer vision, multimedia, augmented reality and games · 1Human-computer interaction and ubiquitous computing · 1 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
6 papers |
Programming languages and type systems · 69% Program verification · 25% Runtime systems and virtual machines · 4% |
Topics — the 14 heaviest of 15, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems
type theory |
0.2 | 3 | 2013 | Abstraction and invariance for algebraically indexed types · POPL 2013 Formalization of generics for the .NET common language runtime · POPL 2004 Relational Parametricity and Units of Measure · POPL 1997 |
Programming languages and type systems › parametricity
relational parametricity |
0.2 | 2 | 2013 | Abstraction and invariance for algebraically indexed types · POPL 2013 Relational Parametricity and Units of Measure · POPL 1997 |
Programming languages and type systems › type theory › dependent types
indexed types |
0.2 | 1 | 2013 | Abstraction and invariance for algebraically indexed types · POPL 2013 |
Program verification › code-level verification
machine code verification |
0.2 | 1 | 2013 | High-level separation logic for low-level code · POPL 2013 |
Program verification › program logic
separation logic |
0.2 | 1 | 2013 | High-level separation logic for low-level code · POPL 2013 |
Programming languages and type systems › type systems › polymorphism
generics |
0.1 | 2 | 2004 | Formalization of generics for the .NET common language runtime · POPL 2004 Design and Implementation of Generics for the .NET Common Language Runtime · PLDI 2001 |
Programming languages and type systems
type systems |
0.1 | 2 | 2005 | Generalized algebraic data types and object-oriented programming · OOPSLA 2005 Relational Parametricity and Units of Measure · POPL 1997 |
Programming languages and type systems › functional programming › algebraic data types
generalized algebraic data types |
0.1 | 1 | 2005 | Generalized algebraic data types and object-oriented programming · OOPSLA 2005 |
Programming languages and type systems
object-oriented programming |
0.1 | 1 | 2005 | Generalized algebraic data types and object-oriented programming · OOPSLA 2005 |
Programming languages and type systems › type systems › polymorphism
parametric polymorphism |
0.0 | 2 | 2001 | Design and Implementation of Generics for the .NET Common Language Runtime · PLDI 2001 Relational Parametricity and Units of Measure · POPL 1997 |
Compilers and program optimization › intermediate representation
intermediate language |
0.0 | 1 | 2001 | Design and Implementation of Generics for the .NET Common Language Runtime · PLDI 2001 |
Programming languages and type systems › type systems
type soundness |
0.0 | 1 | 2005 | Generalized algebraic data types and object-oriented programming · OOPSLA 2005 |
Programming languages and type systems › interoperability
language interoperability |
0.0 | 1 | 2001 | Design and Implementation of Generics for the .NET Common Language Runtime · PLDI 2001 |
Programming languages and type systems › program equivalence
representation independence |
0.0 | 1 | 1997 | Relational Parametricity and Units of Measure · POPL 1997 |
Methods — techniques the papers use, named apart from their topics
group theory · 0.2virtual dispatch · 0.1subclassing · 0.1generics · 0.1logical relations · 0.0dimensional analysis · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Conventional Augmentation is More Effective than ImageGPT and GANs? A Comparison of Synthetic Data Evaluation MethodsabstractGenerative synthetic data models have proven effective in tasks like image synthesis and data augmentation. This study aims to better understand the effectiveness and performance of generative synthetic data generators (SDGs), specifically ImageGPT and GANs, against conventional methods of data augmentation for downstream supervised learning. We evaluate downstream image classifier accuracy and Fréchet Inception Distance (FID) as measures of task efficacy and data fidelity. While FID was useful, it was not directly predictive of downstream classifier performance, with its relationship to classification outcomes varying across different SDGs, since each generator introduced different types of dissimilarity. We found that conventional, geometric and colour-space transformations to generate synthetic data achieved greater classification accuracy than the ImageGPT model and only the best GAN model could match this accuracy with moderate amounts of synthetic data. While GANs were shown to be a useful method, and are applicable to a wide variety of data types, image augmentation with conventional transformations resulted in comparable or higher downstream classifier accuracy. In addition, these transformations also provide greater control over the extent of augmentation and can produce a larger amount of useful data for the downstream task. Andrew Kennedy, Richard Everson |
IJCNN | 1 |
| 2023 | Hybrid Approach for Efficient and Accurate Category-Agnostic Object Detection and Localization with Image Queries in Human-Robot InteractionabstractEfficient and accurate object detection and localization play a crucial role in enabling robots to understand and interact with their environment. To this end, this paper presents a novel hybrid approach that combines deep learning and feature-based methods to address category-agnostic object detection and localization using image queries. By leveraging the strengths of both approaches, our method achieves superior performance in accurately localizing and segmenting objects, surpassing traditional feature-based template matching methods and the widely-used YoLov3. The proposed method utilizes a category-agnostic semantic segmentation framework, where objects are segmented based on their presence rather than their specific categories. Through quantitative evaluations on both synthetic and real-world datasets, our approach demonstrates remarkable accuracy and robustness in various scenarios, including objects with arbitrary shapes. The results demonstrate that the proposed approach provides an effective object detection and localization tool for visual servoing augmentation. Haolin Fei, Ziwei Wang 0001, Darren Williams, Andrew Kennedy |
IECON | 4 |
| 2015 | The Graph Landscape: a Concept for the Visual Analysis of Graph Set PropertiesabstractIn a variety of research and application areas graphs are an important structure for data modeling and analysis. While graph properties can have a crucial influence on the performance of graph algorithms, and thus on the outcome of experiments, often only basic analysis of the graphs under investigation in an experimental evaluation is performed, and a few characteristics are reported in publications. Andrew Kennedy, Karsten Klein 0001, An Nguyen 0001 |
VINCI | 1 |
| 2013 | Abstraction and invariance for algebraically indexed typesabstractReynolds' relational parametricity provides a powerful way to reason about programs in terms of invariance under changes of data representation. A dazzling array of applications of Reynolds' theory exists, exploiting invariance to yield "free theorems", non-inhabitation results, and encodings of algebraic datatypes. Outside computer science, invariance is a common theme running through many areas of mathematics and physics. For example, the area of a triangle is unaltered by rotation or flipping. If we scale a triangle, then we scale its area, maintaining an invariant relationship between the two. The transformations under which properties are invariant are often organised into groups, with the algebraic structure reflecting the composability and invertibility of transformations. Robert Atkey, Patricia Johann, Andrew Kennedy |
POPL | 3 |
| 2013 | High-level separation logic for low-level codeabstractSeparation logic is a powerful tool for reasoning about structured, imperative programs that manipulate pointers. However, its application to unstructured, lower-level languages such as assembly language or machine code remains challenging. In this paper we describe a separation logic tailored for this purpose that we have applied to x86 machine-code programs. Jonas Braband Jensen, Nick Benton, Andrew Kennedy |
POPL | 3 |
| 2013 | Coq: the world's best macro assembler?abstractWe describe a Coq formalization of a subset of the x86 architecture. One emphasis of the model is brevity: using dependent types, type classes and notation we give the x86 semantics a makeover that counters its reputation for baroqueness. We model bits, bytes, and memory concretely using functions that can be computed inside Coq itself; concrete representations are mapped across to mathematical objects in the SSReflect library (naturals, and integers modulo 2n) to prove theorems. Finally, we use notation to support conventional assembly code syntax inside Coq, including lexically-scoped labels. Ordinary Coq definitions serve as a powerful "macro" feature for everything from simple conditionals and loops to stack-allocated local variables and procedures with parameters. Assembly code can be assembled within Coq, producing a sequence of hex bytes. The assembler enjoys a correctness theorem relating machine code in memory to a separation-logic formula suitable for program verification. Andrew Kennedy, Nick Benton, Jonas Braband Jensen, Pierre-Évariste Dagand |
PPDP | 1 |
| 2013 | Impact of graphical fidelity on physiological responses in virtual environmentsabstractHigher quality computer graphics in interactive applications in the areas of virtual reality and games is generally assumed to create a more immersive experience for the end user. In this study we examined this assumption by testing to what degree graphical fidelity was associated with physiological arousal as measured by a galvanic skin response (GSR) sensor. Thirty-six subjects played two different video games at the highest and lowest graphical quality settings while their GSR activity was measured. No significant difference in GSR was observed that was associated with graphical quality. We conclude that, for applications in which an emotional response is desired, increased graphical quality alone does not predict a physiological arousal response. Vivianette Ocasio-De Jesús, Andrew Kennedy, David Whittinghill |
VRST | 2 |
| 2012 | Strongly Typed Term Representations in Coq
Nick Benton, Chung-Kil Hur, Andrew Kennedy, Conor McBride |
J. Autom. Reason. | 3 |
| 2009 | Relational semantics for effect-based program transformations: higher-order storeabstractWe give a denotational semantics to a type and effect system tracking reading and writing to global variables holding values that may include higher-order effectful functions. Refined types are modelled as partial equivalence relations over a recursively-defined domain interpreting the untyped language, with effect information interpreted in terms of the preservation of certain sets of binary relations on the store. Nick Benton, Andrew Kennedy, Lennart Beringer, Martin Hofmann 0001 |
PPDP | 2 |
| 2007 | Compiling with continuations, continuedabstractWe present a series of CPS-based intermediate languages suitable for functional language compilation, arguing that they have practical benefits over direct-style languages based on A-normal form (ANF) or monads. Inlining of functions demonstrates the benefits most clearly: in ANF-based languages, inlining involves a re-normalization step that rearranges let expressions and possibly introduces a new 'join point' function, and in monadic languages, commuting conversions must be applied; in contrast, inlining in our CPS language is a simple substitution of variables for variables. Andrew Kennedy |
ICFP | 1 |
| 2007 | Relational semantics for effect-based program transformations with dynamic allocationabstractWe give a denotational semantics to a region-based effect system tracking reading, writing and allocation in a higher-order language with dynamically allocated integer references. Nick Benton, Andrew Kennedy, Lennart Beringer, Martin Hofmann 0001 |
PPDP | 2 |
| 2006 | Reading, Writing and Relations
Nick Benton, Andrew Kennedy, Martin Hofmann 0001, Lennart Beringer |
APLAS | 2 |
| 2006 | Variance and Generalized Constraints for C# Generics
Burak Emir, Andrew Kennedy, Claudio V. Russo, Dachuan Yu |
ECOOP | 2 |
| 2006 | Securing the .NET programming model
Andrew Kennedy |
Theor. Comput. Sci. | 1 |
| 2005 | Generalized algebraic data types and object-oriented programmingabstractGeneralized algebraic data types (GADTs) have received much attention recently in the functional programming community. They generalize the (type) parameterized algebraic datatypes (PADTs) of ML and Haskell by permitting value constructors to return specific, rather than parametric, typeinstantiations of their own datatype. GADTs have a number of applications, including strongly-typed evaluators, generic pretty-printing, generic traversals and queries, and typed LR parsing. We show that existing object-oriented programming languages such as Java and C ♯ can express GADT definitions, and a large class of GADT-manipulating programs, through the use of generics, subclassing, and virtual dispatch. However, some programs can be written only through the use of redundant runtime casts. Moreover, instantiationspecific, yet safe, operations on ordinary PADTs only admit indirect cast-free implementations, via higher-order encodings. We propose a generalization of the type constraint mechanisms of C ♯ and Java to both avoid the need for casts in GADT programs and higher-order contortions in PADT programs; we present a Visitor pattern for GADTs, and describe a refined switch construct as an alternative to virtual dispatch on datatypes. We formalize both extensions and prove type soundness. Andrew Kennedy, Claudio V. Russo |
OOPSLA | 1 |
| 2004 | Formalization of generics for the .NET common language runtimeabstractWe present a formalization of the implementation of generics in the .NET Common Language Runtime (CLR), focusing on two novel aspectsof the implementation: mixed specialization and sharing, and efficient support for run-time types. Some crucial constructs used in the implementation are dictionaries and run-time type representations. We formalize these aspects type-theoretically in a way that corresponds in spirit to the implementation techniques used in practice. Both the techniques and the formalization also help us understand the range of possible implementation techniques for other languages, e.g., ML, especially when additional source language constructs such as run-time types are supported. A useful by-product of this study is a type system for a subset of the polymorphic IL proposed for the .NET CLR. Dachuan Yu, Andrew Kennedy, Don Syme |
POPL | 2 |
| 2004 | Adventures in interoperability: the SML.NET experienceabstractSML.NET is a compiler for Standard ML that targets the Common Language Runtime and is integrated into the Visual Studio development environment. It supports easy interoperability with other .NET languages via a number of language extensions, which go considerably beyond those of our earlier compiler, MLj.This paper describes the new language extensions and the features of the Visual Studio plugin, including syntax highlighting, Intellisense, continuous type inference and debugger support. We discuss our experiences using SML.NET to write SML programs that interoperate with other .NET languages, libraries and frameworks. Examples include the Visual Studio plugin itself (written in SML.NET, using .NET's COM interop features to integrate in a C++ application) and writing ASP.NET and Pocket PC applications in SML. Nick Benton, Andrew Kennedy, Claudio V. Russo |
PPDP | 2 |
| 2004 | Transposing F to C#: expressivity of parametric polymorphism in an object-oriented languageabstractAbstract We present a type‐preserving translation of System F (the polymorphic lambda calculus) into a forthcoming revision of the C♯ programming language supporting parameterized classes and polymorphic methods. The forthcoming revision of Java in JDK 1.5 also makes a suitable target. We formalize the translation using a subset of C♯ similar to Featherweight Java. We prove that the translation is fully type‐preserving and that it preserves behaviour via the novel use of environment‐style semantics for System F. We observe that whilst parameterized classes alone are sufficient to encode the parameterized datatypes and let‐polymorphism of languages such as ML and Haskell, it is the presence of dynamic dispatch for polymorphic methods that supports the encoding of the ‘first‐class polymorphism’ found in System F and recent extensions to ML and Haskell. Copyright © 2004 John Wiley & Sons, Ltd. Andrew Kennedy, Don Syme |
Concurr. Pract. Exp. | 1 |
| 2004 | Pickler combinatorsabstractThe tedium of writing pickling and unpickling functions by hand is relieved using a combinator library similar in spirit to the well-known parser combinators. Picklers for primitive types are combined to support tupling, alternation, recursion, and structure sharing. Code is presented in Haskell; an alternative implementation in ML is discussed. Andrew Kennedy |
J. Funct. Program. | 1 |
| 2003 | CodeBricks: code fragments as building blocksabstractWe present a framework for code generation that allows programs to manipulate and generate code at the source level while the joining and splicing of executable code is carried out automatically at the intermediate code/VM level. The framework introduces a data type Code to represent code fragments: methods/operators from this class are used to reify a method from a class, producing its representation as an object of type Code. Code objects can be combined by partial application to other Code objects. Code combinators, corresponding to higher-order methods, allow splicing the code of a functional actual parameter into the resulting Code object. CodeBricks is a library implementing the framework for the .NET Common Language Runtime. The framework can be exploited by language designers to implement metaprogramming, multistage programming and other language features. We illustrate the use of the technique in the implementation of a fully featured regular expression compiler that generates code emulating a finite state automaton. We present benchmarks comparing the performance of the RE matcher built with CodeBricks with the hand written one present in .NET. Giuseppe Attardi, Antonio Cisternino, Andrew Kennedy |
PEPM | 3 |
| 2001 | Design and Implementation of Generics for the .NET Common Language RuntimeabstractThe Microsoft.NET Common Language Runtime provides a shared type system, intermediate language and dynamic execution environment for the implementation and inter-operation of multiple source languages. In this paper we extend it with direct support for parametric polymorphism (also known as generics), describing the design through examples written in an extended version of the C# programming language, and explaining aspects of implementation by reference to a prototype extension to the runtime. Andrew Kennedy, Don Syme |
PLDI | 1 |
| 2001 | Exceptional Syntax Journal of Functional ProgrammingabstractFrom the points of view of programming pragmatics, rewriting and operational semantics, the syntactic construct used for exception handling in ML-like programming languages, and in much theoretical work on exceptions, has subtly undesirable features. We propose and discuss a more well-behaved construct. Nick Benton, Andrew Kennedy |
J. Funct. Program. | 2 |
| 1999 | Interlanguage Working Without Tears: Blending SML with JavaabstractA good foreign-language interface is crucial for the success of any modern programming language implementation. Although all serious compilers for functional languages have some facility for interlanguage working, these are often limited and awkward to use.This article describes the features for bidirectional interlanguage working with Java that are built into the latest version of the MLj compiler. Because the MLj foreign interface is to another high-level typed language which shares a garbage collector with compiled ML code, and because we are willing to extend the ML language, we are able to provide unusually powerful, safe and easy to use interlanguage working features. Indeed, rather then being a traditional foreign interface, our language extensions are more a partial integration of Java features into SML.We describe this integration of Standard ML and Java, first informally with example program fragments, and then formally in the notation used by The Definition of Standard ML. Nick Benton, Andrew Kennedy |
ICFP | 2 |
| 1998 | Compiling Standard ML to Java BytecodesabstractMLJ compiles SML'97 into verifier-compliant Java bytecodes. Its features include type-checked interlanguage working extensions which allow ML and Java code to call each other, automatic recompilation management, compact compiled code and runtime performance which, using a `just in time' compiling Java virtual machine, usually exceeds that of existing specialised bytecode interpreters for ML. Notable features of the compiler itself include whole-program optimisation based on rewriting, compilation of polymorphism by specialisation, a novel monadic intermediate lang... Nick Benton, Andrew Kennedy, George Russell |
ICFP | 2 |
| 1997 | Relational Parametricity and Units of MeasureabstractType systems for programming languages with numeric types can be extended to support the checking of units of measure. Quantification over units then introduces a new kind of parametric polymorphism with a corresponding Reynolds-style representation independence principle: that the behaviour of programs is invariant under changes to the units used. We prove this 'dimensional invariance' result and describe four consequences. The first is that the type of an expression can be used to derive equations which describe its properties with respect to scaling (akin to Wadler's 'theorems for free' for System F). Secondly there are certain types which are inhabited only by trivial terms. For example, we prove that a fully polymorphic square root function cannot be written using just the usual arithmetic primitives. Thirdly we exhibit interesting isomorphisms between types and for first-order types relate these to the central theorem of classical dimensional analysis. Finally we suggest that for any expression whose behaviour is dimensionally invariant there exists some equivalent expression whose type reflects this behaviour, a consequence of which would be a full abstraction result for a model of the language. Andrew Kennedy |
POPL | 1 |
| 1996 | Drawing TreesabstractAbstract This article describes the application of functional programming techniques to a problem previously studied by imperative programmers, that of drawing general trees automatically. We first consider the nature of the problem and the ideas behind its solution (due to Radack), independent of programming language implementation. We then describe a Standard ML program which reflects the structure of the abstract solution much better than an imperative language implementation. We conclude with an informal discussion on the correctness of the implementation and some changes which improve the algorithm's worst-case time complexity. Andrew Kennedy |
J. Funct. Program. | 1 |
| 1994 | Dimension Types
Andrew Kennedy |
ESOP | 1 |