Computational Class
Programming Paradigms
Defined by
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
Implementations
Things written in C99
- 2iota, an interpreter for beta-Juliet
- belld.c, an implementation of belld
- bhuna, an interpreter for Bhuna
- brace.c, an implementation of brace
- cPython 2.6.7, an interpreter for Python
- Cygwin, an emulator for POSIX
- Erlang/OTP R13B, an interpreter for Erlang
- erlaunch.c, an implementation of erlaunch
- FreeBSD, an operating system for POSIX
- FreeDOS, an emulator for MS-DOS
- gcc 3.4, a compiler for ANSI C and C99
- hugs, an interpreter for Haskell
- kosheri (C), an interpreter for Kosheri
- Linux, an operating system for POSIX
- lua 5.0.3, an interpreter for Lua
- luakld (C), an implementation of luakld
- NASM, a compiler for NASM Assembler
- NetBSD, an operating system for POSIX
- OpenZz, an interpreter for Zz
- perl 5.8.8, an interpreter for Perl
- plt-r5rs, an interpreter for Scheme
- ruby 1.8.7, an interpreter for Ruby
- TiMidity++, an implementation of MIDI
- VICE, an emulator for Commodore 64, Commodore VIC-20 and Commodore BASIC 2.0
- xmp, an implementation of MED and Noisetracker MOD
Links
Commentary
When an implementation here says it requires C99, it (in theory)
means that the source files in it conform to the C99 standard.
These souce files generally are such that they would compile with the
-ansi flag except that they rely on libraries specified by the Single
UNIX Specification version 3 (also, and more popularly, known as POSIX)
to provide access to resources such as clock information and network sockets.
Most modern UNIX-like operating systems implement something approximating the POSIX interface. For Windows, compatibility layers such as Cygwin fill this role.
Note that the specification linked to is actually SUSv7, which is very similar to SUSv3, but unlike SUSv3 has freely-accessible documentation on the web.
Many of our C projects will compile both as C99 and as
ANSI C (perhaps omitting some features) by passing the environment
variable ANSI=yes to make.