Previous Table of Contents Next


2.5. Acknowledgments

It is worth summarizing compactly the roles of the direct contributors to today’s C language. Ken Thompson created the B language in 1969–1970; it was derived directly from Martin Richards’s BCPL. Dennis Ritchie turned B into C during 1971–1973, keeping most of B’s 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 1972–1977, and Johnson’s 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 HOPL’s referees for advice in the preparation of this paper.

2.6. References

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):21–27.

Bell, J. R. 1972. Threaded code. ACM 16(6):370–372.

Canaday, R. H., and D. M. Ritchie. May 1969. Bell Laboratories BCPL. AT&T Bell Laboratories internal memorandum.

Corbato, F. J., M. Merwin–Dagget, and R. C. Daley. 1962. An experimental time–sharing system. AFIPS Conference Proceedings, pp. 335–344.

Cox, B. J., and A. J. Novobilski. 1986. Object–oriented programming: An evolutionary approach. Reading, MA: Addison–Wesley.

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: Springer–Verlag.

Johnson, S. C. January 1978. A portable compiler: Theory and practice. Proceedings of the 5th ACM POPL Symposium.

Johnson, S. C. 1979. Yet another compiler–compiler. In M. D. McIlroy and B. W. Kernighan (Eds.), UNIX programmer’s 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 programmer’s 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):215–233.

McClure, R. M. 1965. TMG—A syntax-directed compiler. Proceedings of the 20th ACM National Conference, pp. 262–274.

McIlroy, M. D. 1960. Macro instruction extensions of compiler languages. ACM 3(4):214–220.

McIlroy, M. D., and B. W. Kernighan (Eds.). 1979. UNIX programmer’s manual, seventh edition (Vol. 1). Murray Hill, NJ: AT&T Bell Laboratories.

Meyer, B. 1988. Object–oriented software construction. Englewood Cliffs, NJ: Prentice Hall.

Nelson, G. 1991. Systems programming with Modula–3. Englewood Cliffs, NJ: Prentice–Hall.

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 M–352, Cambridge, MA.

Richards, M., and C. Whitbey–Strevens. 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 time–sharing system. AT&T Bell Laboratories Technical Journal 63(8).

Ritchie, D. M. 1990. Variable–size arrays in C. Journal of C Lang. Trans. 2(2):81–86.

Sethi, R. 1981. Uniform syntax for type expressions and declarators. Software Practice and Experience 11(6)623–628.

Snyder, A. 1974. A portable compiler for the language C. Cambridge, MA: MIT Press.

Stoy, J. E., and C. Strachey. 1972. OS6—An experimental operating system for a small computer. Part I: General principles and structure. Comp. Journal 15:117–124.

Stroustrup, B. 1986. The C++ programming language. Reading, MA: Addison–Wesley.

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: McGraw–Hill.

Thinking Machines Corporation. 1990. C* programming guide. Cambridge, MA: Author.

Thompson, K. ca. 1969. Bon—An 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:1–236.


Previous Table of Contents Next