[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH]doco What is Guile?
[PATCH]doco What is Guile?
Mon, 17 Nov 2003 22:47:48 GMT
First, I thought I'd point out that I believe all the instances of
@page before new chapters are silly, because that's what
@setchapternewpage is for. So maybe someone ought to remove all
I also think all instances of Revised^5 et al throughout the manual
should be replaced with a macro call, but I am not in TeX testing mode
right now (it's the whole "no X" thing, probably).
Anyway, here is "What is Guile?" You may want to revise the new list
I copied from guile-tut.texi.
Changelog and Info output follow. As always, not all changes will be
visible in Info output.
2003-11-17 Stephen Compall <address@hidden>
* intro.texi (What is Guile?): Add @acronym for POSIX, R5RS, GUI,
Conclude linking libguile.
Say what one can find *for*.
Copy (probably somewhat inaccurate) list of Guile parts from
guile-tut.texi, reformatted as itemized list, with some items I
didn't like removed.
What is Guile?
Guile is an interpreter for the Scheme programming language, packaged
for use in a wide variety of environments. Guile implements Scheme as
described in the Revised^5 Report on the Algorithmic Language Scheme
(usually known as R5RS), providing clean and general data and control
structures. Guile goes beyond the rather austere language presented in
R5RS, extending it with a module system, full access to POSIX system
calls, networking support, multiple threads, dynamic linking, a foreign
function call interface, powerful string processing, and many other
features needed for programming in the real world.
Like a shell, Guile can run interactively, reading expressions from
the user, evaluating them, and displaying the results, or as a script
interpreter, reading and executing Scheme code from a file. However,
Guile is also packaged as an object library, allowing other applications
to easily incorporate a complete Scheme interpreter. An application can
then use Guile as an extension language, a clean and powerful
configuration language, or as multi-purpose "glue", connecting
primitives provided by the application. It is easy to call Scheme code
from C code and vice versa, giving the application designer full
control of how and when to invoke the interpreter. Applications can
add new functions, data types, control structures, and even syntax to
Guile, creating a domain-specific language tailored to the task at
hand, but based on a robust language design.
Guile's module system allows one to break up a large program into
manageable sections with well-defined interfaces between them. Modules
may contain a mixture of interpreted and compiled code; Guile can use
either static or dynamic linking to incorporate compiled code. Modules
also encourage developers to package up useful collections of routines
for general distribution; as of this writing, one can find Emacs
interfaces, database access routines, compilers, GUI toolkit interfaces,
and HTTP client functions, among others, packaged as Guile modules.
You could call Guile all these things added together:
* standard Scheme (R5RS)
* extensions to R5RS offered by SCM
* some extra primitives offered by Guile (e.g. `catch'/`throw')
* embeddable Scheme interpreter library (libguile)
* multiple threads
* POSIX library
* Regular expression library (rx)
In the future, we hope to expand Guile to support other languages
like Tcl and Perl by translating them to Scheme code. This means that
users can program applications which use Guile in the language of their
choice, rather than having the tastes of the application's author
imposed on them.
Stephen Compall or s11 or sirian
Three o'clock in the afternoon is always just a little too late or a little
too early for anything you want to do.
-- Jean-Paul Sartre
[Hello to all my friends and fans in domestic surveillance] BROMURE
SSL Vickie Weaver Agfa high security mindwar president Lon Horiuchi
Chobetsu SP4 Nazi Defcon USDOJ airframe
- [PATCH]doco What is Guile?,
Stephen Compall <=