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

Stephen C. Johnson

dblp:68/3523 · DBLP profile ↗
← Back
15ranked-venue papers
6as first author
0since 2021 · last 2007
—ORCID · none

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

Software engineering, systems software and programming languages · 7 · 3 first-authorTheory of computation · 3Applied, interdisciplinary, general and emerging computing · 3 · 1 first-authorSystems, architecture and hardware · 2 · 2 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
10 papers
Programming languages and type systems · 80% Compilers and program optimization · 20%
Theoretical computer science
7 papers
Algorithms and data structures · 98% Computational complexity · 2%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Electronic design automation · 100%

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

TopicWeightPapersLastEvidence papers
Compilers and program optimization
code generation
0.061983
Code Generation for Expressions with Common Subexpressions · J. ACM 1977
Code Generation for Machines with Multiregister Operations · POPL 1977
Optimal Code Generation for Expression Trees · J. ACM 1976
Compilers and program optimization › code generation
optimal code generation
0.031977
Code Generation for Machines with Multiregister Operations · POPL 1977
Optimal Code Generation for Expression Trees · J. ACM 1976
Code Generation for Expressions with Common Subexpressions · POPL 1976
Electronic design automation
logic synthesis
0.011983
Code Generation for Silicon · POPL 1983
Electronic design automation › high-level synthesis › hardware compilation
silicon compilation
0.011983
Code Generation for Silicon · POPL 1983
Compilers and program optimization › compiler optimization › redundancy elimination
common subexpression elimination
0.021977
Code Generation for Expressions with Common Subexpressions · J. ACM 1977
Code Generation for Expressions with Common Subexpressions · POPL 1976
Compilers and program optimization
optimizing compiler
0.011981
Position Paper on Optimizing Compilers · POPL 1981
Compilers and program optimization › code generation › instruction selection
expression tree code generation
0.021976
Optimal Code Generation for Expression Trees · J. ACM 1976
Optimal Code Generation for Expression Trees · STOC 1975
Algorithms and data structures
dynamic programming
0.021976
Optimal Code Generation for Expression Trees · J. ACM 1976
Optimal Code Generation for Expression Trees · STOC 1975
Compilers and program optimization › compiler construction
retargetable compilation
0.011978
A Portable Compiler: Theory and Practice · POPL 1978
Compilers and program optimization
register allocation
0.011977
Code Generation for Machines with Multiregister Operations · POPL 1977
Algorithms and data structures
symbolic computation
0.021973
On the Problem of Recognizing Zero · J. ACM 1971
Analysis of Algorithms, a Case Study: Determinants of Polynomials · STOC 1973
Compilers and program optimization
parsing
0.011973
Deterministic Parsing of Ambiguous Grammars · POPL 1973
Algorithms and data structures › symbolic computation › computational algebra
algebraic algorithms
0.011973
Analysis of Algorithms, a Case Study: Determinants of Polynomials · STOC 1973
Algorithms and data structures
analysis of algorithms
0.011973
Analysis of Algorithms, a Case Study: Determinants of Polynomials · STOC 1973
Algorithms and data structures › numerical linear algebra
determinant computation
0.011973
Analysis of Algorithms, a Case Study: Determinants of Polynomials · STOC 1973

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

programming languages · 0.1data structures · 0.1algorithm · 0.1dynamic programming · 0.0worst-case analysis · 0.0heuristics · 0.0computational complexity analysis · 0.0linear-time optimal code generation · 0.0gaussian elimination · 0.0expansion by minors · 0.0context-free grammar · 0.0ambiguity resolution · 0.0exponentiation · 0.0differentiation · 0.0
YearPublicationVenuePosition
2007 Programming Languages
Stephen C. Johnson
USENIX ATC1
2006 Algorithms and Data Structures for the 21st Century
Stephen C. Johnson
USENIX ATC, General Track1
1984 Design synthesis in VLSI and software engineering
Robert Cuykendall, Antun Domic, William H. Joyner, Stephen C. Johnson, Steven H. Kelem, Dennis McBride, Jack Mostow, John E. Savage, Gabriele Saucier
J. Syst. Softw.4
1983 Code Generation for Silicon
abstract
Compiler writers facea bleak future---soon everyone will be using Ada on the Nebula Architecture and there will be no further need for our services. Luckily, it appears to be possible to recycle compiler writers by encouraging them to build circuit design tools (Silicon Compilers). Many of the standard techniques used in compilers can be immediately applied in circuit design, especially for LSI circuits. In part, this paper attempts to serve as a tutorial, casting some of the problems of designing in nMOS with the Mead-Conway design rules into the vocabulary of the compiler writer. The paper also discusses experience with a Silicon compiler that has fabricated over two dozen different designs.
Stephen C. Johnson
POPL1
1981 Position Paper on Optimizing Compilers
abstract
No abstract available.
Stephen C. Johnson
POPL1
1978 A Portable Compiler: Theory and Practice
abstract
A compiler for the C language has recently been constructed which is now compiling C for about half a dozen machines. The compiler was influenced in various ways by recent theoretical developments. This paper gives an overview of the compiler structure and algorithms, emphasizing those areas where theory was helpful, and discussing the approaches taken where theory was lacking.
Stephen C. Johnson
POPL1
1977 Code Generation for Machines with Multiregister Operations
abstract
Previous work on optimal code generation has usually assumed that the underlying machine has identical registers and that all operands fit in a single register or memory location. This paper considers the more realistic problem of generating optimal code for expressions involving single and double length operands, using several models of register-pair machines permitting both single and double word instructions. With register-pair machines a new phenomenom arises that is not present in optimal code generation for single register machines: In an optimal evaluation of an expression it may be necessary to oscillate back and forth between evaluating subexpressions of the expression.A linear-time optimal code generation algorithm is derived for a register-pair machine in which all registers are interchangeable. The algorithm is based on showing that for this model there is an optimal evaluation sequence with limited oscillation between the sub-trees dominated by the children of a given node. For other machine models including the familiar even-odd register-pair machine, optimal evaluation sequences can always require unlimited oscillation.
Alfred V. Aho, Stephen C. Johnson, Jeffrey D. Ullman
POPL2
1977 Code Generation for Expressions with Common Subexpressions
abstract
This paper shows the problem of generating optimal code for expressions containing common subexpressions is computationally difficult, even for simple expressions and simple machines. Some heuristics for code generation are given and their worst-case behavior is analyzed. For one register machines, an optimal code generation algorithm is given whose time complexity is linear in the size of an expression and exponential only in the amount of sharing.
Alfred V. Aho, Stephen C. Johnson, Jeffrey D. Ullman
J. ACM2
1976 Code Generation for Expressions with Common Subexpressions
abstract
Easy as the task may seem, many compilers generate rather inefficient code. Some of the difficulty of generating good code may arise from the lack of realistic models for programming language and machine semantics. In this paper we show that the computational complexity of generating efficient code in realistic situations may also be a major cause of difficulty in the design of good compilers.
Alfred V. Aho, Stephen C. Johnson, Jeffrey D. Ullman
POPL2
1976 Optimal Code Generation for Expression Trees
abstract
This paper discusses algorithms which transform expression trees into code for register machines. A necessary and sufficient condition for optimality of such an algorithm is derived, which applies to a broad class of machines. A dynamic programming algorithm is then presented which produces optimal code for any machine in this class; this algorithm runs in time linearly proportional to the size of the input.
Alfred V. Aho, Stephen C. Johnson
J. ACM2
1976 Analysis of Algorithms, A Case Study: Determinants of Matrices with Polynomial Entries
abstract
The problem of computing the deternunant of a matrix of polynomials IS considered; two algo. rithms (expansion by minors and expansion by Gaussian ehmmatmn) are compared; and each is examined under two models for polynomial computatmn (dense univanate and totally sparse). The results, while interesting in themselves, also serve to display two points: (1) Asymptotic results are sometimes misleading for noninfimte (e.g. practical) problems. (2) Models of computa-tion are by definition simplifications of reahty: algorithmic analysis should be carried out under several distract computatmnal models and should be supported by empirical data. Key Words and Phrases: symbohc algebraic computation, analysm of algorithms, determinants of polynomial matrices
W. Morven Gentleman, Stephen C. Johnson
ACM Trans. Math. Softw.2
1975 Optimal Code Generation for Expression Trees
abstract
We discuss the problem of generating code for a wide class of machines, restricting ourselves to the computation of expression trees. After defining a broad class of machines and discussing the properties of optimal programs on these machines, we derive a necessary and sufficient condition which can be used to prove the optimality of any code generation algorithm for expression trees on this class. We then present a dynamic programming algorithm which produces optimal code for any machine in the class; this algorithm runs in time which is linearly proportional to the number of vertices in an expression tree.
Alfred V. Aho, Stephen C. Johnson
STOC2
1973 Deterministic Parsing of Ambiguous Grammars
abstract
We consider methods of describing the syntax of programming languages in ways that are more flexible and natural than conventional BNF descriptions. These methods involve the use of ambiguous context-free grammars together with rules to resolve syntactic ambiguities. We show how efficient LL and LR parsers can be constructed directly from certain classes of these specifications.
Alfred V. Aho, Stephen C. Johnson, Jeffrey D. Ullman
POPL2
1973 Analysis of Algorithms, a Case Study: Determinants of Polynomials
abstract
We consider the problem of computing the determinant of a matrix of polynomials; we compare two algorithms (expansion by minors and Gaussian elimination), examining each under two models for polynomial computation (dense univariate and totally sparse). The results, while interesting in themselves, also serve to display two points:
W. Morven Gentleman, Stephen C. Johnson
STOC2
1971 On the Problem of Recognizing Zero
abstract
The problem of recognizing when a complicated mathematical expression equals zero has great importance in symbolic mathematics.This paper gives two algorithms which can be applied to many such problems, and discusses a concrete example.The algorithms are based on the recognition that many interesting functions (such as exponentiation) are eigenvectors of well studied transformations (such as differentiation).
Stephen C. Johnson
J. ACM1