skip to main content
article
Free Access

The development of the C language

Published:01 March 1993Publication History
Skip Abstract Section

Abstract

The C programming language was devised in the early 1970s as a system implementation language for the nascent Unix operating system. Derived from the typeless language BCPL, it evolved a type structure; created on a tiny machine as a tool to improve a meager programming environment, it has become one of the dominant languages of today. This paper studies its evolution.

References

  1. ANSI 89 American National Standards Institute, American National Standard for Information Systems--Programming Language (7, X3.159-1989.Google ScholarGoogle Scholar
  2. Anderson 80 B. Anderson, 'Type syntax in the language C: an object lesson in syntactic innovalion,' SIGPLAN Notices 15 (3), March, 1980, pp. 21-27. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bell 72 J.R. Bell, 'Threaded Code," C. ACM 16 (6), pp. 370-372. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Canaday 69 R.H. Canaday and D. M. Riehie, 'Bell l.aboratories BCPL,' AT&T Bell Laborato- Lies inemal memorandum, May, 1969.Google ScholarGoogle Scholar
  5. Corbató 62 F.J. Corbat6, M. Me~win-Dagget, R. C. Daley, 'An Ex~ental Time-sharing Systern," AFIPS Conf. Proc. SICC, 1962, pp. 335-344,Google ScholarGoogle Scholar
  6. Cox 86 B.J. Cox and A. J. Novobilski, Object.Oriented Programming: An Evolutionary Approach, Addison-Wesley: Reading, Mass., 1986. Second edition, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Gehani 89 N, }I. Gehani and W. D. Roome, Concurrent C, Sificon Press: Summit, N J, 1989.Google ScholarGoogle Scholar
  8. Jensen 74 K. Jensen and N. Wirth, Pascal User Manual and Report, Springer-Vedag: New York, tteidelberg, Berfin. Second Edition, 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Johnson 73 S.C. Johnson and B. W. Kernighan, 'The Programming language B,' Coop. Sci. Tech. Report #8, AT&T Bell Laboratories (January 19"/3).Google ScholarGoogle Scholar
  10. Johnson 78a S.C. Johnson and D. M. Ritchie, 'Portability of C Programs and the UNIX System,' Bell Sys. Tcch. J. 57 (6) (part 2), July-Aug, 1978.Google ScholarGoogle Scholar
  11. Johnson 78b S, (~. Johnson. 'A Portable Compiler: Theory and Practice," Proc. 5th ACM POPL Symposium (January 1978). Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Johnson 79a S.C. Johnson, 'Yet another compiler-compiler," in Unix Programmer's Manual, Seventh Edition, Vol. 2A, M. D. McIIroy and B. W. Kemighan, eds. AT&T Bell Labortobies: Murray Ilill, HI, 1979.Google ScholarGoogle Scholar
  13. Johnson 79b S.C. Johnson, 'Lint, a Program Checker,' in Unix Programmer's Manual, Seventh Edition, Vol. 2B, M. D. Mcllroy and B. W. Kernighan, eds. A'I'&T Bell Laboratories: Murray Hill, NJ, 1979.Google ScholarGoogle Scholar
  14. Kernighan 78 B.W. Kernighan and D. M. Ritchie, The C Programming Language, Prentice-Hall: Englewood Cliffs, NJ, 1978. Second edition, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Kernighan 81 B.W. Kernighan, 'Why Pascal is not my favorite programming language,' Comp. SoL Tech. Rep. # I00, AT&T Bell Laboratories, 198 I.Google ScholarGoogle Scholar
  16. Lesk 73 M.E. Lesk, 'A Portable I/O Package,' AT&T Bell Laboratories internal memorandum ca. 1973.Google ScholarGoogle Scholar
  17. MacDonald 89 T. MacDonald, 'Arrays of variable length,' J. C Lang. Tram ! (3), Dec. 1989, pp. 215-233.Google ScholarGoogle Scholar
  18. McClure 65 R.M. McClure, 'TMC~---A Syntax Directed Compiler,' Proc. 20th ACM National Conf. (1965), pp. 262-274. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. McIlroy 60 M.D. McIIroy. 'Macro Instruction Extensions of Compiler Languages,' C. ACM 3 (4), pp. 214-220. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. McIlroy 79 M.D. Mdlroy and B. W. Kernighan, eds, Un/x Programmer's Manual, Seventh Fxlition, Vol. I, AT&T Bell Laboratories: Murray I lilt, N J, 1979.Google ScholarGoogle Scholar
  21. Meyer 88 B. Meyer, Object-oriented Software Construction, l:hrentice-Hall: Englewood Cliffs, NJ, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Nelson 91 G. Nelson, Systems Progranvning with Modula-3, Prentice-flail: Eaglewood Cliffs, NJ, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Organick 75 E.I. OrganicL The Multics System: An Examination of its Structure, MIT Press: Cambridge, Mass., 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Richards 67 M. Richards, 'The BCPI. Reference Manual,' Mrl" Project MAC Memorandum M- 352, luly 1967.Google ScholarGoogle Scholar
  25. Richards 79 M. Richards and C. Whitbey-Strevens, BCPL: The Language and its Compiler, Cambridge Univ. Press: Cambridge, 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Ritchie 78 D, M. Ritchie, 'UNIX: A Retrospective,' Bell Sys. Tech. J. 57 (6) (part 2), July--Aug, 1978.Google ScholarGoogle Scholar
  27. Ritchie 84 D.M. Ritchie, "The Evolution of the UNIX Time-sharing System," AT&T Bell l.abs. Tech. J. 63 (8) ~art 2), Oct_ 1984.Google ScholarGoogle Scholar
  28. Ritchie 90 13. M. Ritchie, 'Variable-size arrays in C,' J. C l,ang. Trans. 2 (2), Scpl. 1990, pp. 81-86.Google ScholarGoogle Scholar
  29. Sethi 81 R, Sethi, 'Uniform syntax for type expressions and declarators,' Soflw. Prac. and Exp. 11 (6), june 1981, pp. 623-628.Google ScholarGoogle Scholar
  30. Snyder 74 A. Snyder, A Portable Compiler for the Language (7, MIT: Cambridge. Mass., 1974.Google ScholarGoogle Scholar
  31. Stoy 72 J.E. Stoy and C. Suachey, 'OS6---An experimental operating system for a small computer. Part I: General principles and structm'e,' Comp J. 15, (Aug. 1972), pp. 117-124.Google ScholarGoogle Scholar
  32. Stroustrup 86 B, Stroustrup, The C+ + Programming Language, Addison-Wesley: Reading, Mass., 1986. Second edition, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Thacker 79 C, P. Thacker, E. M. McCreight, B. W. Lampson, R. F. Sproull, D. R. Boggs, 'Alto: A Personal Computer," in Computer Structures: Principles and Examples, D. Sieworek, C. G. Bell, A. Newell, McGraw-Hill: New York, 1982.Google ScholarGoogle Scholar
  34. Thinking 90 C* Programming Guide, Thinking Machines Corp.: Cambridge Mass., 1990.Google ScholarGoogle Scholar
  35. Thompson 69 K. Thompson, 'Bon~an Interactive Language,' undated AT&T Bell l.aboratorics internal memorandum (ca. 1969).Google ScholarGoogle Scholar
  36. Wijngaarden 75 A. van Wijngaarden, B. J. Mailloux. J. E. Peck, C. H. Koster, M. Sintzoff, C. Lindsey, L. G. Meermns, R. G. Fisker, 'Revised report on the algorithmic language Algol 68,' Acta Informatica 5, pp. 1-236.Google ScholarGoogle Scholar

Index Terms

  1. The development of the C language

      Recommendations

      Reviews

      Floyd S. Shipman

      C is now the most widely used system implementation language. Its development began when the state of the art in system implementation languages was macro assemblers, and PL/I (IBM's one language for everything, including system implementation) was on its way to becoming a dinosaur. “C is quirky, flawed, and an enormous success,” Ritchie states. In this paper, he describes the development and subsequent evolution of C. He explains how C evolved from BCPL to B to C, the influence of ALGOL68, minutia such as where ++x really came from, and how structures and pointers came to be in their current form. This is an interesting paper by a primary developer of C.

      Access critical reviews of Computing literature here

      Become a reviewer for Computing Reviews.

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 28, Issue 3
        March 1993
        363 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/155360
        Issue’s Table of Contents
        • cover image ACM Conferences
          HOPL-II: The second ACM SIGPLAN conference on History of programming languages
          April 1993
          370 pages
          ISBN:0897915704
          DOI:10.1145/154766

        Copyright © 1993 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 March 1993

        Check for updates

        Qualifiers

        • article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader