C language

The most common modern systems programming language to date, by Brian Kernighan and Dennis M. Ritchie (K&R); also the topic for the C language family. It's low-level, and the typing is rather weak. It was designed in the late '70s as a portable assembler for the PDP series (nominally compatible machines but with various word lengths), and it is still the state of the art in that area, although, as a systems programming language, it is more adapted to the PDP-11 than to modern architectures.

In the late '80s, the small and elegant `K&R' C became the prey of an ANSI standards commitee; it is now ANSI Standard C.

Many people build typing systems on top of C. C++ was at first an extensions of C via a cfront preprocessors/code generator. Objective-C is derived from the GCC C compiler front end via the GCC abstract syntax tree interface.

It is very typical in C to create function pointers, and tables of function pointers to build OO concepts. The GNOME Glib for example builds an object layer on top of C with many interfaces to other languages. Objective-C and C++ solidify the layout of these structures without changing the underlying language drastically.

C# and Java are more distant relatives of C that give you many more user definable types and other advanced language features are and somewhat backwards compatible.

Via the GCC abstract syntax tree it is possible to do full extension to C like languages and inject meta-level code.

In the '80s, C (in our opinion wrongly) became the language of choice for general purpose programming. C offers absolutely no particular interest when cut from all its standard compilers and libraries, since you can no longer port existing software. As TUNES won't support any standard C library (at least as support for native code), and requires a different compiler anyway, because its semantics is so much different, C offers no interest on top of TUNES. Thus, C just has nothing to do with TUNES, except perhaps as a layer between TUNES and a POSIX compliant system, if TUNES is to be implemented as an application under such system (see the OTOP subproject).

The C language family:


Pages in this topic: C#   C++   C--   CLIPS   Cyclone   D   Java   Objective-C   Small C   Vault  


Also linked from: `c   Agnix   AmigaOS   Apostle   AspectC/C++   BASIC   Brian Kernighan   C Compiler dlopen VM   ccg   Clump   Confluence   Continuation-Passing Style   Dennis M. Ritchie   EUMEL   FISh   Flua   Foreign Function Interface   Forklift   Forth is NOT intrinsically slow   Gont   Grain   hOp   Icon   Janus   Libero   Meta-System Transition   Microkernel   Microkernel Debate   NIAL   OCAML   Parsing   POSIX   Process   Programming Language   Ravi   Ruby   SAC   Security   Sheep   SWIG   Topsy   TUNES C-Translator   Type System   Unity Project   Unix   VxWorks   Zero Memory Widget   Zpl