C: Difference between revisions
Line 8: | Line 8: | ||
But even though C was designed from the outset as a systems language it does have some peculiar deficiencies that have never been fixed altogether, it is much slower than most other Algol family languages in doing I/O, to a point where even interpreted versions of Pascal and [[Basic]] can be considerably faster performing I/O than compiled C code. For this reason C has never really caught on as a programming language on mainframes and most minicomputer systems to the degree it has on PC's and [[UNIX]] systems, especially if they have registered I/O and file systems. Those systems rely to a much higher degree on throughput than processing power vis-a-vis PC's and workstations, so languages like [[FORTRAN]] and [[PL/I]] have tended to survive in those environments. | But even though C was designed from the outset as a systems language it does have some peculiar deficiencies that have never been fixed altogether, it is much slower than most other Algol family languages in doing I/O, to a point where even interpreted versions of Pascal and [[Basic]] can be considerably faster performing I/O than compiled C code. For this reason C has never really caught on as a programming language on mainframes and most minicomputer systems to the degree it has on PC's and [[UNIX]] systems, especially if they have registered I/O and file systems. Those systems rely to a much higher degree on throughput than processing power vis-a-vis PC's and workstations, so languages like [[FORTRAN]] and [[PL/I]] have tended to survive in those environments. | ||
==OS/2 implementations | ==Implementations== | ||
===OS/2 1.x=== | |||
Hosted language implementations that produce OS/2 16-bit object code | |||
* [[IBM C/2]] | |||
* [[Lattice C]] | |||
* [[Microsoft C]] | |||
* [[TopSpeed C]] | |||
* [[Watcom C]] | |||
* [[Zortech C++]] | |||
===OS/2 2.x=== | |||
Hosted Language implementations that produce OS/2 32-bit object code | |||
<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2"> | <div style="column-count:2;-moz-column-count:2;-webkit-column-count:2"> | ||
* [[Borland C++]] - | * [[Borland C++]] (1993-1996) | ||
* | * FSF GNU Compiler Collection (GCC) (Open Source) | ||
* | ** GCC/2 | ||
* [[ | ** [[emx]] GCC | ||
* [[ | ** [[Innotek GCC]] | ||
* [[IBM C Set/2]] | * [[IBM C Set/2]] | ||
* [[IBM C Set++ for OS/2]] | * [[IBM C Set++ for OS/2]] | ||
* [[VisualAge C++|IBM VisualAge C++]] | * IBM [[VisualAge C++|IBM VisualAge C++]] | ||
* [[Metaware High C/C++]] - also used for OS/2 PowerPC ELF | |||
* [[Metaware High C/C++]] - | * Microway NDP C | ||
* [[Open Watcom|OpenWatcom C/C++]] (Open Source) | |||
* NDP C | * Symantec [[Zortech C++]] (1992-1993) | ||
* [[Open Watcom|OpenWatcom C/C++]] | * Watcom C/386 | ||
* [[ | |||
* | |||
</div> | </div> | ||
There was also a port of Comeau C++ 3.x that was functional but never released as a product, although a few examples got released into the wild. | There was also a port of Comeau C++ 3.x that was functional but never released as a product, although a few examples got released into the wild. | ||
===Interpreter=== | ===Interpreter=== | ||
*Cint | *Cint - [https://root.cern.ch/drupal/content/cint Interpreter from CERN], intended for educational use | ||
==C libraries== | |||
If the compiler you use supports both C and C++, you can use C libraries with your C++ programs and vice versa, however using C++ libraries from C can be a bit kludgey and can require you to write bindings, while using C libraries with C++ is less problematic it can also require you to write some interfaces, take a look at the [[C++]] for available libraries. | If the compiler you use supports both C and C++, you can use C libraries with your C++ programs and vice versa, however using C++ libraries from C can be a bit kludgey and can require you to write bindings, while using C libraries with C++ is less problematic it can also require you to write some interfaces, take a look at the [[C++]] for available libraries. | ||
=== | ===Text UI libraries=== | ||
;Open source | |||
*[[nCurses]] - Text UI library | |||
*[[Public Domain Curses]] - Text UI library | |||
* [[nCurses]] - Text UI library | |||
* [[Public Domain Curses]] - Text UI library | |||
;Commercial | |||
* | *C-scape Interface Management System - Screen painter and UI library | ||
* [[ | *[[Greenleaf Data Windows]] - Text mode windows & UI | ||
* | *Neuron Data Open Interface - Screen painter/UI toolkit | ||
* [[ | *[[Panel Plus II]] - Screen painter and UI library | ||
====Other libraries | ===Graphics libraries=== | ||
;Open source | |||
*[[Cairo]] - 2D graphics library | |||
*[[Jpeglib]] - Read/write JPEG graphic files | |||
*[[Libpng]] - Read/write PNG files | |||
*[[SVGA-Kit and VESA-EMX]] - Graphic libraries | |||
*[[Pixman]] - Low level graphics library | |||
*[[Simple Directmedia Layer]] - Multimedia | |||
*[[WebM libvpx]] - VP8/VP9 streaming video | |||
;Commercial | |||
*IBM SAA Common User Access Controls Library/2 | |||
*XVT - Screen painter and UI library | |||
===Database libraries=== | |||
;Commercial | |||
*[[C/Database Toolchest]] - Database creation and maintenance | |||
*[[dbfLIB]] - [[xBase]] database library | |||
*[[e_Db]] - Database engine | |||
*[[Lattice dBC III]] - [[xBase]] database library | |||
;Open Source | |||
*[[libdbf]] - reads dbf files | |||
===Other libraries=== | |||
<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2"> | <div style="column-count:2;-moz-column-count:2;-webkit-column-count:2"> | ||
* [[Andy's Dynamic Link Library]] - Cross platform | ;Open Source | ||
* [[cstring]] - String manipulation | * [[Andy's Dynamic Link Library]] - Cross platform DLLs | ||
* [[CUtil]] - Common OS/2 functions | * [[cstring]] - String manipulation | ||
* [[Eco Common Lisp]] - Embedded scripting language | * [[CUtil]] - Common OS/2 functions | ||
* [[Eco Common Lisp]] - Embedded scripting language | |||
* [[FFTW]] - Fast Fourier Transforms | |||
* [[FFTW]] - Fast Fourier Transforms | * [[libcURL]] Internet communications library | ||
* [[Libxml2]] - [[XML]] parser | |||
* [[Libxslt]] - XSLT parser | |||
* [[libcURL]] Internet | * [[LZO]] - Compression library | ||
* [[Libxml2]] - [[XML]] parser | * [[LZ4]] - Compression library | ||
* [[Libxslt]] - XSLT parser | * [[OpenSSL]] - SSL & encryption | ||
* [[LZO]] - Compression | * [[POSIX Pthreads]] - BSD Pthreads library | ||
* [[LZ4]] - Compression | * [[Public Domain Project C Library]] - Alternative CLIB | ||
* [[OpenSSL]] - SSL & encryption | * [[shwild]] - Wildcard pattern matching | ||
* [[POSIX Pthreads]] - BSD Pthreads library | * [[S-Lang]] - Embeddable macro/script language | ||
* [[Public Domain Project C Library]] - Alternative CLIB | * [[Snappy]] - Compression library | ||
* [[shwild]] | * [[The Standard Function Library]] - Generic library | ||
* [[S-Lang]] - Embeddable macro/script | ;Commercial | ||
* [[Snappy]] - Compression | * [[e_Comm]] - Communications and networking | ||
* [[The Standard Function Library]] | * [[e_Fs]] - Virtual file system | ||
* [[Lattice Comm Library]] - ANSI C communication library | |||
* [[LC-Port]] - [[Lattice C]] porting library | |||
</div> | </div> | ||
==C source code snippets, archives and collections== | |||
Small programs or routines that you can integrate into your own programs or study to learn from, but are not delivered in library form. | Small programs or routines that you can integrate into your own programs or study to learn from, but are not delivered in library form. | ||
* [[PDCRC]] - CRC routines in C | ;Open source | ||
* [[OS/2 Primecuts]] - OS/2 API Examples | * [[PDCRC]] - CRC routines in C | ||
* [[OZPD]] - Sundry C routines and programs | * [[OS/2 Primecuts]] - OS/2 API Examples | ||
* [[Small examples of Workplace Shell programming]] | * [[OZPD]] - Sundry C routines and programs | ||
* [[Small examples of Workplace Shell programming]] | |||
==GUI and application generators with C output== | |||
* [[General Application Workbench]] - GUI, animation, help and SQL | ;Commercial | ||
* [[Hockware VisPro/C]] - GUI Creator | *[[General Application Workbench]] - GUI, animation, help and SQL | ||
* Intersolv GA Workbench | *[[Hockware VisPro/C]] - GUI Creator | ||
* [[Panel Plus II]] - Screen painter and UI library | *Intersolv GA Workbench | ||
*PCYACC/2 - CASE too with C output, targeted towards generating parsers etc. | *[[Panel Plus II]] - Screen painter and UI library | ||
*Vestronix Pro C - Database and spreadsheet application generator | *PCYACC/2 - CASE too with C output, targeted towards generating parsers etc. | ||
*Vestronix Pro C - Database and spreadsheet application generator | |||
==Translators that generate C output== | |||
* [[The APL c compiler project]] | * [[The APL c compiler project]] | ||
* [[flex]] - Scanner generator - Open source | * [[flex]] - Scanner generator - Open source | ||
* [[M2CC/C]] [[Modula-2]] > C - Commercial | * [[M2CC/C]] [[Modula-2]] > C - Commercial | ||
* [[Oracle Pro*C]] - SQL > C - Commercial | * [[Oracle Pro*C]] - SQL > C - Commercial | ||
* [[X2C]] - [[xBase]] to C compiler | * [[X2C]] - [[xBase]] to C compiler | ||
== | ==C Source Code Utilities== | ||
* [[CC-Rider C++]] - Commercial | * [[CC-Rider C++]] - Commercial - Static analyser, beautifier and visualiser. | ||
* [[DOC++]] - Automatic document generator - Open source | * [[DOC++]] - Automatic document generator - Open source | ||
* [[Ephedra]] - C/C++ to Java - Open source | * [[Ephedra]] - C/C++ to Java - Open source | ||
* [[Exuberant ctags]] - Creates index files out of C source files | * [[Exuberant ctags]] - Creates index files out of C source files | ||
* [[SourceLink]] - Commercial | * [[SourceLink]] - Commercial - Browser/Editor/Visualiser | ||
* [[Source Mapper]] - Open source | * [[Source Mapper]] - Open source - Visualiser | ||
;Static analyser | ;Static analyser | ||
* PC-Lint | * PC-Lint | ||
* [[Splint]] | * [[Splint]] | ||
== | ==Editor support== | ||
* [[Boxer]] - C support included by default | * [[Boxer]] - C support included by default | ||
* [[BRIEF]] - C support included by default | * [[BRIEF]] - C support included by default | ||
* [[Elvis]] - C syntax support included by default | * [[Elvis]] - C syntax support included by default | ||
* [[Enhanced Editor]] - Has syntax highlighting, auto-formatting and automatic code summary for C. | * [[Enhanced Editor]] - Has syntax highlighting, auto-formatting and automatic code summary for C. | ||
* [[FTE]] - Has support for syntax highlighting, code folding and syntax-aware auto-indent. | * [[FTE]] - Has support for syntax highlighting, code folding and syntax-aware auto-indent. | ||
* [[Lugaru Epsilon]] - C syntax highlighting, code folding and syntax-aware auto-indent | * [[Lugaru Epsilon]] - C syntax highlighting, code folding and syntax-aware auto-indent | ||
* [[NEdit]] - XFree86 - Auto-indent, autocomplete and syntax highlighting | * [[NEdit]] - XFree86 - Auto-indent, autocomplete and syntax highlighting | ||
* [[Preditor/2]] - C template with syntax highlighting | * [[Preditor/2]] - C template with syntax highlighting | ||
* [[SourceLink]] | * [[SourceLink]] - Browser/Editor/Visualiser | ||
====Applications with a C programming interface==== | ====Applications with a C programming interface==== | ||
Line 139: | Line 156: | ||
====C like scripting languages==== | ====C like scripting languages==== | ||
Note that this does not include full interpreters like [[Cint]], but either languages squarely intended to be scripted and/or embeddable interpreters. | Note that this does not include full interpreters like [[Cint]], but either languages squarely intended to be scripted and/or embeddable interpreters. | ||
* [[CEnvi]] - Shareware | * [[CEnvi]] - Shareware - Predecessor to ScriptEase (below). | ||
* [[C Scripting Language]] | * [[C Scripting Language]] | ||
* [[C Styled Script]] - Open source | * [[C Styled Script]] - Open source | ||
* [[ScriptEase]] - Commercial | * [[ScriptEase]] - Commercial | ||
==DOS implementations of C== | ==DOS implementations of C== |
Revision as of 22:50, 29 November 2018

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 world's second most popular programming language after Java and that alongside its widespread use as a systems language has meant that most C developments systems available have seen a lot of maintenance and are therefore in a relatively good standing when it comes to support for modern CPU architectures and systems vis a vis some other languages.
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, no more or less portable and no faster or slower either. What C is however is a systems language much like PL/I, i.e. it is designed from the outset to be able to program any function that a computer system requires and therefore provides a number of low level functions that are designed to aid in systems programming but are not necessarily useful in day to day programming.
This is in contrast to a number of other languages like Pascal that are domain specific or in other words are designed to perform well inside a specific functionality domain. This includes application, simulation, scripting or teaching languages et cetera, and these are not or were not originally meant to be used to write systems software with although you can coax them to do so in many cases or extend them to encapsulate functions needed for systems software.
But even though C was designed from the outset as a systems language it does have some peculiar deficiencies that have never been fixed altogether, it is much slower than most other Algol family languages in doing I/O, to a point where even interpreted versions of Pascal and Basic can be considerably faster performing I/O than compiled C code. For this reason C has never really caught on as a programming language on mainframes and most minicomputer systems to the degree it has on PC's and UNIX systems, especially if they have registered I/O and file systems. Those systems rely to a much higher degree on throughput than processing power vis-a-vis PC's and workstations, so languages like FORTRAN and PL/I have tended to survive in those environments.
Implementations
OS/2 1.x
Hosted language implementations that produce OS/2 16-bit object code
OS/2 2.x
Hosted Language implementations that produce OS/2 32-bit object code
- Borland C++ (1993-1996)
- FSF GNU Compiler Collection (GCC) (Open Source)
- GCC/2
- emx GCC
- Innotek GCC
- IBM C Set/2
- IBM C Set++ for OS/2
- IBM IBM VisualAge C++
- Metaware High C/C++ - also used for OS/2 PowerPC ELF
- Microway NDP C
- OpenWatcom C/C++ (Open Source)
- Symantec Zortech C++ (1992-1993)
- Watcom C/386
There was also a port of Comeau C++ 3.x that was functional but never released as a product, although a few examples got released into the wild.
Interpreter
- Cint - Interpreter from CERN, intended for educational use
C libraries
If the compiler you use supports both C and C++, you can use C libraries with your C++ programs and vice versa, however using C++ libraries from C can be a bit kludgey and can require you to write bindings, while using C libraries with C++ is less problematic it can also require you to write some interfaces, take a look at the C++ for available libraries.
Text UI libraries
- Open source
- nCurses - Text UI library
- Public Domain Curses - Text UI library
- Commercial
- C-scape Interface Management System - Screen painter and UI library
- Greenleaf Data Windows - Text mode windows & UI
- Neuron Data Open Interface - Screen painter/UI toolkit
- Panel Plus II - Screen painter and UI library
Graphics libraries
- Open source
- Cairo - 2D graphics library
- Jpeglib - Read/write JPEG graphic files
- Libpng - Read/write PNG files
- SVGA-Kit and VESA-EMX - Graphic libraries
- Pixman - Low level graphics library
- Simple Directmedia Layer - Multimedia
- WebM libvpx - VP8/VP9 streaming video
- Commercial
- IBM SAA Common User Access Controls Library/2
- XVT - Screen painter and UI library
Database libraries
- Commercial
- C/Database Toolchest - Database creation and maintenance
- dbfLIB - xBase database library
- e_Db - Database engine
- Lattice dBC III - xBase database library
- Open Source
- libdbf - reads dbf files
Other libraries
- Open Source
- Andy's Dynamic Link Library - Cross platform DLLs
- cstring - String manipulation
- CUtil - Common OS/2 functions
- Eco Common Lisp - Embedded scripting language
- FFTW - Fast Fourier Transforms
- libcURL Internet communications library
- Libxml2 - XML parser
- Libxslt - XSLT parser
- LZO - Compression library
- LZ4 - Compression library
- OpenSSL - SSL & encryption
- POSIX Pthreads - BSD Pthreads library
- Public Domain Project C Library - Alternative CLIB
- shwild - Wildcard pattern matching
- S-Lang - Embeddable macro/script language
- Snappy - Compression library
- The Standard Function Library - Generic library
- Commercial
- e_Comm - Communications and networking
- e_Fs - Virtual file system
- Lattice Comm Library - ANSI C communication library
- LC-Port - Lattice C porting library
C source code snippets, archives and collections
Small programs or routines that you can integrate into your own programs or study to learn from, but are not delivered in library form.
- Open source
- PDCRC - CRC routines in C
- OS/2 Primecuts - OS/2 API Examples
- OZPD - Sundry C routines and programs
- Small examples of Workplace Shell programming
GUI and application generators with C output
- Commercial
- General Application Workbench - GUI, animation, help and SQL
- Hockware VisPro/C - GUI Creator
- Intersolv GA Workbench
- Panel Plus II - Screen painter and UI library
- PCYACC/2 - CASE too with C output, targeted towards generating parsers etc.
- Vestronix Pro C - Database and spreadsheet application generator
Translators that generate C output
- The APL c compiler project
- flex - Scanner generator - Open source
- M2CC/C Modula-2 > C - Commercial
- Oracle Pro*C - SQL > C - Commercial
- X2C - xBase to C compiler
C Source Code Utilities
- CC-Rider C++ - Commercial - Static analyser, beautifier and visualiser.
- DOC++ - Automatic document generator - Open source
- Ephedra - C/C++ to Java - Open source
- Exuberant ctags - Creates index files out of C source files
- SourceLink - Commercial - Browser/Editor/Visualiser
- Source Mapper - Open source - Visualiser
- Static analyser
- PC-Lint
- Splint
Editor support
- Boxer - C support included by default
- BRIEF - C support included by default
- Elvis - C syntax support included by default
- Enhanced Editor - Has syntax highlighting, auto-formatting and automatic code summary for C.
- FTE - Has support for syntax highlighting, code folding and syntax-aware auto-indent.
- Lugaru Epsilon - C syntax highlighting, code folding and syntax-aware auto-indent
- NEdit - XFree86 - Auto-indent, autocomplete and syntax highlighting
- Preditor/2 - C template with syntax highlighting
- SourceLink - Browser/Editor/Visualiser
Applications with a C programming interface
- PostgreSQL - SQL relational database system.
C like scripting languages
Note that this does not include full interpreters like Cint, but either languages squarely intended to be scripted and/or embeddable interpreters.
- CEnvi - Shareware - Predecessor to ScriptEase (below).
- C Scripting Language
- C Styled Script - Open source
- ScriptEase - Commercial
DOS implementations of C
Compilers
- Aztec C86 by Manx Software Systems - Commercial - Discontinued
- Borland Turbo C - Commercial, some versions now freeware
- C386 - Open source - Current
- Computer Innovations C86 - Commercial - Discontinued
- C/86 - Simple single pass C compiler from Norell Data Systems - Discontinued
- Desmet C - Was commercial - now open source
- Dev86dos - Open source - Current - Kludgy
- ECO-C88 - Commercial - Discontinued
- EMX Compiler - Open Source - Discontinued
- IBM PC C Compiler - Commercial - Discontinued
- Intel 386/486 C Code Builder Kit - Commercial - Discontinued
- LADSoft CC386 - Open source - Discontinued
- Lattice C - Commercial - Discontinued
- Let's C - Commercial - Discontinued - Primarily intended for educational purposes
- LSI-C86 - Commercial - Current
- Mark Williams C - Commercial - Discontinued
- Metaware High C/C++ - Commercial - Discontinued
- Microsoft C - Commercial - Discontinued
- Microsoft QuickC - 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
- Small-C - Public Domain
- Sphinx C-- - Minimalistic C - Open source - Discontinued
- SuperC - Commercial - Discontinued
- TCC - Open source - Discontinued - Cross compilation from Windows or Linux only.
- TopSpeed C - Commercial - Discontinued
- Wizard C - Commercial - Discontinued
- Zortech C++ - Commercial - Discontinued
Interpreters
- Cint - Open source - Current - Interpreter from CERN, intended for educational use
- Gimpel Software C-pret
- Rational Instant-C
- Lifeboat Associates RUN/C
DOS libraries
- C/Database Toolchest - Library for database creation and maintenance - Commercial - Current
- e_Db - Database engine - Commercial - Discontinued
- Greenleaf Data Communications - Commercial - Discontinued
- Greenleaf Data Windows - Text mode windows & UI - Commercial - Discontinued
- The Greenleaf functions - Commercial - Discontinued
- libdbf - reads dbf files - Open source - Discontinued
- Public Domain Curses - Text UI library - Open Source - Current
- Public Domain Project C Library - Alternative CLIB - Open Source - Current
- The Standard Function Library - Generic library - Open Source - Discontinued
- Vitamin C - Multi-platform UI library - Commercial - Discontinued
DOS C database bindings
- Empress - Commercial - Discontinued
DOS text & programmers editors with C support
- Boxer - C support included by default - Commercial - Discontinued
- BRIEF - Commercial - Discontinued
- Elvis - C syntax support included by default - Open source - Current
- FTE - Has support for syntax highlighting, code folding and syntax-aware autoindent.
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.
- e_Db - Database engine - Commercial - Discontinued
- libdbf - reads dbf files - Open source - Discontinued
- Public Domain Curses - Text UI library - Open Source - Current
Publications
- Nabajyoti Barkakati: Microsoft C Bible - SAMS 1988 - Applies to Microsoft C 5.1, but also contains some other useful info.
- The Journal of C Language Translation - Magazine on advanced C topics, published from 1989 to 1993, freely downloadable in a PDF format.
- Anthony S. Rudd: C. for Non-C Programmers - 1993 - John Wiley & Sons - ISBN 089435468X
- Anthony S. Rudd: Mastering C - 1994 - Wiley/QED, ISBN 0-471-60820-3
- Kris Jamsa: The Quick Reference Guide to C. Run-time Library - Microsoft Press 1989, ISBN 1-55615-227-2
- Kris Jamsa: The C Library - Osborne/McGraw-Hill 1985, ISBN 0-07-881110-4
- Not as you might think a discussion of the Microsoft C library, but rather a collection of C routines and utilities written in C, most of them UNIX derived or inspired and a couple of them uncommon.
Local articles
- Finn Overgaard Hansen: 12 Common C Errors - Outdated but still somewhat useful especially for beginners and intermediate users.
- Tutorials and other learning material
- EDM/2 has its own C tutorial, it's called simply Introduction to C Programming, and was written by Carsten Whimster:
- Aalto University and the University of Helsinki have a free course in C called Aalto-C
- MIX Software has a number of video courses available that focus on teaching C, these are focused primarily towards the beginner, note that these are delivered in VHS cassette format.
Links
- comp.lang.c.moderated - Moderated C discussion group
- comp.lang.c Frequently Asked Questions - FAQ compiled by Steve Summit
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 early 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.
- 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.