Difference between revisions of "C programming language"

From Computer History Wiki
Jump to: navigation, search
(Derivation)
m (External links: +The origins of C)
 
Line 73: Line 73:
 
==External links==
 
==External links==
  
* [https://archive.org/stream/bstj57-6-1991/bstj57-6-1991_djvu.txt The C Programming Language] - the original [[BSTJ]] paper describing  
+
* [https://archive.org/stream/bstj57-6-1991/bstj57-6-1991_djvu.txt The C Programming Language] - the original [[BSTJ]] paper describing C
 
* [http://squoze.net/UNIX/bltj/06771914.pdf The Evolution of C - Past and Future]
 
* [http://squoze.net/UNIX/bltj/06771914.pdf The Evolution of C - Past and Future]
 
* [https://www.bell-labs.com/usr/dmr/www/ Dennis M. Ritchie] - see section "C and its immediate ancestors"
 
* [https://www.bell-labs.com/usr/dmr/www/ Dennis M. Ritchie] - see section "C and its immediate ancestors"
Line 81: Line 81:
 
** [https://www.bell-labs.com/usr/dmr/www/clcs.html The C Language Calling Sequence] - interesting note by DMR and SCJ
 
** [https://www.bell-labs.com/usr/dmr/www/clcs.html The C Language Calling Sequence] - interesting note by DMR and SCJ
 
** [https://www.bell-labs.com/usr/dmr/www/cchanges.pdf Recent Changes to C - November 15, 1978] - a few post-K+R changes
 
** [https://www.bell-labs.com/usr/dmr/www/cchanges.pdf Recent Changes to C - November 15, 1978] - a few post-K+R changes
 +
* [https://arstechnica.com/features/2020/12/a-damn-stupid-thing-to-do-the-origins-of-c/ “A damn stupid thing to do” — the origins of C] - starts at the beginning, with the CPL story
  
 
[[Category: Languages]]
 
[[Category: Languages]]
 
[[Category: C Language]]
 
[[Category: C Language]]

Latest revision as of 17:16, 8 July 2024

The C programming language was derived from an earlier programming language called B, itself derived from BCPL. There was next a short-lived intermediary language called NB, or New B. C can be crisply, and aptly, described as 'BCPL with types and terser syntax'.

A number of object-oriented languages have been influenced by C, including Objective-C, C++, D, Vala.

Dialects

There are two popular dialects, the original was K&R C, which spread with the original C compiler, and pcc, the portable C compiler. Later there was an ANSI standard for the C language, usually referred to as 'ANSI C'.

The C language evolved continuously starting in 1972. Some milestones:

  • 1972 - Primeval C - no struct, automatic variables can't be initialized.
  • 1973 - preprocessor added.
  • 1976? - Typesetter C - introduced long, unsigned, typedef, union, and changed =+ etc to +=.
  • 1978 - K&R C
  • 1989 - ANSI C

hello world

Ancient

char *hello "hello"; /* No = for initialization. */

main (argc, argv)
int argc;               /* Parameter declarations as in K&R. */
char **argv;
{
        char *world;    /* Auto variables can't be initialized. */
        world = "world";
        cprint ("%s %s\n", hello, world);       /* No stdio yet. */
}

K&R

#include <stdio.h>
main(argc,argv)
int argc;
char **argv;
{
        printf("Hello World\n");
        exit (0);
}

ANSI C

#include <stdio.h>
int main(int argc, char *argv[])
{
        printf("Hello World\n");
        return 0;
}

Compilers

See also

External links