Gauche (Scheme implementation)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Gauche
DeveloperShiro Kawai
Initial release11 January 2001; 25 years ago (2001-01-11)
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemCross-platform
    TypeProgramming language
    LicenseBSD License
    Websitepractical-scheme.net/gauche/

    Gauche is an R7RS Scheme implementation. It is designed for scripting in a production environment. It is intended to allow programmers and system administrators to write scripts in support of daily operations. Quick startup, built-in system interface, native multilingual support are some of its key design goals.

    Gauche is free software under the BSD License. It is primarily developed by Shiro Kawai.

    Features

    [edit | edit source]
    • Quick startup - Gauche includes common features in its executable, while less common functions are in libraries which are loaded on demand.
    • Module system - A simple module system, API compatible to STklos.
    • Object system - CLOS-like object system with metaobject protocol. Almost API compatible to STklos. It is also similar to Guile's object system.
    • Native multilingual support - Strings are represented by multibyte string internally. You can use UTF-8, EUC-JP, Shift-JIS or no multibyte encoding. Conversion between native coding system and external coding system is supported by port objects.
    • Multibyte regexp - Regular expression matcher is aware of multibyte string; you can use multibyte characters both in patterns and matched strings.
    • Built-in system interface - Gauche has built-in support for most POSIX.1 system calls.
    • Network interface - Has API for socket-based network interface, including IPv6 if the OS supports it.
    • Multithreading - Multithreading is supported on top of pthreads. Scheme-level API conforms to SRFI-18.
    • DBM interface - Interfaces to dbm, ndbm and/or gdbm.
    • XML parsing - Oleg Kiselyov's SXML tools are included.

    References

    [edit | edit source]
    Notes
    • R. Kelsey, W. Clinger, J. Rees (eds.), Revised^5 Report on the Algorithmic Language Scheme, Higher-Order and Symbolic Computation, 11(1), September, 1998 and ACM SIGPLAN Notices, 33(9), October, 1998.
    • Carl Bruggeman, Oscar Waddell and R. Kent Dybvig, Representing control in the presence of one-shot continuations, in Proceedings of SIGPLAN '96, pp. 99-107, 1996.
    • Eugene Myers, An O(ND) Difference Algorithm and Its Variations, Algorithmica Vol. 1 No. 2, pp. 251-266, 1986.
    • Gregor Kiczales, Jim Des Rivieres, Daniel Bobrow, The Art of Metaobject Protocol, The MIT Press.
    • Kim Barrett, Bob Cassels, Paul Haahr, David A. Moon, Keith Playford, P. Tucker Withington, A Monotonic Superclass Linearization for Dylan, in Proceedings of OOPSLA 96, October 1996.
    [edit | edit source]