| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Gauche is a script interpreter based on Scheme. Gauche conforms the language standard "Revised^5 Report on the Algorithmic Language Scheme" (R5RS), and supports various common libraries defined in SRFIs (http://srfi.schemers.org).
The goal of Gauche is to provide a handy tool for programmers and system administrators to handle daily works conveniently and efficiently in the production environment.
There are lots of Scheme implementations available, and each of them has its design emphasis and weaknesses. Gauche is designed with emphasis on the following criteria.
One of the situation Gauche is aiming at is in the production environment, where you write ten-lines throw-away script that may invoked very frequently. This includes CGI scripts as well. Gauche includes a set of most common features in its executable, while splits less common stuffs into libraries which are to be loaded on demand, to make itself start quickly.
We can no longer live happily in ASCII-only or 1-byte-per-character world. The practical language implementations are required to handle multibyte (wide) characters. Gauche supports multibyte strings natively, providing robust and consistent support than ad hoc library-level implementation. See section Multibyte Strings, for details.
Gauche has a simple module system to separate namespaces, which allows the developers to work in parallel without worrying name collision.
A powerful CLOS-like object system with MetaObject protocol (mostly compatible with STklos and Guile) is provided.
Although Scheme abstracts lots of details of the machine, sometimes you have to bypass these high-level layers and go down to the basement to make things work. Gauche has built-in support of most of POSIX.1 system calls. Other modules, such as networking module, usually provide both high-level abstract interface and low-level interface close to system calls.
No real application can be written without dealing with I/O. Scheme neatly abstracts I/O as a port, but defines least operations on it. Gauche uses a port object as a unified abstraction, providing utility functions to operate on the underlying I/O system. See section Input and Output, for the basic I/O support.
On the other hand, Gauche is not designed for applications such like high-performance number cruncher or very large scale database handling. It is an interpreter, after all.
You can still use Gauche as a "glue" language for such applications, however. For example, you can write a performance-critical part in another language that compiles to native code, and use Gauche to set up.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated by Shiro Kawai on October, 7 2008 using texi2html 1.78.