C
Description
A weakly typed imperative language in the CPL branch of the Algol family of programming languages, the predecessor to C++ and a direct descendant of BCPL although it uses a very different syntax. Currently the worlds second most popular programming language after Java.
C is often erroneously described as being "closer to the hardware" than other languages, and this is used to explain why it is faster and less portable than "language x". In fact C is no closer or further from the metal than any other similar language in the Algol branch and no faster or slower either, what it is however is a systems language, i.e. it is designed to be able to program any function that a computer system provides while other languages are application, simulation, domain specific or teaching languages that are not or were not originally meant to be used to write systems software with.
A list of OS/2 implementations of C
- Borland C/C++ - Commercial - Discontinued
- Cint - Open source - Current - Interpreter from CERN, intended for educational use
- EMX Compiler - Open Source - Discontinued
- GCC C/C++ Compiler and Linker - Open Source - Current
- Innotek GCC - Open Source - Discontinued
- IBM C/2 - Commercial for 16 bit OS/2 only - Discontinued
- IBM C Set/2 - Commercial - Discontinued
- IBM VisualAge C++ Version 3.0 for OS/2 - Commercial - Discontinued
- IBM C and C++ Compilers, Version 3.6.5 - Commercial - Discontinued
- IBM VisualAge C++ Professional 4.0 - Commercial - Discontinued
- Lattice C - Commercial - Discontinued
- Metaware High C/C++ - Commercial - Discontinued
- Microsoft C - Commercial - Discontinued.
- OpenWatcom C/C++ - Open Source - Current
- TopSpeed C - Commercial - Discontinued
- Zortech C++ - Commercial - Discontinued
Libraries
- C/Database Toolchest - Library for database creation and maintenance - Commercial - Current.
- dbfLIB - A tool that allows you to work with xBase databases - Commercial - Discontinued.
- Lattice Comm Library - ANSI C communication library - Commercial - Discontinued.
- Lattice dBC III - A tool that allows you to work with xBase databases - Commercial - Discontinued.
- libcURL Internet comms lib. - Open Source - Current
- nCurses Text UI library - Open Source - Current
- Public Domain Curses Text UI library - Open Source - Current
GUI and application generators with C output
- General Application Workbench - GUI, animation, help and SQL - Commercial - Discontinued
- Hockware VisPro/C - GUI Creator - Commercial - Discontinued
- PCYACC/2 - CASE too with C output, targeted towards generating parsers etc. - Commercial - Discontinued
- Vestronix Pro C - Database and spreadsheet application generator - Commercial - Discontinued
Translators that generate C output
- The APL c compiler project - Open source - Current.
- Oracle Pro C - SQL > C - Commercial - Discontinued
- X2C - xBase to C compiler - Open Source - Current
Editors with C support
- jEdit - Java based - Open source - Current
Code verifiers, beautifiers, visualisers and other C source code utilities
- CC-Rider C++ - Commercial - Discontinued - Static analyser, beautifier and visualiser.
- Source Mapper - Open source - Discontinued - Visualiser.
- Splint - Open source - Current - Static analyser.
A list of DOS implementations of C
- Borland C/Turbo C - Commercial - Discontinued - Some versions now freeware
- Cint - Open source - Current - Interpreter from CERN, intended for educational use
- Desmet C - Was commercial - now open source.
- Dev86dos - Open source - Current - Kludgy
- ECO-C88 - Commercial - Discontinued
- EMX Compiler - Open Source - Discontinued
- Intel C Code Builder - Commercial - Discontinued.
- Lattice C - Commercial - Discontinued
- Let's C - Commercial - Discontinued - Primarily intended for educational purposes
- LSI-C - Freeware - Current - Cross compilation from Windows or Unices only. - English here
- Metaware High C/C++ - Commercial - Discontinued
- Microsoft C - Commercial - Discontinued.
- MIX C - Commercial - Discontinued
- NDP C - Commercial - Discontinued
- OpenWatcom C/C++ - Open Source - Current
- Pacific C - Commercial - Discontinued - Was shareware is now freeware
- Portable C - Open source - DOS and cross compilation for 68000 and AMD RISC processors.
- Power C - Commercial - Current
- Quick C - Commercial - Discontinued
- SuperC - Commercial - Discontinued
- TCC - Open source - Discontinued - Cross compilation from Windows or Linux only.
- TopSpeed C - Commercial - Discontinued
- Zortech C++ - Commercial - Discontinued.
DOS libraries
- C/Database Toolchest - Library for database creation and maintenance - Commercial - Current
A list of C implementations that run under WinOS/2
- Microsoft C - Commercial - Discontinued - Cross compilation from DOS or OS/2 only.
- OpenWatcom C/C++ - Open Source - Current
- TopSpeed C - Commercial - Discontinued - Cross compilation from DOS or OS/2 only
WinOS/2 compatible libraries
- C/Database Toolchest - Library for database creation and maintenance - Commercial - Current - Note that the correct library for Win16b development is called the DOS library (but contains Win 16b libs as well) and not the Windows one.
Publications
Local articles
Tutorials and other learning material
- MIX Software has a number of video courses available that focus on teaching C, these are focused primarily towards the beginner.
Links
USENET
- comp.lang.c.moderated - Moderated C discussion group - Go to the Google groups version if your ISP does not offer USENET access or you are in any other way newsgroup challenged.
Standards
- Early versions do not follow any standard apart from the C Reference Manual that was included with the UNIX system release and there were lots of C versions out there that were incompatible with each other, with every American university appearing to have its own minor variant for a while.
- In 1978 Brian Kernighan and Dennis Ritchie published "The C Programming Language" book which became an informal standard, referred to as "K&R C", the only problem being that it is not 100% internally coherent.
- ANSI committee X3J11 was formed in 1983 to standardise the language, compiler manufacturers started to talk about "ANSI C" almost immediately based upon drafts, but actually the ANSI X3.159-1989 standard was not ratified until 1989. This means that when working with old "ANSI C" compatible tools and code they may differ somewhat from the standard as they have been designed from working drafts rather than the finished standard.
- The ANSI X3.159-1989 was ratified by ISO in 1990 with only minor changes and that is the reason that the basic C standard is sometimes known as either C89 or C90
- The ISO/IEC JTC1/SC22/WG14 working group produced the ISO/IEC 9899:1999 which is known informally as "C99", note that there are three later additions/amendments to the standard and therefore not all C99 code is 100% compatible.
- In 2011 the ISO/IEC 9899:2011 or "C11" standard was introduced, while there is some language changes, the main changes are in the standard libraries.