source: project/chicken/trunk/manual/Overview @ 9339

Last change on this file since 9339 was 9339, checked in by Ivan Raikov, 12 years ago

Added Overview chapter.

File size: 1.9 KB
Line 
1== Overview
2
3'''CHICKEN is a compiler that translates Scheme source files into C''', which in
4turn can be fed to a C-compiler to generate a standalone executable.
5An interpreter is also available and can be used as
6a scripting environment or for testing programs before compilation.
7
8This package is distributed under the '''BSD license''' and as such is free
9to use and modify.
10
11The method of compilation and the design of the runtime-system follow
12closely Henry Baker's [[http://home.pipeline.com/~hbaker1/CheneyMTA.html|CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A.]] paper and expose a number of interesting
13properties:
14
15* Consing (creation of data on the heap) is relatively inexpensive, because a generational garbage collection scheme is used, in which short-lived data structures are reclaimed extremely quickly.
16
17* Moreover, {{call-with-current-continuation}} is practically for free and CHICKEN does not suffer under any performance penalties if first-class continuations are used in complex ways.
18
19The generated C code is fully tail-recursive.
20
21=== Features
22
23Some of the features supported by CHICKEN:
24
25* SRFIs 0, 1, 2, 4, 6-19, 23, 25-31, 37-40, 42, 43, 45, 47, 55, 57, 60-63, 66, 69, 72, 78, 85 and 95.
26* Lightweight threads based on first-class continuations
27* Pattern matching with Andrew Wright's {{match}} package
28* Record structures
29* Extended comment- and string-literal syntaxes
30* Libraries for regular expressions, string handling
31* UNIX system calls and extended data structures
32* Create interpreted or compiled shell scripts written in Scheme for UNIX or Windows
33* Compiled C files can be easily distributed
34* Allows the creation of fully self-contained statically linked executables
35* On systems that support it, compiled code can be loaded dynamically
36
37This manual is merely a reference for the CHICKEN system and assumes
38a working knowledge of Scheme.
39
40----
41Back to [[The User's Manual]]
Note: See TracBrowser for help on using the repository browser.