*** Welcome to piglix ***

Chicken Scheme

CHICKEN Scheme
Logo for CHICKEN Scheme
Original author(s) Felix Winkelmann
Developer(s) The CHICKEN Team
Initial release July 20, 2000; 16 years ago (2000-07-20)
Stable release
4.11.0 / May 28, 2016; 7 months ago (2016-05-28)
Development status Active
Written in Scheme and C
Operating system Cross-platform
Standard(s) R5RS (mostly), R7RS (not in core)
Type Programming language
License BSD License
Website call-cc.org

CHICKEN is a compiler and interpreter for the Scheme programming language that compiles Scheme code to standard C. It is mostly R5RS compliant and offers many extensions to the standard. The newer R7RS standard is supported through an extension library. CHICKEN is free software available under the BSD license. It is implemented mostly in Scheme, with some parts in C for performance or to make embedding into C programs easier.

CHICKEN's focus is immediately clear from its tagline: "A practical and portable Scheme system".

CHICKEN's other goal is to be portable. By compiling to portable C (like Gambit and Bigloo), programs written in CHICKEN can be compiled for common popular platforms like Linux, Mac OS X and other Unix-like systems as well as Windows, Haiku and the mobile platforms iOS and Android. It also has built-in support for cross-compilation of programs and extensions, which allows it to be used on various embedded platforms.

Like many Scheme compilers, CHICKEN uses standard C as an intermediate language. A Scheme program is translated into C by the CHICKEN compiler, and then a C compiler translates the C program into machine code for the target architecture, producing an executable program. The universal availability of C makes it ideal for this purpose.

CHICKEN's design was inspired by a 1994 paper by Henry Baker that outlined an innovative strategy for Scheme compilation into C. A Scheme program is compiled into C functions. These C functions never reach the return statement; instead, they call a new continuation when complete. These continuations are C functions themselves and are passed on as extra arguments to other C functions. They are calculated by the compiler.


...
Wikipedia

...