Shane Markstrum

dblp:84/1899 · DBLP profile ↗
← Back
7ranked-venue papers
2as first author
0since 2021 · last 2010
—ORCID · none

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

Software engineering, systems software and programming languages · 5 · 1 first-authorSystems, architecture and hardware · 1 · 1 first-authorSecurity and privacy · 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 · 37% Program analysis · 26% Software maintenance and evolution · 17%

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

TopicWeightPapersLastEvidence papers
Programming languages and type systems › type systems › static typing
pluggable type systems
0.222010
JavaCOP: Declarative pluggable types for java · ACM Trans. Program. Lang. Syst. 2010
A framework for implementing pluggable type systems · OOPSLA 2006
Programming languages and type systems
type systems
0.222010
JavaCOP: Declarative pluggable types for java · ACM Trans. Program. Lang. Syst. 2010
Semantic type qualifiers · PLDI 2005
Program analysis
data flow analysis
0.112010
JavaCOP: Declarative pluggable types for java · ACM Trans. Program. Lang. Syst. 2010
Program analysis › data flow analysis
flow-sensitive analysis
0.112010
JavaCOP: Declarative pluggable types for java · ACM Trans. Program. Lang. Syst. 2010
Software testing › system software testing › language processor testing
type system testing
0.112010
JavaCOP: Declarative pluggable types for java · ACM Trans. Program. Lang. Syst. 2010
Software maintenance and evolution › refactoring
concurrency refactoring
0.112009
Towards concurrency refactoring for x10 · PPoPP 2009
Software maintenance and evolution
refactoring
0.112009
Towards concurrency refactoring for x10 · PPoPP 2009
Programming languages and type systems › type systems › refinement types
type qualifiers
0.112005
Semantic type qualifiers · PLDI 2005
Programming languages and type systems › type systems
refinement types
0.012005
Semantic type qualifiers · PLDI 2005

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

declarative constraint language · 0.1abstract syntax tree constraints · 0.1declarative rule language · 0.1soundness proof · 0.1extensible typechecking · 0.1
YearPublicationVenuePosition
2010 JavaCOP: Declarative pluggable types for java
abstract
Pluggable types enable users to enforce multiple type systems in one programming language. We have developed a suite of tools, called the JavaCOP framework, that allows developers to create pluggable type systems for Java. JavaCOP provides a simple declarative language in which program constraints are defined over a program's abstract syntax tree. The JavaCOP compiler automatically enforces these constraints on programs during compilation. The JavaCOP framework also includes a dataflow analysis API in order to support type systems which depend on flow-sensitive information. Finally, JavaCOP includes a novel test framework which helps users gain confidence in the correctness of their pluggable type systems. We demonstrate the framework by discussing a number of pluggable type systems which have been implemented in JavaCOP in order to detect errors and enforce strong invariants in programs. These type systems range from general-purpose checkers, such as a type system for nonnull references, to domain-specific ones, such as a checker for conformance to a library's usage rules.
Shane Markstrum, Daniel Marino, Matthew Esquivel, Todd D. Millstein, Chris Andreae, James Noble 0001
ACM Trans. Program. Lang. Syst.1
2009 Towards concurrency refactoring for x10
abstract
In this poster, we present our vision of refactoring support for languages with a partitioned global address space memory model as embodied in the X10 programming language. We examine a novel refactoring, extract concurrent, that introduces additional concurrency within a loop by arranging for some user-selected code in the loop body to run in parallel with other iterations of the loop. We discuss the mechanisms and challenges for implementing this refactoring and how development of this refactoring provides insight for designing future refactorings.
Shane Markstrum, Robert M. Fuhrer, Todd D. Millstein
PPoPP1
2007 Enforcing and validating user-defined programming disciplines
abstract
No abstract available.
Brian Chin, Daniel Marino, Shane Markstrum, Todd D. Millstein
PASTE3
2006 Inference of User-Defined Type Qualifiers and Qualifier Rules
Brian Chin, Shane Markstrum, Todd D. Millstein, Jens Palsberg
ESOP2
2006 A framework for implementing pluggable type systems
abstract
Pluggable types have been proposed to support multiple type systems in the same programming language. We have designed and implemented JavaCOP, a program constraint system for implementing practical pluggable type systems for Java. JavaCOP enforces user-defined typing constraints written in a declarative and expressive rule language. We have validated our design by (re)implementing a range of type systems and program checkers. By using a program constraint system to implement pluggable types, programmers are able to check that their programs will operate correctly in restricted environments, adhere to strict programming rules, avoid null pointer errors or scoped memory exceptions, and meet style guidelines, while programming language researchers can easily experiment with novel type systems.
Chris Andreae, James Noble 0001, Shane Markstrum, Todd D. Millstein
OOPSLA3
2005 Semantic type qualifiers
abstract
We present a new approach for supporting user-defined type refinements, which augment existing types to specify and check additional invariants of interest to programmers. We provide an expressive language in which users define new refinements and associated type rules. These rules are automatically incorporated by an extensible typechecker during static typechecking of programs. Separately, a soundness checkerautomatically proves that each refinement's type rules ensure the intended invariant, for all possible programs. We have formalized our approach and have instantiated it as a framework for adding new type qualifiers to C programs. We have used this framework to define and automatically prove sound a host of type qualifiers of different sorts, including pos and neg for integers, tainted and untainted for strings, and nonnull and unique for pointers, and we have applied our qualifiers to ensure important invariants on open-source C programs.
Brian Chin, Shane Markstrum, Todd D. Millstein
PLDI2
2003 Securing nomads: the case for quarantine, examination, and decontamination
abstract
The rapid growth and increasing pervasiveness of wireless networks raises serious security concerns. Client devices will migrate between numerous diverse wireless environments, bringing with them software vulnerabilities and possibly malicious code. Techniques are needed to protect wireless client devices and the next generation wireless infrastructure. We propose QED, a new security model for wireless networks that enables wireless environments to quarantine devices and then analyze and potentially update or "decontaminate" client nodes. The QED paradigm is presented here, as well as the design of a practical prototype.
Kevin Eustice, Leonard Kleinrock, Shane Markstrum, Gerald J. Popek, Venkatraman Ramakrishna, Peter L. Reiher
NSPW3