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.

Curtis Clifton

dblp:49/1991 · DBLP profile ↗
← Back
6ranked-venue papers
5as 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 · 4 first-authorHuman-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
2 papers
Programming languages and type systems · 100%

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

TopicWeightPapersLastEvidence papers
Programming languages and type systems › type checking
modular typechecking
0.122006
MultiJava: Design rationale, compiler implementation, and applications · ACM Trans. Program. Lang. Syst. 2006
MultiJava: modular open classes and symmetric multiple dispatch for Java · OOPSLA 2000
Programming languages and type systems › method dispatch
multiple dispatch
0.122006
MultiJava: Design rationale, compiler implementation, and applications · ACM Trans. Program. Lang. Syst. 2006
MultiJava: modular open classes and symmetric multiple dispatch for Java · OOPSLA 2000
Programming languages and type systems › object-oriented programming
object-oriented language design
0.112006
MultiJava: Design rationale, compiler implementation, and applications · ACM Trans. Program. Lang. Syst. 2006
Programming languages and type systems
type systems
0.112006
MultiJava: Design rationale, compiler implementation, and applications · ACM Trans. Program. Lang. Syst. 2006
Programming languages and type systems › language design
language extension
0.012006
MultiJava: Design rationale, compiler implementation, and applications · ACM Trans. Program. Lang. Syst. 2006

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

static type checking · 0.1multiple dispatch · 0.1type system design · 0.0compilation scheme · 0.0
YearPublicationVenuePosition
2007 MAO: Ownership and Effects for More Effective Reasoning About Aspects
Curtis Clifton, Gary T. Leavens, James Noble 0001
ECOOP1
2007 Subverting the fundamentals sequence: using version control to enhance course management
abstract
Instructors of introductory courses face many challenges, not the least of which is dealing with a large volume of course materials and students with differing backgrounds. There are often too many administrative demands to have as much time for creative pedagogy as one would like. Team projects, and complex realistic projects in general, increase psychic demands, and conflicting schedules make creative collaboration with other instructors impossible. In order to address these issues, we need to find ways to increase effective handling of course development, to free up time for creative pedagogical efforts. This paper reports on an exploratory project in which two instructors and an undergraduate teaching assistant used the Subversion version control system to collaborate remotely on developing and running two CS1 classes. We focus on the ease and efficiency of course management using Subversion, providing a new perspective on how version control can enhance teaching.
Curtis Clifton, Lisa C. Kaczmarczyk, Michael Mrozek
SIGCSE1
2006 MiniMAO: An imperative core language for studying aspect-oriented reasoning
Curtis Clifton, Gary T. Leavens
Sci. Comput. Program.1
2006 MultiJava: Design rationale, compiler implementation, and applications
abstract
MultiJava is a conservative extension of the Java programming language that adds symmetric multiple dispatch and open classes. Among other benefits, multiple dispatch provides a solution to the binary method problem. Open classes provide a solution to the extensibility problem of object-oriented programming languages, allowing the modular addition of both new types and new operations to an existing type hierarchy. This article illustrates and motivates the design of MultiJava and describes its modular static typechecking and modular compilation strategies. Although MultiJava extends Java, the key ideas of the language design are applicable to other object-oriented languages, such as C# and C++, and even, with some modifications, to functional languages such as ML.This article also discusses the variety of application domains in which MultiJava has been successfully used by others, including pervasive computing, graphical user interfaces, and compilers. MultiJava allows users to express desired programming idioms in a way that is declarative and supports static typechecking, in contrast to the tedious and type-unsafe workarounds required in Java. MultiJava also provides opportunities for new kinds of extensibility that are not easily available in Java.
Curtis Clifton, Todd D. Millstein, Gary T. Leavens, Craig Chambers
ACM Trans. Program. Lang. Syst.1
2005 How the design of JML accommodates both runtime assertion checking and formal verification
Gary T. Leavens, Yoonsik Cheon, Curtis Clifton, Clyde Ruby, David R. Cok
Sci. Comput. Program.3
2000 MultiJava: modular open classes and symmetric multiple dispatch for Java
abstract
We present MultiJava, a backward-compatible extension to Java supporting open classes and symmetric multiple dispatch. Open classes allow one to add to the set of methods that an existing class supports without creating distinct subclasses or editing existing code. Unlike the "Visitor" design pattern, open classes do not require advance planning, and open classes preserve the ability to add new subclasses modularly and safely. Multiple dispatch offers several well-known advantages over the single dispatching of conventional object-oriented languages, including a simple solution to some kinds of "binary method" problems. MultiJava's multiple dispatch retains Java's existing class-based encapsulation properties. We adapt previous theoretical work to allow compilation units to be statically typechecked modularly and safely, ruling out any link-time or run-time type errors. We also present a n compilation scheme that operates modularly and incurs performance overhead only where open classes or multiple dispatching are actually used.
Curtis Clifton, Gary T. Leavens, Craig Chambers, Todd D. Millstein
OOPSLA1