VLDB 2026 Research / reviewers in the wild / expert
James J. Horning
dblp:h/JamesJHorning · also Jim Horning
· DBLP profile ↗
13ranked-venue papers
1as first author
0since 2021 · last 1994
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 9 · 1 first-authorTheory of computation · 4
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 |
Requirements engineering and software design · 48% Program verification · 17% Program analysis · 15% | |
| Theoretical computer science
1 paper |
Logic in computer science · 100% |
Topics — the 16 heaviest of 17, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Requirements engineering and software design
formal specification |
0.0 | 3 | 1994 | LCLint: A Tool for Using Specifications to Check Code · SIGSOFT FSE 1994 Synchronization Primitives for a Multiprocessor: A Formal Specification · SOSP 1987 Formal Specification as a Design Tool · POPL 1980 |
Requirements engineering and software design › inconsistency management
consistency checking |
0.0 | 1 | 1994 | LCLint: A Tool for Using Specifications to Check Code · SIGSOFT FSE 1994 |
Program verification
specification verification |
0.0 | 1 | 1994 | LCLint: A Tool for Using Specifications to Check Code · SIGSOFT FSE 1994 |
Program analysis
static analysis |
0.0 | 1 | 1994 | LCLint: A Tool for Using Specifications to Check Code · SIGSOFT FSE 1994 |
Requirements engineering and software design › specification
specification debugging |
0.0 | 1 | 1990 | Debugging Larch Shared Language Specifications · IEEE Trans. Software Eng. 1990 |
Concurrent programming › synchronization
synchronization primitives |
0.0 | 1 | 1987 | Synchronization Primitives for a Multiprocessor: A Formal Specification · SOSP 1987 |
Software maintenance and evolution › software maintenance
legacy code |
0.0 | 1 | 1994 | LCLint: A Tool for Using Specifications to Check Code · SIGSOFT FSE 1994 |
Software maintenance and evolution
software reengineering |
0.0 | 1 | 1994 | LCLint: A Tool for Using Specifications to Check Code · SIGSOFT FSE 1994 |
Logic in computer science
algebraic specification |
0.0 | 1 | 1990 | Debugging Larch Shared Language Specifications · IEEE Trans. Software Eng. 1990 |
Programming languages and type systems
language semantics |
0.0 | 1 | 1980 | Formal Specification as a Design Tool · POPL 1980 |
Program verification
predicate transformers |
0.0 | 1 | 1980 | Formal Specification as a Design Tool · POPL 1980 |
Requirements engineering and software design › specification
software specification |
0.0 | 1 | 1980 | Formal Specification as a Design Tool · POPL 1980 |
Concurrent programming
synchronization |
0.0 | 1 | 1987 | Synchronization Primitives for a Multiprocessor: A Formal Specification · SOSP 1987 |
Computing education
software engineering education |
0.0 | 1 | 1977 | Software Hut: A Computer Program Engineering Project in the Form of a Game · IEEE Trans. Software Eng. 1977 |
Empirical software engineering
controlled experiment |
0.0 | 1 | 1975 | Language Design for Programming Reliability · IEEE Trans. Software Eng. 1975 |
Programming languages and type systems
language design |
0.0 | 1 | 1975 | Language Design for Programming Reliability · IEEE Trans. Software Eng. 1975 |
Methods — techniques the papers use, named apart from their topics
formal specification · 0.0LSLC checker · 0.0LP theorem prover · 0.0static analysis · 0.0specification analysis · 0.0game-based learning · 0.0algebraic axioms · 0.0error frequency analysis · 0.0controlled experiment · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 1994 | LCLint: A Tool for Using Specifications to Check CodeabstractThis paper describes LCLint, an efficient and flexible tool that accepts as input programs (written in ANSI C) and various levels of formal specification. Using this information, LCLint reports inconsistencies between a program and its specification. We also describe our experience using LCLint to help understand, document, and re-engineer legacy code. David Evans 0001, John V. Guttag, James J. Horning, Yang Meng Tan |
SIGSOFT FSE | 3 |
| 1993 | Using Transformations and Verification in Circuit Design
James B. Saxe, James J. Horning, John V. Guttag, Stephen J. Garland |
Formal Methods Syst. Des. | 2 |
| 1990 | Debugging Larch Shared Language SpecificationsabstractThe checkability designed into the LSL (Larch shared language) is described, and two tools that help perform the checking are discussed. LP (the Larch power) is the principal debugging tool. Its design and development have been motivated primarily by work on LSL, but it also has other uses (e.g. reasoning about circuits and concurrent algorithms). Because of these other uses, and because they also tend to use LP to analyze Larch interface specifications, the authors have tried not to make LP too LSL-specific. Instead, they have chosen to build a second tool, LSLC (the LSL checker), to serve as a front-end to LP. LSLC checks the syntax and static semantics of LSL specifications and generates LP proof obligations from their claims. These proof obligations fall into three categories: consistency (that a specification does not contradict itself), theory containment (that a specification has intended consequences), and relative completeness (that a set of operators is adequately defined). An extended example illustrating how LP is used to debug LSL specifications is presented.> Stephen J. Garland, John V. Guttag, James J. Horning |
IEEE Trans. Software Eng. | 3 |
| 1987 | Synchronization Primitives for a Multiprocessor: A Formal SpecificationabstractFormal specifications of operating system interfaces can be a useful part of their documentation. We illustrate this by documenting the Threads synchronization primitives of the Taos operating system. We start with an informal description, present a way to formally specify interfaces in concurrent systems, give a formal specification of the synchronization primitives, briefly discuss the implementation, and conclude with a discussion of what we have learned from using the specification for more than a year. Andrew Birrell, John V. Guttag, James J. Horning, Roy Levin |
SOSP | 3 |
| 1986 | Report on the Larch Shared Language
John V. Guttag, James J. Horning |
Sci. Comput. Program. | 2 |
| 1986 | A Larch Shared Language Handbook
John V. Guttag, James J. Horning |
Sci. Comput. Program. | 2 |
| 1982 | Some Notes on Putting Formal Specifications to Productive Use
John V. Guttag, James J. Horning, Jeannette M. Wing |
Sci. Comput. Program. | 2 |
| 1980 | Formal Specification as a Design ToolabstractThe formulation and analysis of a design specification is almost always of more utility than the verification of the consistency of a program with its specification. Good specification tools can assist in this process, but have generally not been proposed and evaluated in this light. In this paper we outline a specification language combining algebraic axioms and predicate transformers, present part of a non-trivial example (the specification of a high-level interface to a display), and finally discuss the analysis of this specification. John V. Guttag, James J. Horning |
POPL | 2 |
| 1978 | The Algebraic Specification of Abstract Data Types
John V. Guttag, James J. Horning |
Acta Informatica | 2 |
| 1978 | Proof Rules for the Programming Language Euclid
Ralph L. London, John V. Guttag, James J. Horning, Butler W. Lampson, James G. Mitchell, Gerald J. Popek |
Acta Informatica | 3 |
| 1977 | Software Hut: A Computer Program Engineering Project in the Form of a GameabstractThe Software Hut (a small software house) is a course project designed for a graduate-level course in computer program engineering. This paper describes the Software Hut project and discusses the authors' experience using it in graduate courses at the University of Toronto. Suggestions for improvements in the project are given. James J. Horning, David B. Wortman |
IEEE Trans. Software Eng. | 1 |
| 1975 | Language Design for Programming ReliabilityabstractThe language in which programs are written can have a substantial effect on their reliability. This paper discusses the design of programming languages to enhance reliability. It presents several general design principles, and then applies them to particular languages constructs. Since the validity of such design principles cannot be logically proved, empirical evidence is needed to support or discredit them. A major experiment to measure the effect of nine specific language-design decisions in one context has been performed. Analysis of the frequency and persistence of errors shows that several decisions had a significant impact on reliability. John D. Gannon, James J. Horning |
IEEE Trans. Software Eng. | 2 |
| 1973 | Efficient LR(1) Parsers
J. Eve, James J. Horning |
Acta Informatica | 3 |