skip to main content
article
Free access

The development of the C language

Published: 01 March 1993 Publication History

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]
American National Standards Institute, American National Standard for Information Systems--Programming Language (7, X3.159-1989.
[2]
B. Anderson, 'Type syntax in the language C: an object lesson in syntactic innovalion,' SIGPLAN Notices 15 (3), March, 1980, pp. 21-27.
[3]
J.R. Bell, 'Threaded Code," C. ACM 16 (6), pp. 370-372.
[4]
R.H. Canaday and D. M. Riehie, 'Bell l.aboratories BCPL,' AT&T Bell Laborato- Lies inemal memorandum, May, 1969.
[5]
F.J. Corbat6, M. Me~win-Dagget, R. C. Daley, 'An Ex~ental Time-sharing Systern," AFIPS Conf. Proc. SICC, 1962, pp. 335-344,
[6]
B.J. Cox and A. J. Novobilski, Object.Oriented Programming: An Evolutionary Approach, Addison-Wesley: Reading, Mass., 1986. Second edition, 1991.
[7]
N, }I. Gehani and W. D. Roome, Concurrent C, Sificon Press: Summit, N J, 1989.
[8]
K. Jensen and N. Wirth, Pascal User Manual and Report, Springer-Vedag: New York, tteidelberg, Berfin. Second Edition, 1974.
[9]
S.C. Johnson and B. W. Kernighan, 'The Programming language B,' Coop. Sci. Tech. Report #8, AT&T Bell Laboratories (January 19"/3).
[10]
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.
[11]
S, (~. Johnson. 'A Portable Compiler: Theory and Practice," Proc. 5th ACM POPL Symposium (January 1978).
[12]
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.
[13]
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.
[14]
B.W. Kernighan and D. M. Ritchie, The C Programming Language, Prentice-Hall: Englewood Cliffs, NJ, 1978. Second edition, 1988.
[15]
B.W. Kernighan, 'Why Pascal is not my favorite programming language,' Comp. SoL Tech. Rep. # I00, AT&T Bell Laboratories, 198 I.
[16]
M.E. Lesk, 'A Portable I/O Package,' AT&T Bell Laboratories internal memorandum ca. 1973.
[17]
T. MacDonald, 'Arrays of variable length,' J. C Lang. Tram ! (3), Dec. 1989, pp. 215-233.
[18]
R.M. McClure, 'TMC~---A Syntax Directed Compiler,' Proc. 20th ACM National Conf. (1965), pp. 262-274.
[19]
M.D. McIIroy. 'Macro Instruction Extensions of Compiler Languages,' C. ACM 3 (4), pp. 214-220.
[20]
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.
[21]
B. Meyer, Object-oriented Software Construction, l:hrentice-Hall: Englewood Cliffs, NJ, 1988.
[22]
G. Nelson, Systems Progranvning with Modula-3, Prentice-flail: Eaglewood Cliffs, NJ, 1991.
[23]
E.I. OrganicL The Multics System: An Examination of its Structure, MIT Press: Cambridge, Mass., 1975.
[24]
M. Richards, 'The BCPI. Reference Manual,' Mrl" Project MAC Memorandum M- 352, luly 1967.
[25]
M. Richards and C. Whitbey-Strevens, BCPL: The Language and its Compiler, Cambridge Univ. Press: Cambridge, 1979.
[26]
D, M. Ritchie, 'UNIX: A Retrospective,' Bell Sys. Tech. J. 57 (6) (part 2), July--Aug, 1978.
[27]
D.M. Ritchie, "The Evolution of the UNIX Time-sharing System," AT&T Bell l.abs. Tech. J. 63 (8) ~art 2), Oct_ 1984.
[28]
13. M. Ritchie, 'Variable-size arrays in C,' J. C l,ang. Trans. 2 (2), Scpl. 1990, pp. 81-86.
[29]
R, Sethi, 'Uniform syntax for type expressions and declarators,' Soflw. Prac. and Exp. 11 (6), june 1981, pp. 623-628.
[30]
A. Snyder, A Portable Compiler for the Language (7, MIT: Cambridge. Mass., 1974.
[31]
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.
[32]
B, Stroustrup, The C+ + Programming Language, Addison-Wesley: Reading, Mass., 1986. Second edition, 1991.
[33]
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.
[34]
C* Programming Guide, Thinking Machines Corp.: Cambridge Mass., 1990.
[35]
K. Thompson, 'Bon~an Interactive Language,' undated AT&T Bell l.aboratorics internal memorandum (ca. 1969).
[36]
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.

Cited By

View all
  • (2024)New Generation of B Programming Language for Data Analysis Tasks2024 6th International Youth Conference on Radio Electronics, Electrical and Power Engineering (REEPE)10.1109/REEPE60449.2024.10479911(1-6)Online publication date: 29-Feb-2024
  • (2024)Memory security vulnerability detection based on fusion of fuzzy testing and contextual features2024 7th International Conference on Computer Information Science and Application Technology (CISAT)10.1109/CISAT62382.2024.10695374(914-918)Online publication date: 12-Jul-2024
  • (2024)Embedded Systems Programming Through eUCCvm, an Integrated Educational ToolComputer Science – CACIC 202310.1007/978-3-031-62245-8_5(65-77)Online publication date: 23-Jun-2024
  • Show More Cited By

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

Information & Contributors

Information

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
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: 01 March 1993
Published in SIGPLAN Volume 28, Issue 3

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)933
  • Downloads (Last 6 weeks)169
Reflects downloads up to 28 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)New Generation of B Programming Language for Data Analysis Tasks2024 6th International Youth Conference on Radio Electronics, Electrical and Power Engineering (REEPE)10.1109/REEPE60449.2024.10479911(1-6)Online publication date: 29-Feb-2024
  • (2024)Memory security vulnerability detection based on fusion of fuzzy testing and contextual features2024 7th International Conference on Computer Information Science and Application Technology (CISAT)10.1109/CISAT62382.2024.10695374(914-918)Online publication date: 12-Jul-2024
  • (2024)Embedded Systems Programming Through eUCCvm, an Integrated Educational ToolComputer Science – CACIC 202310.1007/978-3-031-62245-8_5(65-77)Online publication date: 23-Jun-2024
  • (2024)IntroductionData Analysis and Chemometrics for Metabolomics10.1002/9781119639398.ch1(1-25)Online publication date: 5-Jul-2024
  • (2023)DASS: Dynamic Adaptive Sub-Target Specialization2023 International Symposium on Computer Architecture and High Performance Computing Workshops (SBAC-PADW)10.1109/SBAC-PADW60351.2023.00016(36-45)Online publication date: 17-Oct-2023
  • (2022)Smart generation of code tracing questions for assessment in introductory programmingComputer Applications in Engineering Education10.1002/cae.2256731:1(5-25)Online publication date: 19-Sep-2022
  • (2021)Developing an Optical Measuring System for Hole Saw CapsSymmetry10.3390/sym1312231113:12(2311)Online publication date: 3-Dec-2021
  • (2021)Efficient Implementation of NIST LWC ESTATE Algorithm Using OpenCL and Web Assembly for Secure Communication in Edge Computing EnvironmentSensors10.3390/s2106198721:6(1987)Online publication date: 11-Mar-2021
  • (2021)Systementwicklung und Lifecycle ManagementEinführung in die Wirtschaftsinformatik10.1007/978-3-662-63560-5_6(323-417)Online publication date: 20-Nov-2021
  • (2020)Enabling High-Level Programming Languages on IoT Devices2020 19th RoEduNet Conference: Networking in Education and Research (RoEduNet)10.1109/RoEduNet51892.2020.9324882(1-6)Online publication date: 11-Dec-2020
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media