Stephen C. Johnson

Last updated
Stephen C. Johnson
Born
Stephen Curtis Johnson

1944 (age 7980)
Alma mater
OccupationComputer scientist
Known for Yacc, Lint, Portable C Compiler
Scientific career
Fields Computer science
Institutions Bell Labs
Thesis Categorical decompositions  (1968)
Doctoral advisors Samuel Eilenberg

Stephen Curtis Johnson (born 1944) is a computer scientist who worked at Bell Labs and AT&T for nearly 20 years. He is best known for Yacc, Lint, spell, and the Portable C Compiler, which contributed to the spread of Unix and C. [1] He has also contributed to fields as diverse as computer music, psychometrics and VLSI design. [2]

Contents

Life and education

Johnson's passion for computing started at age five, when his grandfather took him along to his work at the Bureau of Standards. The computer he saw ("the size of a small house") made a strong impression on him, and he decided he "wanted to work with computers, and never looked back after". [2]

There were no computer science classes in college, so he studied mathematics, in which he eventually earned a PhD.

Career

Bell Labs and AT&T

Johnson joined Bell Labs and AT&T in the 1960s and worked on Unix tools for nearly 20 years, alongside computer scientists like Jeffrey Ullman, Dennis Ritchie and Alfred Aho. He was best known for writing Yacc, Lint, and the Portable C Compiler.

In the mid-1970s, Johnson and Bell colleague Dennis Ritchie co-authored the first AT&T Unix port. They also "demonstrated that Unix was portable", which Ritchie considers the spark that led to Unix becoming widespread. [3] In the mid-1980s, he served as the head of the UNIX Languages Department (UNIX System V). [2]

Johnson developed Yacc in the early '70s because he wanted to insert an exclusive or operator into Ritchie's B language compiler. [4] Bell Labs colleague Alfred Aho suggested he look at Donald Knuth's work on LR parsing, which served as the basis for Yacc. [2] In a 2008 interview, Johnson reflected that "the contribution Yacc made to the spread of Unix and C is what I'm proudest of". [1] Lint was developed in 1978 while Johnson was debugging the Yacc grammar he was writing for C and struggling with portability issues stemming from porting Unix to a 32-bit machine. [2] [5]

Silicon Valley

In 1986, Johnson moved to Silicon Valley, where he joined several startups, where he worked mostly on compilers, but also 2D and 3D graphics, massively parallel computing and embedded systems. The startups included Dana Computer, Inc., [6] Melismatic Software, and Transmeta, which made low-power, Intel-compatible microprocessors. [2]

Johnson served on the USENIX board for ten years, including four years as president in the early 1990s. He now serves as the USENIX representative to the Computing Research Association.[ citation needed ]

Later career

In 2002, he moved to Boston to work at MathWorks, [7] where he helped maintain the front end of the MATLAB programming language, for which he also built a lint product called M-Lint. He had met MathWorks founder Cleve Moler while working at a Silicon Valley startup and developed a "long-distance consulting relationship" with him in the 1990s. [2]

As of 2018 Johnson currently lived in Morgan Hill, California busy working on energy-efficient computers for machine learning at Wave Computing. [8]

Related Research Articles

<span class="mw-page-title-main">Brian Kernighan</span> Canadian computer scientist, co-creator of the Unix operating system

Brian Wilson Kernighan is a Canadian computer scientist. He worked at Bell Labs and contributed to the development of Unix alongside Unix creators Ken Thompson and Dennis Ritchie. Kernighan's name became widely known through co-authorship of the first book on the C programming language with Dennis Ritchie. Kernighan affirmed that he had no part in the design of the C language.

B is a programming language developed at Bell Labs circa 1969 by Ken Thompson and Dennis Ritchie.

C is a general-purpose computer programming language. It was created in the 1970s by Dennis Ritchie, and remains very widely used and influential. By design, C's features cleanly reflect the capabilities of the targeted CPUs. It has found lasting use in operating systems, device drivers, and protocol stacks, but its use in application software has been decreasing. C is commonly used on computer architectures that range from the largest supercomputers to the smallest microcontrollers and embedded systems.

<span class="mw-page-title-main">Dennis Ritchie</span> American computer scientist, co-creator of the Unix operating system

Dennis MacAlistair Ritchie was an American computer scientist. He is best known for creating the C programming language and, with long-time colleague Ken Thompson, the Unix operating system and B programming language. Ritchie and Thompson were awarded the Turing Award from the ACM in 1983, the Hamming Medal from the IEEE in 1990 and the National Medal of Technology from President Bill Clinton in 1999. Ritchie was the head of Lucent Technologies System Software Research Department when he retired in 2007. He was the "R" in K&R C, and commonly known by his username dmr.

Lint is the computer science term for a static code analysis tool used to flag programming errors, bugs, stylistic errors and suspicious constructs. The term originates from a Unix utility that examined C language source code. A program which performs this function is also known as a "linter".

Yacc is a computer program for the Unix operating system developed by Stephen C. Johnson. It is a lookahead left-to-right rightmost derivation (LALR) parser generator, generating a LALR parser based on a formal grammar, written in a notation similar to Backus–Naur form (BNF). Yacc is supplied as a standard utility on BSD and AT&T Unix. GNU-based Linux distributions include Bison, a forward-compatible Yacc replacement.

<i>A Commentary on the UNIX Operating System</i> Book

A Commentary on the Sixth Edition UNIX Operating System by John Lions is a highly influential 1976 publication containing analytical commentary on the source code of the 6th Edition Unix computer operating system "resident nucleus" software, plus copy formatted and indexed by Lions, of said source code obtained from the authors at AT&T Bell Labs. It is also commonly referred to as the Lions Book.

<span class="mw-page-title-main">Alfred Aho</span> Canadian computer scientist

Alfred Vaino Aho is a Canadian computer scientist best known for his work on programming languages, compilers, and related algorithms, and his textbooks on the art and science of computer programming.

<span class="mw-page-title-main">Douglas McIlroy</span> American mathematician and computer scientist

Malcolm Douglas McIlroy is an American mathematician, engineer, and programmer. As of 2019 he is an Adjunct Professor of Computer Science at Dartmouth College. McIlroy is best known for having originally proposed Unix pipelines and developed several Unix tools, such as spell, diff, sort, join, graph, speak, and tr. He was also one of the pioneering researchers of macro processors and programming language extensibility. He participated in the design of multiple influential programming languages, particularly PL/I, SNOBOL, ALTRAN, TMG and C++.

Robert H. Morris Sr. was an American cryptographer and computer scientist.

<i>The C Programming Language</i> Programming book written by Brian Kernighan and Dennis Ritchie

The C Programming Language is a computer programming book written by Brian Kernighan and Dennis Ritchie, the latter of whom originally designed and implemented the C programming language, as well as co-designed the Unix operating system with which development of the language was closely intertwined. The book was central to the development and popularization of C and is still widely read and used today. Because the book was co-authored by the original language designer, and because the first edition of the book served for many years as the de facto standard for the language, the book was regarded by many to be the authoritative reference on C.

Michael E. Lesk is an American computer scientist.

<span class="mw-page-title-main">Version 6 Unix</span> 6th Edition of Research Unix alias UNIX Time-Sharing System

Sixth Edition Unix, also called Version 6 Unix or just V6, was the first version of the Unix operating system to see wide release outside Bell Labs. It was released in May 1975 and, like its direct predecessor, targeted the DEC PDP-11 family of minicomputers. It was superseded by Version 7 Unix in 1978/1979, although V6 systems remained in regular operation until at least 1985.

<span class="mw-page-title-main">History of Unix</span>

The history of Unix dates back to the mid-1960s, when the Massachusetts Institute of Technology, AT&T Bell Labs, and General Electric were jointly developing an experimental time-sharing operating system called Multics for the GE-645 mainframe. Multics introduced many innovations, but also had many problems. Bell Labs, frustrated by the size and complexity of Multics but not its aims, slowly pulled out of the project. Their last researchers to leave Multics – among them Ken Thompson, Dennis Ritchie, Doug McIlroy, and Joe Ossanna – decided to redo the work, but on a much smaller scale.

ALTRAN is a programming language for the formal manipulation of rational functions of several variables with integer coefficients. It was developed at Bell Labs in 1960s. ALTRAN is a FORTRAN version of ALPAK rational algebra package, and “can be thought of as a variant of FORTRAN with the addition of an extra declaration, the ‘algebraic’ type declaration.”

The Portable C Compiler is an early compiler for the C programming language written by Stephen C. Johnson of Bell Labs in the mid-1970s, based in part on ideas proposed by Alan Snyder in 1973, and "distributed as the C compiler by Bell Labs... with the blessing of Dennis Ritchie."

<span class="mw-page-title-main">Unix</span> Family of computer operating systems

Unix is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others.

<span class="mw-page-title-main">Ken Thompson</span> American computer scientist, co-creator of the Unix operating system

Kenneth Lane Thompson is an American pioneer of computer science & Computer Chess Development. Thompson worked at Bell Labs for most of his career where he designed and implemented the original Unix operating system. He also invented the B programming language, the direct predecessor to the C programming language, and was one of the creators and early developers of the Plan 9 operating system. Since 2006, Thompson has worked at Google, where he co-developed the Go programming language.

<span class="mw-page-title-main">TMG (language)</span>

In computing TMG (TransMoGrifier) is a recursive descent compiler-compiler developed by Robert M. McClure and presented in 1965. TMG ran on systems including OS/360 and early Unix. It was used to build EPL, an early version of PL/I.

<span class="mw-page-title-main">HCR Corporation</span> Canadian software company

Human Computing Resources Corporation, later HCR Corporation, was a Canadian software company that worked on the Unix operating system and system software and business applications for it. Founded in 1976, it was based in Toronto.

References

  1. 1 2 Hamilton, Naomi (10 July 2008). "Yacc, Unix, and Advice from Bell Labs Alumni Stephen Johnson". Computerworld. Retrieved 19 January 2018.
  2. 1 2 3 4 5 6 7 Morris, Richard (1 October 2009). "Stephen Curtis Johnson: Geek of the Week". Red Gate Software. Retrieved 19 January 2018.
  3. Ritchie, Dennis (September 1994). "How Did We Get Here, Where Are We Going?". AUUG Conference Proceedings. Australia: AUUG, Inc. p. 4. ISBN   978-0-646-20108-5.
  4. Ritchie, Dennis M. (April 1993). The Development of the C Language (PDF). Association for Computing Machinery.
  5. Johnson, Stephen C. (25 October 1978). "Lint, a C Program Checker". COMP. SCI. TECH. REP: 78–1273. CiteSeerX   10.1.1.56.1841 .
  6. Watt, Peggy (15 June 1987). "Jobs Pushes for New Unix Standard: Usenix Attendees Defend Operating System". InfoWorld. Retrieved 19 January 2018.
  7. "USENIX '04 Training Track Instructors". USENIX. Retrieved 19 January 2018.
  8. Johnson, Steve. "What's it All About". Yaccman.com. Retrieved 19 January 2018.