DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(guile.info.gz) What is Guile?

Info Catalog (guile.info.gz) Manual Conventions (guile.info.gz) Top (guile.info.gz) Whirlwind Tour
 
 4 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
 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.
 
    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.
 
Info Catalog (guile.info.gz) Manual Conventions (guile.info.gz) Top (guile.info.gz) Whirlwind Tour
automatically generated byinfo2html