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.
- ANSI 89 American National Standards Institute, American National Standard for Information Systems--Programming Language (7, X3.159-1989.Google Scholar
- 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 ScholarDigital Library
- Bell 72 J.R. Bell, 'Threaded Code," C. ACM 16 (6), pp. 370-372. Google ScholarDigital Library
- Canaday 69 R.H. Canaday and D. M. Riehie, 'Bell l.aboratories BCPL,' AT&T Bell Laborato- Lies inemal memorandum, May, 1969.Google Scholar
- 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 Scholar
- Cox 86 B.J. Cox and A. J. Novobilski, Object.Oriented Programming: An Evolutionary Approach, Addison-Wesley: Reading, Mass., 1986. Second edition, 1991. Google ScholarDigital Library
- Gehani 89 N, }I. Gehani and W. D. Roome, Concurrent C, Sificon Press: Summit, N J, 1989.Google Scholar
- Jensen 74 K. Jensen and N. Wirth, Pascal User Manual and Report, Springer-Vedag: New York, tteidelberg, Berfin. Second Edition, 1974. Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- Johnson 78b S, (~. Johnson. 'A Portable Compiler: Theory and Practice," Proc. 5th ACM POPL Symposium (January 1978). Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- Kernighan 78 B.W. Kernighan and D. M. Ritchie, The C Programming Language, Prentice-Hall: Englewood Cliffs, NJ, 1978. Second edition, 1988. Google ScholarDigital Library
- 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 Scholar
- Lesk 73 M.E. Lesk, 'A Portable I/O Package,' AT&T Bell Laboratories internal memorandum ca. 1973.Google Scholar
- MacDonald 89 T. MacDonald, 'Arrays of variable length,' J. C Lang. Tram ! (3), Dec. 1989, pp. 215-233.Google Scholar
- McClure 65 R.M. McClure, 'TMC~---A Syntax Directed Compiler,' Proc. 20th ACM National Conf. (1965), pp. 262-274. Google ScholarDigital Library
- McIlroy 60 M.D. McIIroy. 'Macro Instruction Extensions of Compiler Languages,' C. ACM 3 (4), pp. 214-220. Google ScholarDigital Library
- 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 Scholar
- Meyer 88 B. Meyer, Object-oriented Software Construction, l:hrentice-Hall: Englewood Cliffs, NJ, 1988. Google ScholarDigital Library
- Nelson 91 G. Nelson, Systems Progranvning with Modula-3, Prentice-flail: Eaglewood Cliffs, NJ, 1991. Google ScholarDigital Library
- Organick 75 E.I. OrganicL The Multics System: An Examination of its Structure, MIT Press: Cambridge, Mass., 1975. Google ScholarDigital Library
- Richards 67 M. Richards, 'The BCPI. Reference Manual,' Mrl" Project MAC Memorandum M- 352, luly 1967.Google Scholar
- Richards 79 M. Richards and C. Whitbey-Strevens, BCPL: The Language and its Compiler, Cambridge Univ. Press: Cambridge, 1979. Google ScholarDigital Library
- Ritchie 78 D, M. Ritchie, 'UNIX: A Retrospective,' Bell Sys. Tech. J. 57 (6) (part 2), July--Aug, 1978.Google Scholar
- 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 Scholar
- Ritchie 90 13. M. Ritchie, 'Variable-size arrays in C,' J. C l,ang. Trans. 2 (2), Scpl. 1990, pp. 81-86.Google Scholar
- Sethi 81 R, Sethi, 'Uniform syntax for type expressions and declarators,' Soflw. Prac. and Exp. 11 (6), june 1981, pp. 623-628.Google Scholar
- Snyder 74 A. Snyder, A Portable Compiler for the Language (7, MIT: Cambridge. Mass., 1974.Google Scholar
- 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 Scholar
- Stroustrup 86 B, Stroustrup, The C+ + Programming Language, Addison-Wesley: Reading, Mass., 1986. Second edition, 1991. Google ScholarDigital Library
- 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 Scholar
- Thinking 90 C* Programming Guide, Thinking Machines Corp.: Cambridge Mass., 1990.Google Scholar
- Thompson 69 K. Thompson, 'Bon~an Interactive Language,' undated AT&T Bell l.aboratorics internal memorandum (ca. 1969).Google Scholar
- 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 Scholar
Index Terms
- The development of the C language
Recommendations
Layout-sensitive language extensibility with SugarHaskell
Haskell '12: Proceedings of the 2012 Haskell SymposiumProgrammers need convenient syntax to write elegant and concise programs. Consequently, the Haskell standard provides syntactic sugar for some scenarios (e.g., do notation for monadic code), authors of Haskell compilers provide syntactic sugar for more ...
Layout-sensitive language extensibility with SugarHaskell
Haskell '12Programmers need convenient syntax to write elegant and concise programs. Consequently, the Haskell standard provides syntactic sugar for some scenarios (e.g., do notation for monadic code), authors of Haskell compilers provide syntactic sugar for more ...
iCoLa: A Compositional Meta-language with Support for Incremental Language Development
SLE 2022: Proceedings of the 15th ACM SIGPLAN International Conference on Software Language EngineeringProgramming languages providing high-level abstractions can increase programmers’ productivity and program safety. Language-oriented programming is a paradigm in which domain-specific languages are developed to solve problems within specific domains ...
Comments