Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

David N. Turner

dblp:t/DavidNTurner · DBLP profile ↗
← Back
9ranked-venue papers
1as first author
0since 2021 · last 2000
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 7Theory of computation · 2 · 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 · 80% Concurrent programming · 18% Runtime systems and virtual machines · 2%
Theoretical computer science
1 paper
Logic in computer science · 100%

Topics — the 16 heaviest of 16, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Programming languages and type systems › type systems › polymorphism
impredicative polymorphism
0.022000
Local type inference · ACM Trans. Program. Lang. Syst. 2000
Local Type Inference · POPL 1998
Programming languages and type systems › type inference
local type inference
0.022000
Local type inference · ACM Trans. Program. Lang. Syst. 2000
Local Type Inference · POPL 1998
Programming languages and type systems › type systems
subtyping
0.022000
Local type inference · ACM Trans. Program. Lang. Syst. 2000
Local Type Inference · POPL 1998
Programming languages and type systems
type inference
0.022000
Local type inference · ACM Trans. Program. Lang. Syst. 2000
Local Type Inference · POPL 1998
Programming languages and type systems
type systems
0.022000
Local type inference · ACM Trans. Program. Lang. Syst. 2000
Linearity and the Pi-Calculus · POPL 1996
Programming languages and type systems › type systems › substructural type systems
linear types
0.021999
Linearity and the pi-calculus · ACM Trans. Program. Lang. Syst. 1999
Linearity and the Pi-Calculus · POPL 1996
Concurrent programming › concurrency theory › process calculi
pi-calculus
0.021999
Linearity and the pi-calculus · ACM Trans. Program. Lang. Syst. 1999
Linearity and the Pi-Calculus · POPL 1996
Programming languages and type systems › program equivalence
bisimulation
0.011999
Linearity and the pi-calculus · ACM Trans. Program. Lang. Syst. 1999
Concurrent programming › concurrency theory
process calculi
0.011999
Linearity and the pi-calculus · ACM Trans. Program. Lang. Syst. 1999
Logic in computer science › process algebra
process equivalence
0.011996
Linearity and the Pi-Calculus · POPL 1996
Programming languages and type systems › type theory
existential types
0.011993
Object-Oriented Programming without Recursive Types · POPL 1993
Programming languages and type systems
object-oriented programming
0.011993
Object-Oriented Programming without Recursive Types · POPL 1993
Runtime systems and virtual machines
object representation
0.011993
Object-Oriented Programming without Recursive Types · POPL 1993
Concurrent programming
concurrency primitives
0.011992
A Semantics for ML Concurrency Primitives · POPL 1992
Programming languages and type systems
language semantics
0.011992
A Semantics for ML Concurrency Primitives · POPL 1992
Programming languages and type systems › functional language
Standard ML
0.011992
A Semantics for ML Concurrency Primitives · POPL 1992

Methods — techniques the papers use, named apart from their topics

statistical analysis · 0.0constraint solving · 0.0type constraint propagation · 0.0local constraint solving · 0.0structural operational semantics · 0.0process representation · 0.0
YearPublicationVenuePosition
2000 Local type inference
abstract
We study two partial type inference methods for a language combining subtyping and impredicative polymorphism. Both methods are local in the sense that missing annotations are recovered using only information from adjacent nodes in the syntax tree, without long-distance constraints such as unification variables. One method infers type arguments in polymorphic applications using a local constraint solver. The other infers annotations on bound variables in function abstractions by propagating type constraints downward from enclosing application nodes. We motivate our design choices by a statistical analysis of the uses of type inference in a sizable body of existing ML code.
Benjamin C. Pierce, David N. Turner
ACM Trans. Program. Lang. Syst.2
1999 Call-by-name, Call-by-value, Call-by-need and the Linear lambda Calculus
John Maraist, Martin Odersky, David N. Turner, Philip Wadler
Theor. Comput. Sci.3
1999 Operational Interpretations of Linear Logic
David N. Turner, Philip Wadler
Theor. Comput. Sci.1
1999 Linearity and the pi-calculus
abstract
The economy and flexibility of the pi-calculus make it an attractive object of theoretical study and a clean basis for concurrent language design and implementation. However, such generality has a cost: encoding higher-level features like functional computation in pi-calculus throws away potentially useful information. We show how a linear type system can be used to recover important static information about a process's behavior. In particular, we can guarantee that two processes communicating over a linear channel cannot interfere with other communicating processes. After developing standard results such as soundness of typing, we focus on equivalences, adapting the standard notion of barbed bisimulation to the linear setting and showing how reductions on linear channels induce a useful “partial confluence” of process behaviors. For an extended example of the theory, we prove the validity of a tail-call optimization for higher-order functions represented as processes.
Naoki Kobayashi 0001, Benjamin C. Pierce, David N. Turner
ACM Trans. Program. Lang. Syst.3
1998 Local Type Inference
abstract
We study two partial type inference methods for a language combining subtyping and impredicative polymorphism. Both methods are local in the sense that missing annotations are recovered using only information from adjacent nodes in the syntax tree, without long-distance constraints such as unification variables. One method infers type arguments in polymorphic applications using a local constraint solver. The other infers annotations on bound variables in function abstractions by propagating type constraints downward from enclosing application nodes. We motivate our design choices by a statistical analysis of the uses of type inference in a sizable body of existing ML code. 1 Introduction Most statically typed programming languages offer some form of type inference, allowing programmers to omit type annotations that can be recovered from context. Such a facility can eliminate a great deal of needless verbosity, making programs easier both to read and to write. Unfortunately, type infe...
Benjamin C. Pierce, David N. Turner
POPL2
1996 Linearity and the Pi-Calculus
abstract
The economy and flexibility of the pi-calculus make it attractive both as an object of theoretical study and as a basis for concurrent language design and implementation. However, such generality has a cost: encoding higher-level features like functional computation in pi-calculus throws away potentially useful information. We show how a linear type system can be used to recover important static information about a process's behaviour. In particular, we can guarantee that two processes communicating over a linear channel cannot interfere with other communicating processes. This enables more aggressive optimisation of communications over linear channels and allows useful refinements to the usual notions of process equivalence for pi-calculus.After developing standard results such as soundness of typing, we focus on equivalences, adapting the standard notion of barbed bisimulation to the linear setting and showing how reductions on linear channels induce a useful "partial confluence" of process behaviors.
Naoki Kobayashi 0001, Benjamin C. Pierce, David N. Turner
POPL3
1994 Simple Type-Theoretic Foundations for Object-Oriented Programming
abstract
Abstract We develop a formal, type-theoretic account of the basic mechanisms of object-oriented programming: encapsulation, message passing, subtyping and inheritance. By modelling object encapsulation in terms of existential types instead of the recursive records used in other recent studies, we obtain a substantial simplification both in the model of objects and in the underlying typed λ-calculus.
Benjamin C. Pierce, David N. Turner
J. Funct. Program.2
1993 Object-Oriented Programming without Recursive Types
abstract
It is widely agreed that recursive types are inherent in the static typing of the essential mechanisms of object-oriented programming: encapsulation, message passing, subtyping, and inheritance. We demonstrate here that modeling object encapsulation in terms of existential types yields a substantially more straightforward explanation of these features in a simpler calculus without recursive types.
Benjamin C. Pierce, David N. Turner
POPL2
1992 A Semantics for ML Concurrency Primitives
abstract
We present a set of concurrency primitives for Standard ML. We define these by giving the transitional semantics of a simple language. We prove that our semantics preserves the expected behaviour of sequential programs. We also show that we can define stores as processes, such that the representation has the same behaviour as a direct definition. These proofs are the first steps towards integrating our semantics with the full definition of Standard ML.
Dave Berry, Robin Milner, David N. Turner
POPL3