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.

Mark Shields

dblp:82/2844 · DBLP profile ↗
← Back
6ranked-venue papers
2as first author
0since 2021 · last 2007
—ORCID · none

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

Software engineering, systems software and programming languages · 5 · 2 first-authorApplied, interdisciplinary, general and emerging computing · 1

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
4 papers
Programming languages and type systems · 93% Compilers and program optimization · 7%

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

TopicWeightPapersLastEvidence papers
Programming languages and type systems
type systems
0.132001
Type-indexed rows · POPL 2001
Implicit Parameters: Dynamic Scoping with Static Types · POPL 2000
Dynamic Typing as Staged Type Inference · POPL 1998
Programming languages and type systems › type systems › polymorphism › parametric polymorphism
bounded polymorphism
0.012001
Type-indexed rows · POPL 2001
Programming languages and type systems › type systems › polymorphism
qualified types
0.012001
Type-indexed rows · POPL 2001
Programming languages and type systems › type systems › polymorphism
row polymorphism
0.012001
Type-indexed rows · POPL 2001
Programming languages and type systems › language semantics
dynamic scoping
0.012000
Implicit Parameters: Dynamic Scoping with Static Types · POPL 2000
Programming languages and type systems › type systems
dynamic typing
0.011998
Dynamic Typing as Staged Type Inference · POPL 1998
Compilers and program optimization
intermediate representation
0.011998
Bridging the Gulf: A Common Intermediate Language for ML and Haskell · POPL 1998
Programming languages and type systems › interoperability
language interoperability
0.011998
Bridging the Gulf: A Common Intermediate Language for ML and Haskell · POPL 1998
Programming languages and type systems
type inference
0.011998
Dynamic Typing as Staged Type Inference · POPL 1998
Programming languages and type systems › type systems
XML type systems
0.012001
Type-indexed rows · POPL 2001
Programming languages and type systems
functional programming
0.011998
Bridging the Gulf: A Common Intermediate Language for ML and Haskell · POPL 1998
Programming languages and type systems › evaluation strategies
non-strict evaluation
0.011998
Bridging the Gulf: A Common Intermediate Language for ML and Haskell · POPL 1998
Programming languages and type systems › type systems
polymorphism
0.011998
Dynamic Typing as Staged Type Inference · POPL 1998

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

type-directed translation · 0.0type inference · 0.0constraint simplification · 0.0hindley-milner type inference · 0.0unpointed types · 0.0unification · 0.0staged computation · 0.0monads · 0.0
YearPublicationVenuePosition
2007 Practical type inference for arbitrary-rank types
abstract
Abstract Haskell's popularity has driven the need for ever more expressive type system features, most of which threaten the decidability and practicality of Damas-Milner type inference. One such feature is the ability to write functions with higher-rank types – that is, functions that take polymorphic functions as their arguments. Complete type inference is known to be undecidable for higher-rank (impredicative) type systems, but in practice programmers are more than willing to add type annotations to guide the type inference engine, and to document their code. However, the choice of just what annotations are required, and what changes are required in the type system and its inference algorithm, has been an ongoing topic of research. We take as our starting point a λ-calculus proposed by Odersky and Läufer. Their system supports arbitrary-rank polymorphism through the exploitation of type annotations on λ-bound arguments and arbitrary sub-terms. Though elegant, and more convenient than some other proposals, Odersky and Läufer's system requires many annotations. We show how to use local type inference (invented by Pierce and Turner) to greatly reduce the annotation burden, to the point where higher-rank types become eminently usable. Higher-rank types have a very modest impact on type inference. We substantiate this claim in a very concrete way, by presenting a complete type-inference engine, written in Haskell, for a traditional Damas-Milner type system, and then showing how to extend it for higher-rank types. We write the type-inference engine using a monadic framework: it turns out to be a particularly compelling example of monads in action. The paper is long, but is strongly tutorial in style. Although we use Haskell as our example source language, and our implementation language, much of our work is directly applicable to any ML-like functional language.
Simon L. Peyton Jones, Dimitrios Vytiniotis, Stephanie Weirich, Mark Shields
J. Funct. Program.4
2006 Viewpoint Paper: Viewpoint: A Pragmatic Approach to Constructing a Minimum Data Set for Care of Patients with HIV in Developing Countries
abstract
Providing quality health care requires access to continuous patient data that developing countries often lack. A panel of medical informatics specialists, clinical human immunodeficiency virus (HIV) specialists, and program managers suggests a minimum data set for supporting the management and monitoring of patients with HIV and their care programs in developing countries. The proposed minimum data set consists of data for registration and scheduling, monitoring and improving practice management, and describing clinical encounters and clinical care. Data should be numeric or coded using standard definitions and minimal free text. To enhance accuracy, efficiency, and availability, data should be recorded electronically by those generating them. Data elements must be sufficiently detailed to support clinical algorithms/guidelines and aggregation into broader categories for consumption by higher level users (e.g., national and international health care agencies). The proposed minimum data set will evolve over time as funding increases, care protocols change, and additional tests and treatments become available for HIV-infected patients in developing countries.
William M. Tierney, Eduard J. Beck, Reed M. Gardner, Beverly Musick, Mark Shields, Naomi M. Shiyonga, Mark H. Spohr
J. Am. Medical Informatics Assoc.5
2001 Type-indexed rows
abstract
Record calculi use labels to distinguish between the elements of products and sums. This paper presents a novel variation, type-indexed rows, in which labels are discarded and elements are indexed by their type alone. The calculus, λTIR, can express tuples, recursive datatypes, monomorphic records, polymorphic extensible records, and closed-world style type-based overloading. Our motivating application of λTIR, however, is to encode the "choice" types of XML, and the "unordered tuple" types of SGML. Indeed, λTIR is the kernel of the language XMλ, a lazy functional language with direct support for XML types ("DTDs") and terms ("documents").The system is built from rows, equality constraints, insertion constraints and constrained, or qualified, parametric polymorphism. The test for constraint satisfaction is complete, and for constraint entailment is only mildly incomplete. We present a type checking algorithm, and show how λTIR may be implemented by a type-directed translation which replaces type-indexing by conventional natural-number indexing. Though not presented in this paper, we have also developed a constraint simplification algorithm and type inference system.
Mark Shields, Erik Meijer 0001
POPL1
2000 Implicit Parameters: Dynamic Scoping with Static Types
abstract
This paper introduces a language feature, called implicit parameters, that provides dynamically scoped variables within a statically-typed Hindley-Milner framework. Implicit parameters are lexically distinct from regular identifiers, and are bound by a special with construct whose scope is dynamic, rather than static as with let. Implicit parameters are treated by the type system as parameters that are not explicitly declared, but are inferred from their use.
Jeffrey R. Lewis, John Launchbury, Erik Meijer 0001, Mark Shields
POPL4
1998 Bridging the Gulf: A Common Intermediate Language for ML and Haskell
abstract
Compilers for ML and Haskell use intermediate languages that incorporate deeply-embedded assumptions about order of evaluation and side effects. We propose an intermediate language into which one can compile both ML and Haskell, thereby facilitating the sharing of ideas and infrastructure, and supporting language developments that move each language in the direction of the other. Achieving this goal without compromising the ability to Compile as good code as a more direct route turned out to be much more subtle than we expected. We address this challenge using monads and unpointed types, identify two alternative language designs, and explore the choices they embody.
Simon L. Peyton Jones, Mark Shields, John Launchbury, Andrew P. Tolmach
POPL2
1998 Dynamic Typing as Staged Type Inference
abstract
Dynamic typing extends statically typed languages with a universal datatype, simplifying programs which must manipulate other programs as data, such as distributed, persistent, interpretive and generic programs. Current approaches, however, limit the use of polymorphism in dynamic values, and can be syntactically awkward.We introduce a new approach to dynamic typing, based on staged computation, which allows a single type-reconstruction algorithm to execute partly at compile time and partly at run-time. This approach seamlessly extends a single type system to accommodate types that are only known at run-time, while still supporting both type inference and polymorphism. The system is significantly more expressive than other approaches. Furthermore it can be implemented efficiently; most of the type inference is done at compile-time, leaving only some residual unification for run-time.We demonstrate our approach by examples in a small polymorphic functional language, and present its type system, type reconstruction algorithm, and operational semantics. Our proposal could also be readily adapted to many other programming languages.
Mark Shields, Tim Sheard, Simon L. Peyton Jones
POPL1