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

William B. Gardner

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

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

Systems, architecture and hardware · 2 · 1 first-authorSoftware engineering, systems software and programming languages · 2 · 1 first-authorTheory of computation · 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.

Computer architecture, parallel and distributed computing, and storage systems
1 paper
Parallel and multicore computing · 100%
Interdisciplinary, comprehensive, and emerging computing
1 paper
Computing education · 100%

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

TopicWeightPapersLastEvidence papers
Parallel and multicore computing › parallel programming models
message passing
0.112010
The pilot library for novice MPI programmers · PPoPP 2010
Parallel and multicore computing › parallel programming models › message passing
MPI programming
0.112010
The pilot library for novice MPI programmers · PPoPP 2010
Parallel and multicore computing
parallel programming models
0.112010
The pilot library for novice MPI programmers · PPoPP 2010

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

process/channel model · 0.2CSP · 0.2
YearPublicationVenuePosition
2010 The pilot library for novice MPI programmers
abstract
The Pilot library is a new method for programming MPI-enabled clusters in C, targeted at novice parallel programmers. Formal elements from Communicating Sequential Processes (CSP) are used to realize a process/channel model of parallel computation that reduces opportunities for deadlock and other communication errors. This simple model, plus an application programming inter-face (API) styled after C's formatted I/O, are designed to make the library easy to learn. The Pilot library exists as a thin layer on top of any standard Message Passing Interface (MPI) implementation, preserving MPI's portability and efficiency, with little per-formance overhead arising as result of Pilot's additional features.
John D. Carter, William B. Gardner, Gary William Grewal
PPoPP2
2007 Mise en Scene: Converting Scenarios to CSP Traces in Support of Requirements-Based Programming
abstract
The "Requirements to Design to Code" (R2D2C) project of NASA's Software Engineering Laboratory is based on inferring a formal specification, currently using Communicating Sequential Processes (CSP), from system requirements supplied in the form of scenarios, a user-friendly medium often used to describe the behavior of computer systems under development. The scenarios are first converted into an intermediate form, CSP traces, from which are derived CSP specifications. This work, called Mise en Scene, defines a new scenario medium (Scenario Notation Language, SNL) suitable for control-dominated systems, coupled with a two-stage process for automatic translation of scenarios to a new trace medium (Trace Notation Language, TNL) which encompasses CSP traces. A survey of the "scenario" concept and a small case study are also presented.
John D. Carter, William B. Gardner
SEW2
2005 Converging CSP specifications and C++ programming via selective formalism
abstract
CSP (communicating sequential processes) is a useful algebraic notation for creating a hierarchical behavioral specification for concurrent systems, due to its formal interprocess synchronization and communication semantics. CSP specifications are amenable to simulation and formal verification by model-checking tools. A translator has been created to synthesize C++ code from CSP for execution with an object-oriented framework called CSP++, thereby making CSP specifications directly executable. To overcome the drawback that CSP is neither a full-featured nor popular programming language, an approach called “selective formalism” allows the use of CSP to be limited to specifying the control portion of a system, while the rest of its functionality is supplied in the form of C++ modules. These are activated through association with abstract events in the CSP specification. This is a new means of bringing convergence between a formal method and a popular programming language. It is believed that this methodology can be extended to hardware/software codesign for embedded systems.
William B. Gardner
ACM Trans. Embed. Comput. Syst.1
2003 Bridging CSP and C++ with Selective Formalism and Executable Specifications
abstract
CSP (communicating sequential processes) is a useful algebraic notation for creating a hierarchical behavioral specification for concurrent systems, due to its formal interprocess synchronization and communication semantics. CSP specifications are amenable to simulation and formal verification by model-checking tools. To overcome the drawback that CSP is neither a full-featured nor popular programming language, an approach called "selective formalism" allows the use of CSP to be limited to specifying the control portion of a system, while the rest of its functionality is supplied in the form of C++ modules. These are activated through association with abstract events in the CSP specification. The target system is constructed using a framework called CSP++, which automatically translates CSP specifications into C++, thereby making CSP directly executable. Thus a bridge is built that allows a formal method to be combined with a popular programming language. It is believed that this methodology can be extended to hardware/software codesign.
William B. Gardner
MEMOCODE1