Greg Dennis

dblp:64/2082 · DBLP profile ↗
← Back
3ranked-venue papers
2as first author
0since 2021 · last 2013
—ORCID · none

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

Software engineering, systems software and programming languages · 2 · 2 first-authorTheory of computation · 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
2 papers
Program verification · 74% Compilers and program optimization · 19% Program analysis · 7%
Theoretical computer science
1 paper
Automated reasoning and model checking · 100%
Interdisciplinary, comprehensive, and emerging computing
1 paper
Medical and health informatics · 100%

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

TopicWeightPapersLastEvidence papers
Program verification
modular verification
0.112006
Modular verification of code with SAT · ISSTA 2006
Program verification › constraint-based verification
SAT-based verification
0.112006
Modular verification of code with SAT · ISSTA 2006
Program verification
specification verification
0.112006
Modular verification of code with SAT · ISSTA 2006
Compilers and program optimization › dependence analysis
commutativity analysis
0.012004
Automating commutativity analysis at the design level · ISSTA 2004
Automated reasoning and model checking
constraint solving
0.012004
Automating commutativity analysis at the design level · ISSTA 2004
Program analysis
static analysis
0.012006
Modular verification of code with SAT · ISSTA 2006

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

constraint solver · 0.1alloy · 0.1OCL · 0.1relational logic · 0.1model checking · 0.1SAT solving · 0.1
YearPublicationVenuePosition
2013 Applications and extensions of Alloy: past, present and future
abstract
Alloy is a declarative language for lightweight modelling and analysis of software. The core of the language is based on first-order relational logic, which offers an attractive balance between analysability and expressiveness. The logic is expressive enough to capture the intricacies of real systems, but is also simple enough to support fully automated analysis with the Alloy Analyzer. The Analyzer is built on a SAT-based constraint solver and provides automated simulation, checking and debugging of Alloy specifications. Because of its automated analysis and expressive logic, Alloy has been applied in a wide variety of domains. These applications have motivated a number of extensions both to the Alloy language and to its SAT-based analysis. This paper provides an overview of Alloy in the context of its three largest application domains, lightweight modelling, bounded code verification and test-case generation, and three recent application-driven extensions, an imperative extension to the language, a compiler to executable code and a proof-capable analyser based on SMT.
Emina Torlak, Mana Taghdiri, Greg Dennis, Joseph P. Near
Math. Struct. Comput. Sci.3
2006 Modular verification of code with SAT
abstract
An approach is described for checking the methods of a class against a full specification. It shares with traditional model checking the idea of exhausting the entire space of executions within some finite bounds, and with traditional verification the idea of modular analysis, in which a method is analyzed, in isolation, for all possible calling contexts.The analysis involves an automatic two-phase reduction: first, to an intermediate form in relational logic (using a new encoding described here), and second, to a boolean formula (using existing techniques), which is then handed to an off the shelf SAT solver.A variety of implementations of the Java Collections Framework's List interface were checked against existing JML specifications. The analysis revealed bugs in the implementations, as well as errors in the specifications themselves.
Greg Dennis, Felix Sheng-Ho Chang, Daniel Jackson 0001
ISSTA1
2004 Automating commutativity analysis at the design level
abstract
Two operations commute if executing them serially in either order results in the same change of state. In a system in which commands may be issued simultaneously by different users, lack of commutativity can result in unpredictable behaviour, even if the commands are serialized, because one user's command may be preempted by another's, and thus executed in an unanticipated state. This paper describes an automated approach to analyzing commutativity. The operations are expressed as constraints in a declarative modelling language such as Alloy, and a constraint solver is used to find violating scenarios. A case study application to the beam scheduling component of a proton therapy machine (originally specified in OCL) revealed several violations of commutativity in which requests from medical technicians in treatment rooms could conflict with the actions of a beam operator in a master control room. Some of the issues involved in automating the analysis for OCL itself are also discussed.
Greg Dennis, Robert Seater, Derek Rayside, Daniel Jackson 0001
ISSTA1