EDBT 2026 Demo / reviewers in the wild / expert
Robert D. Cameron
dblp:c/RDCameron
· DBLP profile ↗
17ranked-venue papers
9as first author
0since 2021 · last 2015
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 10 · 4 first-authorSystems, architecture and hardware · 7 · 5 first-authorTheory of computation · 1 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 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.
| Computer architecture, parallel and distributed computing, and storage systems
4 papers |
Processor architecture and microarchitecture · 90% Performance modeling and evaluation · 9% Integrated circuit design · 0% | |
| Software engineering, system software, and programming languages
7 papers |
Compilers and program optimization · 70% Programming languages and type systems · 18% Program verification · 8% | |
| Network and information security
2 papers |
Systems and software security · 70% Web and mobile security · 30% |
Topics — the 16 heaviest of 21, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Processor architecture and microarchitecture
SIMD |
0.3 | 3 | 2012 | Parabix: Boosting the efficiency of text processing on commodity processors · HPCA 2012 Architectural support for SWAR text processing with parallel bit streams: the inductive doubling principle · ASPLOS 2009 A case study in SIMD text processing with parallel bit streams: UTF-8 to UTF-16 transcoding · PPoPP 2008 |
Compilers and program optimization
code generation |
0.1 | 1 | 2012 | Parabix: Boosting the efficiency of text processing on commodity processors · HPCA 2012 |
Processor architecture and microarchitecture
instruction set architecture |
0.1 | 1 | 2009 | Architectural support for SWAR text processing with parallel bit streams: the inductive doubling principle · ASPLOS 2009 |
Compilers and program optimization › vectorization
SIMD vectorization |
0.1 | 1 | 2008 | A case study in SIMD text processing with parallel bit streams: UTF-8 to UTF-16 transcoding · PPoPP 2008 |
Systems and software security › program analysis
bytecode verification |
0.0 | 2 | 2000 | Proof linking: modular verification of mobile programs in the presence of lazy, dynamic linking · ACM Trans. Softw. Eng. Methodol. 2000 Proof Linking: An Architecture for Modular Verification of Dynamically-Linked Mobile Code · SIGSOFT FSE 1998 |
Performance modeling and evaluation › performance evaluation methodology
energy efficiency evaluation |
0.0 | 1 | 2012 | Parabix: Boosting the efficiency of text processing on commodity processors · HPCA 2012 |
Web and mobile security › mobile security
mobile code security |
0.0 | 1 | 1998 | Proof Linking: An Architecture for Modular Verification of Dynamically-Linked Mobile Code · SIGSOFT FSE 1998 |
Programming languages and type systems
language design |
0.0 | 3 | 1992 | Language Design For Program Manipulation · IEEE Trans. Software Eng. 1992 Efficient High-Level Iteration with Accumulators · ACM Trans. Program. Lang. Syst. 1989 Grammar-Based Definition of Metaprogramming Systems · ACM Trans. Program. Lang. Syst. 1984 |
Operating systems
dynamic linking |
0.0 | 2 | 2000 | Proof linking: modular verification of mobile programs in the presence of lazy, dynamic linking · ACM Trans. Softw. Eng. Methodol. 2000 Proof Linking: An Architecture for Modular Verification of Dynamically-Linked Mobile Code · SIGSOFT FSE 1998 |
Programming languages and type systems
program manipulation |
0.0 | 1 | 1992 | Language Design For Program Manipulation · IEEE Trans. Software Eng. 1992 |
Compilers and program optimization › compiler toolchain
linking |
0.0 | 1 | 2000 | Proof linking: modular verification of mobile programs in the presence of lazy, dynamic linking · ACM Trans. Softw. Eng. Methodol. 2000 |
Programming languages and type systems › control structures
iterative constructs |
0.0 | 1 | 1989 | Efficient High-Level Iteration with Accumulators · ACM Trans. Program. Lang. Syst. 1989 |
Programming languages and type systems
metaprogramming |
0.0 | 1 | 1984 | Grammar-Based Definition of Metaprogramming Systems · ACM Trans. Program. Lang. Syst. 1984 |
Processor architecture and microarchitecture › microprogramming
microprogrammed control |
0.0 | 1 | 1978 | Combined Binary Code Translation and Parallel-to-Serial Conversion Using Stored Logic Arrays · IEEE Trans. Computers 1978 |
Programming languages and type systems › grammar formalisms
grammar-based specification |
0.0 | 1 | 1984 | Grammar-Based Definition of Metaprogramming Systems · ACM Trans. Program. Lang. Syst. 1984 |
Compilers and program optimization
parsing |
0.0 | 1 | 1984 | Grammar-Based Definition of Metaprogramming Systems · ACM Trans. Program. Lang. Syst. 1984 |
Methods — techniques the papers use, named apart from their topics
transposed text representation · 0.3thread-level parallelism · 0.3bit-parallel logic · 0.2SIMD · 0.2inductive doubling · 0.1formal modeling · 0.1inline coding · 0.0augmented BNF · 0.0translate-table machine · 0.0microprogrammed state machine · 0.0counter-driven state machine · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2015 | Bitwise Data Parallelism with LLVM: The ICgrep Case Study
Robert D. Cameron, Nigel Medforth, Dan Lin 0003, Dale Denis, William N. Sumner |
ICA3PP (2) | 1 |
| 2014 | Bitwise data parallelism in regular expression matchingabstractA new parallel algorithm for regular expression matching is developed and applied to the classical grep (global regular expression print) problem. Building on the bitwise data parallelism previously applied to the manual implementation of token scanning in the Parabix XML parser, the new algorithm represents a general solution to the problem of regular expression matching using parallel bit streams. On widely-deployed commodity hardware using 128-bit SSE2 SIMD technology, our algorithm implementations can substantially outperform traditional grep implementations based on NFAs, DFAs or backtracking. 5X or better performance advantage against the best of available competitors is not atypical. The algorithms are also designed to scale with the availability of additional parallel resources such as the wider SIMD facilities (256-bit) of Intel AVX2 or future 512-bit extensions. Our AVX2 implementation showed dramatic reduction in instruction count and significant improvement in speed. Our GPU implementations show further acceleration. Robert D. Cameron, Thomas C. Shermer, Arrvindh Shriraman, Kenneth S. Herdy, Dan Lin 0003, Benjamin R. Hull |
PACT | 1 |
| 2012 | Parabix: Boosting the efficiency of text processing on commodity processorsabstractModern applications employ text files widely for providing data storage in a readable format for applications ranging from database systems to mobile phones. Traditional text processing tools are built around a byte-at-a-time sequential processing model that introduces significant branch and cache miss penalties. Recent work has explored an alternative, transposed representation of text, Parabix (Parallel Bit Streams), to accelerate scanning and parsing using SIMD facilities. This paper advocates and develops Parabix as a general framework and toolkit, describing the software toolchain and run-time support that allows applications to exploit modern SIMD instructions for high performance text processing. The goal is to generalize the techniques to ensure that they apply across a wide variety of applications and architectures. The toolchain enables the application developer to write constructs assuming unbounded character streams and Parabix's code translator generates code based on machine specifics (e.g., SIMD register widths). The general argument in support of Parabix technology is made by a detailed performance and energy study of XML parsing across a range of processor architectures. Parabix exploits intra-core SIMD hardware and demonstrates 2×-7× speedup and 4× improvement in energy efficiency when compared with two widely used conventional software parsers, Expat and Apache-Xerces. SIMD implementations across three generations of x86 processors are studied including the new SandyBridge. The 256-bit AVX technology in Intel SandyBridge is compared with the well established 128-bit SSE technology to analyze the benefits and challenges of 3-operand instruction formats and wider SIMD hardware. Finally, the XML program is partitioned into pipeline stages to demonstrate that thread-level parallelism enables the application to exploit SIMD units scattered across the different cores, achieving improved performance (2× on 4 cores) while maintaining single-threaded energy levels. Dan Lin 0003, Nigel Medforth, Kenneth S. Herdy, Arrvindh Shriraman, Robert D. Cameron |
HPCA | 5 |
| 2011 | Parallel Scanning with Bitstream Addition: An XML Case Study
Robert D. Cameron, Ehsan Amiri, Kenneth S. Herdy, Dan Lin 0003, Thomas C. Shermer, Fred Popowich |
Euro-Par (2) | 1 |
| 2009 | Architectural support for SWAR text processing with parallel bit streams: the inductive doubling principleabstractParallel bit stream algorithms exploit the SWAR (SIMD within a register) capabilities of commodity processors in high-performance text processing applications such as UTF-8 to UTF-16 transcoding, XML parsing, string search and regular expression matching. Direct architectural support for these algorithms in future SWAR instruction sets could further increase performance as well as simplifying the programming task. A set of simple SWAR instruction set extensions are proposed for this purpose based on the principle of systematic support for inductive doubling as an algorithmic technique. These extensions are shown to significantly reduce instruction count in core parallel bit stream algorithms, often providing a 3X or better improvement. The extensions are also shown to be useful for SWAR programming in other application areas, including providing a systematic treatment for horizontal operations. An implementation model for these extensions involves relatively simple circuitry added to the operand fetch components in a pipelined processor. Robert D. Cameron, Dan Lin 0003 |
ASPLOS | 1 |
| 2008 | A case study in SIMD text processing with parallel bit streams: UTF-8 to UTF-16 transcodingabstractHigh performance SIMD text processing using the method of parallel bit streams is introduced with a case study of UTF-8 to UTF-16 transcoding. A forward transform converts byte-oriented character stream data into eight parallel bit streams. Decoding, validation and computation of UTF-8 indexed UTF-16 bit streams are performed using bit-parallel logic and shifting operations. Conversion from UTF-8 indexing to UTF-16 indexing is performed using parallel bit deletion. The inverse transform is applied to yield high and low UTF-16 byte streams which are then merged. Combined with optimization techniques for blocks of ASCII data, speed-ups of 3 to 25 times are achieved on commodity processors compared with optimized byte-at-a-time code. Further applications of the method of parallel bit streams to bulk text processing applications are briefly discussed along with future prospects for the combination of intraregister and intrachip parallelism on multicore processors. Robert D. Cameron |
PPoPP | 1 |
| 2000 | Proof linking: modular verification of mobile programs in the presence of lazy, dynamic linkingabstractAlthough mobile code systems typically employ link-time code verifiers to protect host computers from potentially malicious code, implementation flaws in the verifiers may still leave the host system vulnerable to attack. Compounding the inherent complexity of the verification algorithms themselves, the need to support lazy, dynamic linking in mobile code systems typically leads to architectures that exhibit strong interdependencies between the loader, the verifier, and the linker. To simplify verifier construction and provide improved assurances of verifier integrity, we propose a modular architecture based on the concept of proof linking. This architecture encapsulates the verification process and removes dependencies between the loader, the verifier, and the linker. We also formally model the process of proof linking and establish properties to which correct implementations must conform. As an example, we instantiate our architecture for the problem of Java bytecode verification and assess the correctness of this instantiation. Finally, we briefly discuss alternative mobile code verification architectures enabled by the proof-linking concept. Philip W. L. Fong, Robert D. Cameron |
ACM Trans. Softw. Eng. Methodol. | 2 |
| 1998 | Proof Linking: An Architecture for Modular Verification of Dynamically-Linked Mobile CodeabstractSecurity flaws are routinely discovered in commercial implementations of mobile code systems such as the Java Virtual Machine (JVM). Typical architectures for such systems exhibit complex interdependencies between the loader, the verifier, and the linker, making them difficult to craft, validate, and maintain. This reveals a software engineering challenge that is common to all mobile code systems in which a static verification phase is introduced before dynamic linking. In such systems, one has to articulate how loading, verification, and linking interact with each other, and how the three processes should be organized to address various security issues.We propose a standard architecture for crafting mobile code verifiers, based on the concept of proof linking. This architecture modularizes the verification process and isolates the dependencies among the loader, verifier, and linker. We also formalize the process of proof linking and establish properties to which correct implementations must conform. As an example, we instantiate our architecture for the problem of Java bytecode verification and assess the correctness of this instantiation. Finally, we briefly discuss alternative mobile code verification architectures enabled by our modularization. Philip W. L. Fong, Robert D. Cameron |
SIGSOFT FSE | 2 |
| 1994 | Measuring program structure with inter-module metricsabstractA good structure is an important quality aspect of a program. Well-structured, modular programs are less costly to maintain than unstructured monolithic ones. Quantitatively assessing structure and modularity of programs can be useful to help ensure that a program is well-structured by indicating a potential need for restructuring of poorly structured code. However, previous structure metrics do not sufficiently account for the modular features used in modern, object-oriented programming languages. We propose four novel measures to assess the modular structure of a software project. Our measures are based on the principle of vocabulary hiding and measure a form of cohesion. A metrics prototype tool has been implemented for the Modula-3 programming language. Informal tests suggest that they are indeed useful to assess the quality of the program structure.> Manuel M. Ammann, Robert D. Cameron |
COMPSAC | 2 |
| 1994 | Inter-Module Renaming and Reorganizing: Examples of Program Manipulation-in-the-LargeabstractMaintaining software often requires repetitive and error prone manipulations of source code, particularly when changes must be propagated across many modules. Practical program manipulation tools can alleviate these problems by automatically making changes throughout a program. Such tools can become even more valuable when they allow for manipulation in-the-large: the systematic modification of all the modules that comprise a software project. We demonstrate this concept with two prototype tools. An inter-module renamer locates and renames all and only appropriate instances of an identifier throughout a project, ensuring that no conflicts arise. An inter-module reorganizer automates the task of moving program entities between modules such that import/export declarations are properly updated for modules dependent on the moved entity and for items on which the moved entity is dependent. Our tools are designed for modern block-structured and object-oriented languages such as Modula-3.> Manuel M. Ammann, Robert D. Cameron |
ICSM | 2 |
| 1993 | Pattern Matching with Abstract Data TypesabstractAbstract Pattern matching in modern functional programming languages is tied to the representation of data. Unfortunately, this is incompatible with the philosophy of abstract data types. Two proposals have been made to generalize pattern matching to a broader class of types. The laws mechanism of Miranda allows pattern matching with non-free algebraic data types. More recently, Wadler proposed the concept of views as a more general solution, making it possible to define arbitrary mappings between a physical implementation and a view supporting pattern matching. Originally, it was intended to include views in the new standard lazy functional programming language Haskell. Laws and views each offer important advantages, particularly with respect to data abstraction. However, if not used with great care, they also introduce serious problems in equational reasoning. As a result, laws have been removed from Miranda and views were not included in the final version of Haskell. We propose a third approach which unifies the laws and views mechanisms while avoiding their problems. Philosophically, we view pattern matching as a bundling of case recognition and component selection functions instead of a method for inverting data construction. This can be achieved by removing the implied equivalence between data constructors and pattern constructors. In practice, we allow automatic mapping into a view but not out of the view. We show that equational reasoning can still be used with the resulting system. In fact, equational reasoning is easier, since there are fewer hidden traps. F. Warren Burton, Robert D. Cameron |
J. Funct. Program. | 2 |
| 1992 | Language Design For Program ManipulationabstractThe design of procedural and object-oriented programming languages is considered with respect to how easily programs written in those languages can be formally manipulated. Current procedural languages such as Pascal, Modula-2 and Ada; generally support such program manipulations, except for some annoying anomalies and special cases. Three main areas of language design are identified as being of concern from a manipulation viewpoint: the interface between concrete and abstract syntax; the relationship between the abstract syntax and static semantics naming, scoping and typing; and the ability to express basic transformations (folding and unfolding). Design principles are suggested so that the problems identified for current languages can be avoided in the future.> Eduardus A. T. Merks, J. Michael Dyck, Robert D. Cameron |
IEEE Trans. Software Eng. | 3 |
| 1989 | Efficient High-Level Iteration with AccumulatorsabstractAccumulators are proposed as a new type of high-level iteration construct for imperative languages. Accumulators are user-programmed mechanisms for successively combining a sequence of values into a single result value. The accumulated result can either be a simple numeric value such as the sum of a series or a data structure such as a list. Accumulators naturally complement constructs that allow iteration through user-programmed sequences of values such as the iterators of CLU and the generators of Alphard. A practical design for high-level iteration is illustrated by way of an extension to Modula-2 called Modula Plus. The extension incorporates both a redesigned mechanism for iterators as well as the accumulator design. Several applications are illustrated including both numeric and data structure accumulation. It is shown that the design supports efficient iteration both because it is amenable to implementation via in-line coding and because it allows high-level iteration concepts to be implemented as encapsulations of efficient low-level manipulations. Robert D. Cameron |
ACM Trans. Program. Lang. Syst. | 1 |
| 1988 | The introspection technique in maintenance metaprogrammingabstractDeals with a specific metaprogramming technique which is useful in the maintenance of data-driven software. Data-driven software includes programs whose algorithms are controlled by tables of data, such as table-driven parsers. A maintenance metaprogram for such software must have the ability to inspect and process both the program source code as well as the data tables developed by the software at run time. The easiest way to make the data tables available to the maintenance metaprogram is to run the original program until the data tables are developed in memory. Control is then passed to the maintenance metaprogram, which inspects these tables and the source code of the original program to carry out the maintenance operations. In essence, this involves the construction of a hybrid cross between the original program and the maintenance metaprogram. A case study is considered in which the introspection technique was used in maintenance of a metaprogramming system.> Robert D. Cameron |
ICSM | 1 |
| 1988 | Source encoding using syntactic information source modelsabstractThe use of syntactic information source models for the source encoding (data compression) of messages is described. Syntactic models formulated using context-free grammars augmented with derivation step probabilities are considered. Using an arithmetic coder as the low-level encoding unit, it is shown how practical encoding systems can be constructed from such models. Application of the techniques to the encoding of syntactically correct Pascal computer programs is described, and additional techniques including the use of symbol tables are introduced. The resultant syntactic encoders achieve compression of Pascal programs approaching 90%.> Robert D. Cameron |
IEEE Trans. Inf. Theory | 1 |
| 1984 | Grammar-Based Definition of Metaprogramming SystemsabstractA metaprogramming system is a programming facility (subprogramming system or language) whose basic data objects include the programs and program fragments of some particular programming language, known as the target language of the system.Such systems are designed to facilitate the writing of metaprograms, that is, programs about programs.Metaprograms take as input programs and fragments in the target language, perform various operations on them, and possibly generate modified target-language programs as output.A grammar-based approach to the specification of the syntactic-manipulation component of a metaprogramming system is described.The method derives the specifications for a set of programmanipulating subprograms from an augmented BNF grammar for the target language.The method is applicable to any programming language and is illustrated in its particular application to Pascal. Robert D. Cameron, Mabo Robert Ito |
ACM Trans. Program. Lang. Syst. | 1 |
| 1978 | Combined Binary Code Translation and Parallel-to-Serial Conversion Using Stored Logic ArraysabstractTwo general classes of machines for performing code translation and serialization are considered;namely Translate-Table and State machines. The Translate-Table machine is a conventional two-stage machine comprising a translation stage folowed by a serialization stage. Two kinds of State machines are examined: 1) counter-driven and 2) microprogrammed. Mabo Robert Ito, Robert D. Cameron |
IEEE Trans. Computers | 2 |