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. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Allen Goldberg

dblp:01/5453 · DBLP profile ↗
← Back
13ranked-venue papers
3as first author
0since 2021 · last 2005
—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-authorTheory of computation · 5 · 1 first-authorArtificial intelligence and machine learning · 2Systems, architecture and hardware · 2Security and privacy · 1 · 1 first-authorDatabases, data management, data science and information retrieval · 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
3 papers
Programming languages and type systems · 44% Runtime systems and virtual machines · 19% Program analysis · 19%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Parallel and multicore computing · 78% Electronic design automation · 22%

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

TopicWeightPapersLastEvidence papers
Runtime systems and virtual machines › virtual machine implementation
java virtual machine
0.022000
A formal specification of JavaTM class loading · OOPSLA 2000
A Specification of Java Loading and Bytecode Verification · CCS 1998
Programming languages and type systems
bytecode verification
0.022000
A Specification of Java Loading and Bytecode Verification · CCS 1998
A formal specification of JavaTM class loading · OOPSLA 2000
Programming languages and type systems › type systems
type soundness
0.012000
A formal specification of JavaTM class loading · OOPSLA 2000
Parallel and multicore computing › data distribution
data decomposition
0.012000
A Design Methodology for Data-Parallel Applications · IEEE Trans. Software Eng. 2000
Parallel and multicore computing
data-parallel programming
0.012000
A Design Methodology for Data-Parallel Applications · IEEE Trans. Software Eng. 2000
Electronic design automation
design methodology
0.012000
A Design Methodology for Data-Parallel Applications · IEEE Trans. Software Eng. 2000
Parallel and multicore computing
parallel programming models
0.012000
A Design Methodology for Data-Parallel Applications · IEEE Trans. Software Eng. 2000
Program analysis
data flow analysis
0.011998
A Specification of Java Loading and Bytecode Verification · CCS 1998
Programming languages and type systems › bytecode verification
java bytecode verification
0.011998
A Specification of Java Loading and Bytecode Verification · CCS 1998
Program verification
type-based verification
0.011998
A Specification of Java Loading and Bytecode Verification · CCS 1998
Program analysis › symbolic execution
path feasibility
0.011994
Applications of Feasible Path Analysis to Program Testing · ISSTA 1994
Software testing
structural testing
0.011994
Applications of Feasible Path Analysis to Program Testing · ISSTA 1994
Parallel and multicore computing
load balancing
0.012000
A Design Methodology for Data-Parallel Applications · IEEE Trans. Software Eng. 2000
Parallel and multicore computing › parallel programming models
message passing
0.012000
A Design Methodology for Data-Parallel Applications · IEEE Trans. Software Eng. 2000

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

type safety proof · 0.0formal specification · 0.0cost-benefit analysis · 0.0type checking · 0.0data flow analysis · 0.0theorem proving · 0.0control flow graph analysis · 0.0
YearPublicationVenuePosition
2005 Combining test case generation and runtime verification
Cyrille Artho, Howard Barringer, Allen Goldberg, Klaus Havelund, Sarfraz Khurshid, Michael R. Lowry, Corina Pasareanu, Grigore Rosu, Koushik Sen, Willem Visser, Richard Washington
Theor. Comput. Sci.3
2004 Program Monitoring with LTL in EAGLE
abstract
Summary form only given. We briefly present a rule-based framework, called EAGLE, shown to be capable of defining and implementing finite trace monitoring logics, including future and past time temporal logic, extended regular expressions, real-time and metric temporal logics (MTL), interval logics, forms of quantified temporal logics, and so on. In this paper we focus on a linear temporal logic (LTL) specialisation of EAGLE. For an initial formula of size m, we establish upper bounds of O(m/sup 2/2/sup m/logm) and O(m/sup 4/2/sup 2m/log/sup 2/m) for the space and time complexity, respectively, of single step evaluation over an input trace. EAGLE has been successfully used, in both LTL and metric LTL forms, to test a real-time controller of an experimental NASA planetary rover.
Howard Barringer, Allen Goldberg, Klaus Havelund, Koushik Sen
IPDPS2
2004 Rule-Based Runtime Verification
Howard Barringer, Allen Goldberg, Klaus Havelund, Koushik Sen
VMCAI2
2004 Experimental Evaluation of Verification and Validation Tools on Martian Rover Software
Guillaume Brat, Doron Drusinsky, Dimitra Giannakopoulou, Allen Goldberg, Klaus Havelund, Michael R. Lowry, Corina Pasareanu, Arnaud Venet, Willem Visser, Richard Washington
Formal Methods Syst. Des.4
2001 Type safety in the JVM: some problems in Java 2 SDK 1.2 and proposed solutions
abstract
Abstract In the course of our work in developing formal specifications for components of the Java Virtual Machine (JVM), we have uncovered subtle bugs in the bytecode verifier of Sun's Java 2 SDK 1.2. These bugs, which lead to type safety violations, relate to the naming of reference types. Under certain circumstances, these names can be spoofed through delegating class loaders. These flaws expose some inaccuracies and ambiguities in the JVM specification. We propose several solutions to all of these bugs. In particular, we propose a general solution that makes use of subtype loading constraints. Such constraints complement the equality loading constraints introduced in the Java 2 Platform, and are posted by the bytecode verifier when checking assignment compatibility of class types. By posting constraints instead of resolving and loading classes, the bytecode verifier in our solution has a cleaner interface with the rest of the JVM, and allows lazier loading. We sketch some excerpts of our mathematical formalization of this approach and of its type safety results. Copyright © 2001 John Wiley & Sons, Ltd.
Alessandro Coglio, Allen Goldberg
Concurr. Comput. Pract. Exp.2
2000 A formal specification of JavaTM class loading
abstract
The Java Virtual Machine (JVM) has a novel and powerful mechanism to support lazy, dynamic class loading according to user-definable policies. Class loading directly impacts type safety, on which the security of Java applications is based. Conceptual bugs in the loading mechanism were found in earlier versions of the JVM that lead to type violations. A deeper understanding of the class loading mechanism, through such means as formal analysis, will improve our confidence that no additional bugs are present.The work presented in this paper provides a formal specification of (the relevant aspects of) class loading in the JVM and proves its type safety. Our approach to proving type safety is different from the usual ones since classes are dynamically loaded and full type information may not be statically available. In addition, we propose an improvement in the interaction between class loading and bytecode verification, which is cleaner and enables lazier loading.
Allen Goldberg, Alessandro Coglio
OOPSLA2
2000 A Design Methodology for Data-Parallel Applications
abstract
A methodology for the design and development of data-parallel applications and components is presented. Data-parallelism is a well understood form of parallel computation, yet developing simple applications can involve substantial efforts to express the problem in low level notations. We describe a process of software development for data-parallel applications starting from high level specifications, generating repeated refinements of designs to match different architectural models and performance constraints, enabling a development activity with cost benefit analysis. Primary issues are algorithm choice, correctness, and efficiency, followed by data decomposition, load balancing, and message passing coordination. Development of a data-parallel multitarget tracking application is used as a case study, showing the progression from high to low level refinements. We conclude by describing tool support for the process.
Lars S. Nyland, Jan F. Prins, Allen Goldberg, Peter Mills
IEEE Trans. Software Eng.3
1998 A Specification of Java Loading and Bytecode Verification
abstract
This paper gives a mathematical specification the Java Virtual Machine (JVM) bytecode verifier. The specification is an axiomatic description of the verifier that makes precise subtle aspects of the JVM semantics and the verifier. We focus on the use of data flow analysis to verify type-correctness and the use of typing contexts to insure global type consistency in the context of an arbitrary strategy for dynamic class loading. The specification types interfaces with sufficient accuracy to eliminate run-time type checks. Our approach is to specify a generic dataflow architecture and formalize the JVM verifier as an instance of this architecture. The emphasis in this paper is on readability of the specification and mathematical clarity. The specification given is consistent with the descriptions in the Lindholm's and Yellin's The Java^TM Virtual Machine Specification. It less committed to certain implementation choices than Sun's version 1.1 implementation. In particular, the specific...
Allen Goldberg
CCS1
1994 KITP-93: An Automated Inference System for Program Analysis
Tie-Cheng Wang, Allen Goldberg
CADE2
1994 Applications of Feasible Path Analysis to Program Testing
abstract
For certain structural testing criteria a significant proportion of tests instances are infeasible in the sense the semantics of the program implies that test data cannot be constructed that meet the test requirement. This paper describes the design and prototype implementation of a structural testing system that uses a theorem prover to determine feasibility of testing requirements and to optimize the number of test cases required to achieve test coverage. Using this approach, we were able to accurately and efficiently determine path feasibility for moderately-sized program units of production code written in a subset of Ada. On these problems, the computer solutions were obtained much faster and with greater accuracy than manual analysis. The paper describes how we formalize test criteria as control flow graph path expressions; how the criteria are mapped to logic formulas; and how we control the complexity of the inference task. It describes the limitations of the system and proposals for its improvement as well as other applications of the analysis.
Allen Goldberg, Tie-Cheng Wang, David Zimmerman
ISSTA1
1992 RVF: An Automated Formal Verification System
Tie-Cheng Wang, Allen Goldberg
CADE2
1991 A mechanical verifier for supporting the design of reliable reactive systems
abstract
An automated verification system, Reacto-Verifier (RVF) developed for supporting the design of reliable reactive systems is described. In order to make the formal verification of large and/or complex systems tractable, RVF is enhanced by a knowledge-base manager, a proof manager, and a dependency maintenance procedure. The knowledge base manager supports a flexible use of a large set of axioms and rules derived from the domain theory of the specification language. The proof manager helps handle verification failure and supports off-line development of proofs. The dependency maintenance procedure permits the user to trace the history of a derivation and supports efficient addition and/or retraction of assumptions. RVF can be used both for batch-style automated verification, and for incremental development of verified programs.>
Tie-Cheng Wang, Allen Goldberg
ISSRE2
1982 Average Time Analyses of Simplified Davis-Putnam Procedures
Allen Goldberg, Paul Walton Purdom Jr., Cynthia Brown 0001
Inf. Process. Lett.1