Bard Bloom

dblp:87/3474 · DBLP profile ↗
← Back
26ranked-venue papers
21as first author
0since 2021 · last 2012
—ORCID · none

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

Theory of computation · 14 · 10 first-authorSoftware engineering, systems software and programming languages · 10 · 8 first-authorSystems, architecture and hardware · 2 · 2 first-authorArtificial intelligence and machine learning · 1 · 1 first-authorApplied, interdisciplinary, general and emerging 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.

Theoretical computer science
11 papers
Logic in computer science · 82% Automated reasoning and model checking · 13% Coding theory · 4%
Software engineering, system software, and programming languages
3 papers
Programming languages and type systems · 64% Concurrent programming · 28% Runtime systems and virtual machines · 8%
Computer architecture, parallel and distributed computing, and storage systems
2 papers
Memory systems · 60% Distributed systems · 40%

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

TopicWeightPapersLastEvidence papers
Programming languages and type systems
language design
0.112009
Thorn: robust, concurrent, extensible scripting on the JVM · OOPSLA 2009
Concurrent programming
message passing
0.112009
Thorn: robust, concurrent, extensible scripting on the JVM · OOPSLA 2009
Programming languages and type systems
type systems
0.112009
Thorn: robust, concurrent, extensible scripting on the JVM · OOPSLA 2009
Logic in computer science
process algebra
0.151995
Structured Operational Semantics as a Specification Language · POPL 1995
Generating BDD Models for Process Algebra Terms · CAV 1995
Turning SOS Rules into Equations · Inf. Comput. 1994
Logic in computer science › program semantics › operational semantics
structural operational semantics
0.142000
Precongruence Formats for Decorated Trace Preorders · LICS 2000
Turning SOS Rules into Equations · Inf. Comput. 1994
Turning SOS Rules into Equations · LICS 1992
Logic in computer science
bisimulation
0.151995
Structured Operational Semantics as a Specification Language · POPL 1995
Turning SOS Rules into Equations · Inf. Comput. 1994
CHOCOLATE: Calculi of Higher Order COmmunication and LAmbda TErms · POPL 1994
Logic in computer science
semantics
0.022000
Precongruence Formats for Decorated Trace Preorders · LICS 2000
Can LCF Be Topped? Flat Lattice models of Typed Lambda Calculus (Preliminary Report) · LICS 1988
Automated reasoning and model checking
model checking
0.021997
Using a Protean Language to Enhance Expressiveness in Specification · IEEE Trans. Software Eng. 1997
Generating BDD Models for Process Algebra Terms · CAV 1995
Programming languages and type systems › language semantics › formal semantics
operational semantics
0.021997
Using a Protean Language to Enhance Expressiveness in Specification · IEEE Trans. Software Eng. 1997
Bisimulation Can't be Traced · J. ACM 1995
Logic in computer science › algebraic logic › equational logic
equational axiomatization
0.021994
Turning SOS Rules into Equations · Inf. Comput. 1994
Turning SOS Rules into Equations · LICS 1992
Programming languages and type systems
specification language
0.011997
Using a Protean Language to Enhance Expressiveness in Specification · IEEE Trans. Software Eng. 1997
Coding theory › error-correcting codes › decoding › minimum distance decoding
bounded-distance decoding
0.011997
Using a Protean Language to Enhance Expressiveness in Specification · IEEE Trans. Software Eng. 1997
Programming languages and type systems › program equivalence
bisimulation
0.011995
Bisimulation Can't be Traced · J. ACM 1995
Concurrent programming › concurrency theory
process calculi
0.011995
Bisimulation Can't be Traced · J. ACM 1995
Automated reasoning and model checking › model checking › symbolic model checking
BDD-based model checking
0.011995
Generating BDD Models for Process Algebra Terms · CAV 1995
Logic in computer science › process algebra
process semantics
0.011995
Generating BDD Models for Process Algebra Terms · CAV 1995
Logic in computer science › formal specification
specification language
0.011995
Structured Operational Semantics as a Specification Language · POPL 1995
Logic in computer science › semantics
denotational semantics
0.021990
Can LCF be Topped? Flat Lattice Models of Typed lambda-Calculus · Inf. Comput. 1990
Can LCF Be Topped? Flat Lattice models of Typed Lambda Calculus (Preliminary Report) · LICS 1988
Logic in computer science › semantics › denotational semantics
full abstraction
0.021990
Can LCF be Topped? Flat Lattice Models of Typed lambda-Calculus · Inf. Comput. 1990
Can LCF Be Topped? Flat Lattice models of Typed Lambda Calculus (Preliminary Report) · LICS 1988
Logic in computer science › process algebra
higher-order processes
0.011994
CHOCOLATE: Calculi of Higher Order COmmunication and LAmbda TErms · POPL 1994
Memory systems › shared memory
atomic registers
0.021988
Constructing Two-Writer Atomic Registers · IEEE Trans. Computers 1988
Constructing Two-Writer Atomic Registers · PODC 1987
Logic in computer science
concurrency theory
0.011992
Turning SOS Rules into Equations · LICS 1992
Logic in computer science › lambda calculus › typed lambda calculus
PCF
0.011990
Can LCF be Topped? Flat Lattice Models of Typed lambda-Calculus · Inf. Comput. 1990
Logic in computer science
programming languages and type systems
0.011990
Can LCF be Topped? Flat Lattice Models of Typed lambda-Calculus · Inf. Comput. 1990
Logic in computer science
program semantics
0.011990
Can LCF be Topped? Flat Lattice Models of Typed lambda-Calculus · Inf. Comput. 1990
Logic in computer science › lambda calculus
typed lambda calculus
0.011990
Can LCF be Topped? Flat Lattice Models of Typed lambda-Calculus · Inf. Comput. 1990
Automated reasoning and model checking
abstraction refinement
0.011997
Using a Protean Language to Enhance Expressiveness in Specification · IEEE Trans. Software Eng. 1997
Logic in computer science › formal specification
refinement
0.011997
Using a Protean Language to Enhance Expressiveness in Specification · IEEE Trans. Software Eng. 1997
Distributed systems
fault tolerance
0.011988
Constructing Two-Writer Atomic Registers · IEEE Trans. Computers 1988
Memory systems
shared memory
0.011988
Constructing Two-Writer Atomic Registers · IEEE Trans. Computers 1988

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

compiler plugin mechanism · 0.1binary decision diagrams · 0.1structural operational semantics · 0.0transition system specifications · 0.0modal characterization · 0.0equational reasoning · 0.0equational logic · 0.0correctness proof · 0.0scott semantics · 0.0proof theory · 0.0flat lattice models · 0.0
YearPublicationVenuePosition
2012 Robust scripting via patterns
abstract
Dynamic typing in scripting languages is a two-edged sword. On the one hand, it can be more flexible and more concise than static typing. On the other hand, it can lead to less robust code. We argue that patterns can give scripts much of the robustness of static typing, without losing the flexibility and concision of dynamic typing. To make this case, we describe a rich pattern system in the dynamic language Thorn. Thorn patterns interact with its control constructs and scoping rules to support concise and robust test-and-extract idioms. Thorn patterns encompass an extensive set of features from ML-style patterns to regular expressions and beyond. And Thorn patterns can be first-class and support pattern-punning (mirror constructor syntax). Overall, this paper describes a powerful pattern system that makes scripting more robust.
Bard Bloom, Martin Hirzel
DLS1
2012 SatX10: A Scalable Plug&Play Parallel SAT Framework - (Tool Presentation)
Bard Bloom, David Grove, Benjamin Herta, Ashish Sabharwal, Horst Samulowitz, Vijay A. Saraswat
SAT1
2009 Thorn: robust, concurrent, extensible scripting on the JVM
abstract
Scripting languages enjoy great popularity due to their support for rapid and exploratory development. They typically have lightweight syntax, weak data privacy, dynamic typing, powerful aggregate data types, and allow execution of the completed parts of incomplete programs. The price of these features comes later in the software life cycle. Scripts are hard to evolve and compose, and often slow. An additional weakness of most scripting languages is lack of support for concurrency - though concurrency is required for scalability and interacting with remote services. This paper reports on the design and implementation of Thorn, a novel programming language targeting the JVM. Our principal contributions are a careful selection of features that support the evolution of scripts into industrial grade programs - e.g., an expressive module system, an optional type annotation facility for declarations, and support for concurrency based on message passing between lightweight, isolated processes. On the implementation side, Thorn has been designed to accommodate the evolution of the language itself through a compiler plugin mechanism and target the Java virtual machine.
Bard Bloom, John Field, Nathaniel Nystrom, Johan Östlund, Gregor Richards, Rok Strnisa, Jan Vitek, Tobias Wrigstad
OOPSLA1
2009 Ferret: Programming language support for multiple dynamic classification
Bard Bloom, Paul T. Keyser, Ian Simmonds, Mark N. Wegman
Comput. Lang. Syst. Struct.1
2008 Matchete: Paths through the Pattern Matching Jungle
Martin Hirzel, Nathaniel Nystrom, Bard Bloom, Jan Vitek
PADL3
2004 Precongruence formats for decorated trace semantics
abstract
This paper explores the connection between semantic equivalences and preorders for concrete sequential processes, represented by means of labeled transition systems, and formats of transition system specifications using Plotkin's structural approach. For several preorders in the linear time---branching time spectrum a format is given, as general as possible, such that this preorder is a precongruence for all operators specifiable in that format. The formats are derived using the modal characterizations of the corresponding preorders.
Bard Bloom, Wan J. Fokkink, Rob J. van Glabbeek
ACM Trans. Comput. Log.1
2000 Precongruence Formats for Decorated Trace Preorders
abstract
This paper explores the connection between semantic equivalences and preorders for concrete sequential processes, represented by means of labelled transition systems, and formats of transition system specifications using Plotkin's (1981) structural approach. For several preorders in the linear time-branching time spectrum a format is given, as general as possible, such that this preorder is a precongruence for all operators specifiable in that format. The formats are derived using the modal characterizations of the corresponding preorders.
Bard Bloom, Wan J. Fokkink, Rob J. van Glabbeek
LICS1
1997 Using a Protean Language to Enhance Expressiveness in Specification
abstract
A Protean specification language (B. Bloom, 1995) based on structured operational semantics (SOS) allows the user to invent appropriate operations to improve abstraction and readability. This is in contrast to traditional specification languages, where the set of operations is fixed. An efficient algorithm, described by A. Dsouza and B. Bloom (1995), uses binary decision diagrams (BDDs) to verify properties of finite specifications written in a Protean language and provides the basis for a model checker we have developed. The paper provides a synthesis of our work on Protean languages and relates the work to other specification techniques. We show how abstraction and refinement in the Protean framework can improve the effectiveness of model checking. We rewrite and verify properties of an existing Z specification by defining suitable operations. We also show how a Protean language can be used to model restricted I/O automata, action refinement, and 1-safe and k-bounded Petri nets.
Bard Bloom, Allan Cheng, Ashvin Dsouza
IEEE Trans. Software Eng.1
1995 Generating BDD Models for Process Algebra Terms
Ashvin Dsouza, Bard Bloom
CAV2
1995 On the Expressive Power of CCS
Ashvin Dsouza, Bard Bloom
FSTTCS2
1995 Structured Operational Semantics as a Specification Language
abstract
Standard specification languages have very limited abilities to define new operations on processes. We introduce the concept of a Protean specification language, with general definitional facilities supported by the appropriate theory. Protean languages allow elegant, readable, and useful specifications at all levels of abstraction. A good Protean specification language will admit methods of verifying that one specification is a refinement of another. We sketch a family of Protean specification languages (with references to the full details) which allow a vast amount of expressive power in defining operations, but nonetheless have all the essential theoretical and specification power of CCS and ACP.We illustrate these techniques by presenting several specifications of the job of protecting an arbitrary server by a checkpoint/backup scheme. The high-level specification of the protected server simply says, “It does everything it did before, and it doesn't crash.” The middle-level specification describes checkpointing cleanly and abstractly, without prescribing any particular implementation. The low-level specification is fairly close to an implementation. We show the high- and medium-level specifications equivalent by bisimulation relation techniques, and the medium- and low-level specifications equivalent by equational reasoning using automatically-generated equations. We also show that the operations expressing checkpointing behavior are not definable in standard process algebras.
Bard Bloom
POPL1
1995 Bisimulation Can't be Traced
abstract
In the concurrent language CCS, two programs are considered the same if they are bisimilar . Several years and many researchers have demonstrated that the theory of bisimulation is mathematically appealing and useful in practice. However, bisimulation makes too many distinctions between programs. We consider the problem of adding operations to CCS to make bisimulation fully abstract. We define the class of GSOS operations, generalizing the style and technical advantages of CCS operations. We characterize GSOS congruence in as a bisimulation-like relation called ready-simulation . Bisimulation is strictly finer than ready simulation, and hence not a congruence for any GSOS language.
Bard Bloom, Sorin Istrail, Albert R. Meyer
J. ACM1
1995 Transformational Design and Implementation of a New Efficient Solution to the Ready Simulation Problem
abstract
A transformational methodology is described for simultaneously designing algorithms and developing programs. The methodology makes use of three transformational tools — dominated convergence, finite differencing, and real-time simulation of a set machine on a RAM. We ilustrate the methodology to design a new O(mn + n2)-time algorithm for deciding when n-state, m-transition processes are ready similar, which is a substantial improvement on the ⊖(mn6) algorithm presented in Bloom (1989). The methodology is also used to derive a program whose performance, we believe, is competitive with the most efficient hand-crafted implementation of our algorithm. Ready simulation is the finest fully abstract notion of process equivalence in the CCS setting.
Bard Bloom, Robert Paige
Sci. Comput. Program.1
1995 Structural Operational Semantics for Weak Bisimulations
abstract
In this study, we present rule formats for four main notions of bisimulation with silent moves. Weak bisimulation is a congruence for any process algebra defined by WB cool rules; we have similar results for rooted weak bisimulation (Milner's “observational congruence”), branching bisimulation, and rooted branching bisimulation. The theorems stating that, say, observational congruence is an appropriate notion of equality for CCS are corollaries of the results of this paper. We also give sufficient conditions under which equational axiom systems can be generated from operational rules. Indeed, many equational axiom systems appearing in the literature are instances of this general theory.
Bard Bloom
Theor. Comput. Sci.1
1994 CHOCOLATE: Calculi of Higher Order COmmunication and LAmbda TErms
abstract
We propose a general definition of higher-order process calculi, generalizing CHOCS [Tho89] and related calculi, and investigate its basic properties. We give sufficient conditions under which a calculus is finitely-branching and effective. We show that a suitable notion of higher-order bisimulation is a congruence for a subclass of higher-order calculi. We illustrate our definitions with a simple calculus strictly stronger than CHOCS.
Bard Bloom
POPL1
1994 When is Partial Trace Equivalence Adequate?
abstract
Abstract Two processes arepartial trace equivalentiff they can perform the same sequences of actions in isolation. Partial trace equivalence is perhaps the simplest possible notion of process equivalence. In general, it is too simple: it is not usually an adequate semantics. We investigate the circumstances under which it is adequate, which are surprisingly rich. We give two substantial classes of languages for which partial traces are adequate. In one class, partial trace equivalence suffices for total correctness, and operations such as true sequencing are possible; but all processes are determinate and silent moves are not possible. The other class — which includes many standard process calculi, such as CCS and CSP — admits indeterminacy and silent moves, but partial traces only suffice for partial correctness and true sequencing is not definable.
Bard Bloom
Formal Aspects Comput.1
1994 Turning SOS Rules into Equations
abstract
Many process algebras are defined by structural operational semantics (SOS). Indeed, most such definitions are nicely structured and fit the GSOS format of Bloom et al. (J. Assoc. Comput. Mach., to appear). We give a procedure for converting any GSOS language definition to a finite complete equational axiom system (possibly with one infinitary induction principle) which precisely characterizes strong bisimulation of processes.
Luca Aceto, Bard Bloom, Frits W. Vaandrager
Inf. Comput.2
1993 Structured Operational Sematics for Process Algebras and Equational Axiom Systems
Bard Bloom
CONCUR1
1992 Turning SOS Rules into Equations
abstract
A procedure is given for extracting from a GSOS specification of an arbitrary process algebra a complete axiom system for bisimulation equivalence (equational, except for possibly one conditional equation). The methods apply to almost all SOSs for process algebras that have appeared in the literature, and the axiomatizations compare reasonably well with most axioms that have been presented. In particular, they discover the L characterization of parallel composition. It is noted that completeness results for equational axiomatizations are tedious and have become rather standard in many cases. A generalization of extant completeness results shows that in principle this burden can be completely removed if one gives a GSOS description of a process algebra.>
Luca Aceto, Bard Bloom, Frits W. Vaandrager
LICS2
1992 Experimenting with Process Equivalence
abstract
Distinctions between concurrent processes based on observable outcomes of computational experiments are examined. The equivalence determined by a general class of experiments involving duplication of processes can be characterized by a notion of ready simulation resembling, but strictly coarser than, Milner's bisimulation equivalence.
Bard Bloom, Albert R. Meyer
Theor. Comput. Sci.1
1991 Trade-Offs in True Concurrency: Pomsets and Mazurkiewicz Traces
Bard Bloom, Marta Z. Kwiatkowska
MFPS1
1990 Can LCF be Topped? Flat Lattice Models of Typed lambda-Calculus
abstract
Plotkin ((1977) Theoret. Comput. Sci. 5: 223–256) examines the denotational semantics of PCF (essentially typed λ-calculus with arithmetic and looping). The standard Scott semantics V is computationally adequate but not fully abstract; with the addition of some parallel facilities, it becomes fully abstract, and with the addition of an existential operator, denotationally universal. We consider carrying out the same program for ⊙, the Scott models built from flat lattices rather than flat cpo's. Surprisingly, no computable extension of PCF can be denotationally universal; perfectly reasonable semantic values such as supremum and Plotkin's “parallel or” cannot be definable. There is an unenlightening fully abstract extension LA (approx), based on Gödel numbering and syntactic analysis. Unfortunately, this is the best we can do; operators defined by PCF-style rules cannot give a fully abstract language. (There is a natural and desirable property, operational extensionality, which prevents full abstraction with respect to ⊙.) However, we show that Plotkin's program can be carried out for a nonconfluent evaluator.
Bard Bloom
Inf. Comput.1
1988 Can LCF Be Topped? Flat Lattice models of Typed Lambda Calculus (Preliminary Report)
abstract
G. Plotkin (1977) examined the denotational semantics of LCF (essentially typed lambda calculus with arithmetic and looping). He showed that the standard Scott semantics is computationally adequate but not fully abstract; with the addition of some parallel facilities, it becomes fully abstract, and with the addition of an extential operator, denotationally universal. This treatment is extended to Scott models built from flat lattices rather than flat cpo's. It is found that no extension of LCF can be denotationally universal. A fully abstract extension based on Godel numbering and synthetic analysis is the best that can be achieved. Operators defined by LCF-style rules cannot give fully abstract language. It is shown that Plotkin's program can be carried out for a nonconfluent evaluator.>
Bard Bloom
LICS1
1988 Bisimulation Can't Be Traced
abstract
Bisimulation is the primitive notion of equivalence between concurrent processes in Milner's Calculus of Communicating Systems (CCS); there is a nontrivial game-like protocol for distinguishing nonbisimular processes. In contrast, process distinguishability in Hoare's theory of Communicating Sequential Processes (CSP) is determined solely on the basis of traces of visible actions. We examine what additional operations are needed to explain bisimulation similarly—specifically in the case of finitely branching processes without silent moves. We formulate a general notion of Structured Operational Semantics for processes with Guarded recursion (GSOS), and demonstrate that bisimulation does not agree with trace congruence with respect to any set of GSOS-definable contexts. In justifying the generality and significance of GSOS's, we work out some of the basic proof theoretic facts which justify the SOS discipline.
Bard Bloom, Sorin Istrail, Albert R. Meyer
POPL1
1988 Constructing Two-Writer Atomic Registers
abstract
A two-writer, n-reader atomic memory register is constructed from two one-writer, (n+1)-reader atomic memory registers. There are no restrictions on the size of the constructed register. The simulation requires only a single extra bit per real register and can survive the failure of any set of readers and writers. A complete proof of correctness is given. Several obvious ways are suggested to try to extend this algorithm to more than two writers, none of which work. As an example, it is shown how a natural extension of the two-writer protocol fails.>
Bard Bloom
IEEE Trans. Computers1
1987 Constructing Two-Writer Atomic Registers
abstract
In this paper, we construct a 2-writer, n-reader atomic memory register from two l-writer, (n + l)-reader atomic memory registers. There are no restrictions on the size of the constructed register. The simulation requires only a single extra bit per real register, and can survive the failure of any set of readers and writers. This construction is a part of a systematic investigation of register simulations, by several researchers.
Bard Bloom
PODC1