Previous | Table of Contents | Next |
It is worth summarizing compactly the roles of the direct contributors to todays C language. Ken Thompson created the B language in 19691970; it was derived directly from Martin Richardss BCPL. Dennis Ritchie turned B into C during 19711973, keeping most of Bs syntax while adding types and many other changes and writing the first compiler. Ritchie, Alan Snyder, Steven C. Johnson, Michael Lesk, and Thompson contributed language ideas during 19721977, and Johnsons portable compiler remains widely used. During this period, the collection of library routines grew considerably, thanks to these people and many others at Bell Laboratories. In 1978, Kernighan and Ritchie wrote the book that became the language definition for several years. Beginning in 1983, the ANSI X3J11 committee standardized the language. Especially notable in keeping its efforts on track were its officers Jim Brodie, Tom Plum, and P. J. Plauger and the successive draft redactors, Larry Rosler and Dave Prosser.
I thank Brian Kernighan, Doug McIlroy, Dave Prosser, Peter Nelson, Rob Pike, Ken Thompson, and HOPLs referees for advice in the preparation of this paper.
American National Standards Institute. 1989. American national standard for information systems programming language C. New York: Author.
Anderson, B. 1980. Type syntax in the language C: An object lesson in syntactic innovation. SIGPLAN Notices 15(3):2127.
Bell, J. R. 1972. Threaded code. ACM 16(6):370372.
Canaday, R. H., and D. M. Ritchie. May 1969. Bell Laboratories BCPL. AT&T Bell Laboratories internal memorandum.
Corbato, F. J., M. MerwinDagget, and R. C. Daley. 1962. An experimental timesharing system. AFIPS Conference Proceedings, pp. 335344.
Cox, B. J., and A. J. Novobilski. 1986. Objectoriented programming: An evolutionary approach. Reading, MA: AddisonWesley.
Gehani, N. H., and W. D. Roome. 1989. Concurrent C. Summit, NJ: Silicon Press.
Jensen, K., and N. Wirth. 1974. Pascal user manual and report (2nd ed.). New York: SpringerVerlag.
Johnson, S. C. January 1978. A portable compiler: Theory and practice. Proceedings of the 5th ACM POPL Symposium.
Johnson, S. C. 1979. Yet another compilercompiler. In M. D. McIlroy and B. W. Kernighan (Eds.), UNIX programmers manual, seventh edition (Vol. 2A). Murray Hill, NJ: AT&T Bell Laboratories.
Johnson, S. C. 1979. Lint, a program checker. In M. D. McIlroy and B. W. Kernighan (Eds.), UNIX programmers manual, seventh edition (Vol. 2B). Murray Hill, NJ: AT&T Bell Laboratories.
Johnson, S. C., and B. W. Kernighan. 1973. The programming language B. Computer Science Technical Report #8, AT&T Bell Laboratories, Murray Hill, NJ.
Johnson, S. C., and D. M. Ritchie. 1978. Portability of C programs and the UNIX system. Bell Systems Technical Journal 57(6).
Kernighan, B. W. 1981. Why Pascal is not my favorite programming language. Computer Science Technical Report #100, AT&T Bell Laboratories, Murray Hill, NJ.
Kernighan, B. W., and D. M. Ritchie. 1978. The C programming language. Englewood Cliffs, NJ: Prentice Hall.
Lesk, M. E. 1973. A portable I/O package. AT&T Bell Laboratories internal memorandum, Murray Hill, NJ.
MacDonald, T. 1989. Arrays of variable length. Journal of C. Lang. Trans. 1(3):215233.
McClure, R. M. 1965. TMGA syntax-directed compiler. Proceedings of the 20th ACM National Conference, pp. 262274.
McIlroy, M. D. 1960. Macro instruction extensions of compiler languages. ACM 3(4):214220.
McIlroy, M. D., and B. W. Kernighan (Eds.). 1979. UNIX programmers manual, seventh edition (Vol. 1). Murray Hill, NJ: AT&T Bell Laboratories.
Meyer, B. 1988. Objectoriented software construction. Englewood Cliffs, NJ: Prentice Hall.
Nelson, G. 1991. Systems programming with Modula3. Englewood Cliffs, NJ: PrenticeHall.
Organick, E. I. 1975. The Multics system: An examination of its structure. Cambridge, MA: MIT Press.
Richards, M. 1967. The BCPL reference manual. MIT Project MAC Memorandum M352, Cambridge, MA.
Richards, M., and C. WhitbeyStrevens. 1979. BCPL: The language and its compiler. Cambridge, England: Cambridge University Press.
Ritchie, D. M. 1978. UNIX: A retrospective. Bell Systems Technical Journal 57(6).
Ritchie, D. M. 1984. The evolution of the UNIX timesharing system. AT&T Bell Laboratories Technical Journal 63(8).
Ritchie, D. M. 1990. Variablesize arrays in C. Journal of C Lang. Trans. 2(2):8186.
Sethi, R. 1981. Uniform syntax for type expressions and declarators. Software Practice and Experience 11(6)623628.
Snyder, A. 1974. A portable compiler for the language C. Cambridge, MA: MIT Press.
Stoy, J. E., and C. Strachey. 1972. OS6An experimental operating system for a small computer. Part I: General principles and structure. Comp. Journal 15:117124.
Stroustrup, B. 1986. The C++ programming language. Reading, MA: AddisonWesley.
Thacker, C. P., E. M. McCreight, B. W. Lampson, R. F. Sproull, and D. R. Boggs. 1982. Alto: A personal computer. In D. Sieworek, C. G. Bell, A. Newell (Eds.), Computer structures: Principles and examples. New York: McGrawHill.
Thinking Machines Corporation. 1990. C* programming guide. Cambridge, MA: Author.
Thompson, K. ca. 1969. BonAn interactive language. AT&T Bell Laboratories internal memorandum, Murray Hill, NJ.
van Wijngaarden, A., B. J. Mailloux, J. E. Peck, C. H. Koster, M. Sintzoff, C. Lindsey, L. G. Meertens, and R. G. Fisker. 1975. Revised report on the algorithmic language Algol 68. Acta Informatica 5:1236.
Previous | Table of Contents | Next |