permacomputing

Source repository for the main permacomputing wiki site
git clone http://git.permacomputing.net/repos/permacomputing.git # read-only access
Log | Files | Refs

C.mdwn (1745B)


      1 **C** is a general-purpose programming language created in the 1970s for the system programming needs of the [[Unix]] operating system.
      2 
      3 The main benefit of C is that it is ubiquitous and quite mature. There are C compilers for nearly any imaginable processor architecture, and relatively old code often compiles quite well.
      4 
      5 Compiled C code is generally quite resource-efficient. The speeds of compiled languages are often compared to C.
      6 
      7 There are also languages whose compilers can produce C code to be compiled by a C compiler. These languages thus benefit from the optimization features and platform support of the C compilers:
      8 
      9   * [[Nim]]
     10   * [[V]]
     11 
     12 Interpreted languages implemented in C:
     13 
     14   * [[Lua]]
     15   * [[Perl]]
     16   * [[Ruby]]
     17   * [[Python]]
     18 
     19 As a language, C has many problems that subsequent languages have tried to fix with varying degrees of success. Examples of such languages:
     20 
     21   * [[C++]]
     22   * [[Objective-C]]
     23   * [[D]]
     24   * [[Go]]
     25   * [[Rust]]
     26   * [[Nim]]
     27 
     28 Compilers:
     29 
     30   * GCC
     31   * Clang
     32   * [[Zig]] has a C/C++ compiler that produces much smaller binaries (even static ones) than the mainstream GCC and Clang toolchains.
     33   * [Open Watcom](http://www.openwatcom.org/) is a C/C++/Fortran compiler usable for targeting legacy x86 operating systems such as [[DOS]].
     34   * [Tiny C Compiler](https://bellard.org/tcc/) is a small (100+ KB) standalone C compiler for "modern" x86 and ARM targets (i.e. [[Linux]] but not [[DOS]]).
     35   * [vbcc](http://www.compilers.de/vbcc.html) is an optimizing C99 compiler particularly suitable for some legacy targets such as [[68000]] and [[6502]].
     36   * [cproc](https://sr.ht/~mcf/cproc) and [other compilers](https://c9x.me/compile/users.html) based on [the QBE compiler backend](https://c9x.me/compile).