Dominic Duggan

dblp:16/6954 · DBLP profile ↗
← Back
27ranked-venue papers
21as first author
0since 2021 · last 2017
—ORCID · none

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

Software engineering, systems software and programming languages · 15 · 12 first-authorTheory of computation · 8 · 7 first-authorSecurity and privacy · 4 · 2 first-authorArtificial intelligence and machine learning · 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 · 90% Program analysis · 10% Runtime systems and virtual machines · 0%
Theoretical computer science
1 paper
Logic in computer science · 100%

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

TopicWeightPapersLastEvidence papers
Programming languages and type systems › module systems
module interconnection language
0.012002
Type-Safe linking with recursive DLLs and shared libraries · ACM Trans. Program. Lang. Syst. 2002
Programming languages and type systems › module systems
recursive modules
0.012002
Type-Safe linking with recursive DLLs and shared libraries · ACM Trans. Program. Lang. Syst. 2002
Programming languages and type systems › language-based security
type-safe linking
0.012002
Type-Safe linking with recursive DLLs and shared libraries · ACM Trans. Program. Lang. Syst. 2002
Programming languages and type systems
language semantics
0.012001
Higher-Order Substitutions · Inf. Comput. 2001
Programming languages and type systems › module systems
mixin modules
0.012001
Modular Mixin-Based Inheritance for Application Frameworks · OOPSLA 2001
Programming languages and type systems
object-oriented programming
0.012001
Modular Mixin-Based Inheritance for Application Frameworks · OOPSLA 2001
Logic in computer science
lambda calculus
0.012001
Higher-Order Substitutions · Inf. Comput. 2001
Programming languages and type systems › method dispatch
dynamic dispatch
0.011999
Dynamic Typing for Distributed Programming in Polymorphic Languages · ACM Trans. Program. Lang. Syst. 1999
Programming languages and type systems › type systems
dynamic typing
0.011999
Dynamic Typing for Distributed Programming in Polymorphic Languages · ACM Trans. Program. Lang. Syst. 1999
Programming languages and type systems › type systems › polymorphism
generics
0.011999
Modular Type-Based Reverse Engineering of Parameterized Types in Java Code · OOPSLA 1999
Programming languages and type systems › type systems › polymorphism
parameterized types
0.011999
Modular Type-Based Reverse Engineering of Parameterized Types in Java Code · OOPSLA 1999
Programming languages and type systems › type systems › polymorphism
parametric polymorphism
0.011999
Dynamic Typing for Distributed Programming in Polymorphic Languages · ACM Trans. Program. Lang. Syst. 1999
Program analysis
type analysis
0.011999
Modular Type-Based Reverse Engineering of Parameterized Types in Java Code · OOPSLA 1999
Programming languages and type systems › type systems
static typing
0.012001
Modular Mixin-Based Inheritance for Application Frameworks · OOPSLA 2001
Programming languages and type systems
type systems
0.012001
Modular Mixin-Based Inheritance for Application Frameworks · OOPSLA 2001
Program analysis › static analysis
modular analysis
0.011999
Modular Type-Based Reverse Engineering of Parameterized Types in Java Code · OOPSLA 1999
Program analysis
static analysis
0.011999
Modular Type-Based Reverse Engineering of Parameterized Types in Java Code · OOPSLA 1999
Programming languages and type systems › control operators
first-class continuations
0.011988
Stores and Partial Continuations as First-Class Objects in a Language and its Environment · POPL 1988
Programming languages and type systems
first-class objects
0.011988
Stores and Partial Continuations as First-Class Objects in a Language and its Environment · POPL 1988
Programming languages and type systems › control operators
partial continuations
0.011988
Stores and Partial Continuations as First-Class Objects in a Language and its Environment · POPL 1988

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

operational semantics · 0.1subtyping · 0.0mixin modules · 0.0type system · 0.0type inference · 0.0data flow analysis · 0.0
YearPublicationVenuePosition
2017 Types for Location and Data Security in Cloud Environments
abstract
Cloud service providers are often trusted to be genuine, the damage caused by being discovered to be attacking their own customers outweighs any benefits such attacks could reap. On the other hand, it is expected that some cloud service users may be actively malicious. In such an open system, each location may run code which has been developed independently of other locations (and which may be secret). In this paper, we present a typed language which ensures that the access restrictions put on data on a particular device will be observed by all other devices running typed code. Untyped, compromised devices can still interact with typed devices without being able to violate the policies, except in the case when a policy directly places trust in untyped locations. Importantly, our type system does not need a middleware layer or all users to register with a preexisting PKI, and it allows for devices to dynamically create new identities. The confidentiality property guaranteed by the language is defined for any kind of intruder: we consider labeled bisimilarity i.e. an attacker cannot distinguish two scenarios that differ by the change of a protected value. This shows our main result that, for a device that runs well typed code and only places trust in other well typed devices, programming errors cannot cause a data leakage.
Ivan Gazeau, Tom Chothia, Dominic Duggan
CSF3
2012 Static Sessional Dataflow
Dominic Duggan, Jianhua Yao 0003
ECOOP1
2007 Capability passing processes
Tom Chothia, Dominic Duggan
Sci. Comput. Program.2
2005 Type-based hot swapping of running modules
Dominic Duggan
Acta Informatica1
2004 Type-based cryptographic operations
abstract
Cryptographic types are a way to express cryptographic guarantees (of secrecy and integrity) in a type system for a network programming language. This allows some of these guarantees to be checked statically, before a network program executes. Where
Dominic Duggan
J. Comput. Secur.1
2004 Abstractions for fault-tolerant global computing
Tom Chothia, Dominic Duggan
Theor. Comput. Sci.2
2003 Type-Based Distributed Access Control
abstract
The key-based decentralized label model (KDLM) is a type system that combines a weak form of information flow control, termed distributed access control in the article, with typed cryptographic operations. The motivation is to have a type system that ensures access control while giving the application the responsibility to secure network communications, and to do this safely. KDLM introduces the notion of declassification certificates to support the declassification of encrypted data.
Tom Chothia, Dominic Duggan, Jan Vitek
CSFW2
2002 Cryptographic Types
abstract
Cryptographic types are a way to express cryptographic guarantees (of secrecy and integrity) in a type system for a network programming language. This allows some of these guarantees to be checked statically, before a network program executes. Where dynamic checks are required, these are represented at the source language level as dynamic type-checking, and are translated by the compiler to lower level cryptographic operations. Static checking avoids the unnecessary overhead of run-time cryptographic operations where communication is through a trusted medium (e.g. the OS kernel, or a trusted subnet), and also provides static guarantees of the reliability of a network application. Cryptographic types can also be used to build application-specific security protocols, where type-checking in the lower layers of the protocol stack verifies security properties for upper layers. Cryptographic types are described formally using a process calculus, the ec-calculus. Correctness is verified for a scheme for compiling type operations to cryptographic operations.
Dominic Duggan
CSFW1
2002 Object type constructors
Dominic Duggan
Acta Informatica1
2002 Type-checking multi-parameter type classes
abstract
Type classes are a novel combination of parametric polymorphism and constrained types. Although most implementations restrict type classes to be single-parameter, the generalization to multi-parameter type classes has gained increasing attention. A problem with multi-parameter type classes is the increased possibilities they introduce for ambiguity in inferred types, impacting their usefulness in many practical situations. A new type-checking strategy, domain-driven unifying resolution , is identified as an approach to solve these problems. Domain-driven unifying resolution is simple, efficient, and practically useful. However, even with severe restrictions on instance definitions, it is not possible to guarantee that type-checking with unifying resolution terminates. This is in contrast with the naive generalization of single parameter resolution strategies. Domain-driven unifying resolution is guaranteed to terminate if the type class constraints are satisfiable; however satisfiability is undecidable even with severe restrictions on instance definitions. These results shed some light on ambiguity problems with multi-parameter type classes.
Dominic Duggan, John Ophel
J. Funct. Program.1
2002 Open and closed scopes for constrained genericity
Dominic Duggan, John Ophel
Theor. Comput. Sci.1
2002 Type-Safe linking with recursive DLLs and shared libraries
abstract
Component-based programming is an increasingly prevalent theme in software development, motivating the need for expressive and safe module interconnection languages. Dynamic linking is an important requirement for module interconnection languages, as exemplified by dynamic link libraries (DLLs) and class loaders in operating systems and Java, respectively. A semantics is given for a type-safe module interconnection language that supports shared libraries and dynamic linking, as well as circular import dependencies (recursive modules). The core language requirements of the module interconnection language are compatible with programming languages such as Java and C#.
Dominic Duggan
ACM Trans. Program. Lang. Syst.1
2001 Type-Based Hot Swapping of Running Modules
abstract
While dynamic linking has become an integral part of the run-time execution of modem programming languages, there is increasing recognition of the need for support for hot swapping of running modules, particularly in long-lived server applications. The interesting challenge for such a facility is to allow the new module to change the types exported by the original module, while preserving type safety. This paper describes a type-based approach to hot swapping running modules. The approach is based on a reflective mechanism for dynamically adding type sharing constraints to the type system, realized by programmer-defined version adapters in the run-time.
Dominic Duggan
ICFP1
2001 Modular Mixin-Based Inheritance for Application Frameworks
abstract
Mixin modules are proposed as an extension of a class-based programming language. Mixin modules combine parallel extension of classes, including extension of the self types for those classes, with mixin-based inheritance. For soundness of sybtyping purposes, they require an explicit distinction between mixin-based objects and class-based objects. Applications of mixin modules are in statically type-safe monad-based aspect-oriented programming, and in modular mixin-based Internet programming.
Dominic Duggan, Ching-Ching Techaubol
OOPSLA1
2001 Higher-Order Substitutions
Dominic Duggan
Inf. Comput.1
2001 Finite subtype inference with explicit polymorphism
Dominic Duggan
Sci. Comput. Program.1
2000 A Mixin-Based, Semantics-Based Approach to Reusing Domain-Specific Programming Languages
Dominic Duggan
ECOOP1
1999 Modular Type-Based Reverse Engineering of Parameterized Types in Java Code
abstract
An analysis is provided for Java programs that reverse engineers parameterized types into existing Java code. This analysis propagates precise type information about the contents of container objects. As an application, the analysis can be used to justify the safe removal of downcasts that are guaranteed to succeed. Another application is in automatically reverse engineering parameterized types into existing Java libraries, so that they can be used in Java dialects with parameterized types.
Dominic Duggan
OOPSLA1
1999 Dynamic Typing for Distributed Programming in Polymorphic Languages
abstract
While static typing is widely accepted as being necessary for secure program execution, dynamic typing is also viewed as being essential in some applications, particularly for distributed programming environments. Dynamics have been proposed as a language construct for dynamic typing, based on experience with languages such as CLU, Cedar/Mesa, and Modula-3. However proposals for incorporating dynamic typing into languages with parametric polymorphism have serious shortcomings. A new approach is presented to extending polymorphic lnanguages with dynamic typing. At the heart of the approach is the use of dynamic type dispatch, where polymorphic functions may analyze the structure of their type arguments. This approach solves several open problems with the traditional approach to adding dynamic typing to polymorphic languages. An explicity typed language XML dyn is presented; this language uses refinement kinds to ensure that dynamic type dispatch does not fail at run-time. Safe dynamics are a new form of dynamics that use refinement kinds to statically check the use of run-time dynamic typing. Run-time errors are isolated to a separate construct for performing run-time type checks
Dominic Duggan
ACM Trans. Program. Lang. Syst.1
1998 Finite Subtype Inference with Explicit Polymorphism
Dominic Duggan
SAS1
1998 Unification with Extended Patterns
Dominic Duggan
Theor. Comput. Sci.1
1996 Mixin Modules
abstract
Mixin modules are proposed as a new construct for module languages, allowing recursive definitions to span module boundaries. Mixin modules are proposed specifically for the Standard ML language. Several applications are described, including the resolution of cycles in module import dependency graphs, as well as functionality related to Haskell type classes and CLOS generic functions, though without any complications to the core language semantics. Mixin modules require no changes to the core ML type system, and only a very minor change to its run-time semantics. A type system and reduction semantics are provided, and the former is verified to be sound relative to the latter.
Dominic Duggan, Constantinos Sourelis
ICFP1
1996 Kinded Type Inference for Parametric Overloading
Dominic Duggan, Gordon V. Cormack, John Ophel
Acta Informatica1
1996 Explaining Type Inference
Dominic Duggan, Frederick Bent
Sci. Comput. Program.1
1994 Logical Closures
Dominic Duggan
LPAR1
1994 First-Class Stores and Partial Continuations in a Programming Language and Environment
Gregory F. Johnson, Dominic Duggan
Comput. Lang.2
1988 Stores and Partial Continuations as First-Class Objects in a Language and its Environment
Gregory F. Johnson, Dominic Duggan
POPL2