Gauche (Scheme implementation)
{{inline|date=September 2016}}
{{Infobox Software
| name = Gauche
| logo =
| screenshot =
| caption =
| developer = Shiro Kawai
| released = {{Start date and age|2001|01|11|df=yes}}
| latest release version = {{wikidata|property|preferred|references|edit|P348|P548=Q2804309}}
| latest release date = {{Start date and age|{{wikidata|qualifier|preferred|single|P348|P548=Q2804309|P577}}|df=yes}}
| operating_system = Cross-platform
| genre = Programming language
| license = BSD License
| website = {{URL|practical-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
- 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
{{reflist}}
;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.
External links
- [http://practical-scheme.net/gauche/ Gauche home page]
- [http://practical-scheme.net/gauche/man/gauche-refe.html Gauche reference manual]
- [http://practical-scheme.net/gauche/devinfo.html Gauche development progress & plan]
- [http://practical-scheme.net/gauche/features.html Standards conformance and platform list]
- [http://practical-scheme.net/docs/jlugm2000.html Shooting A Moving Target - An Experience in Developing a Production Tracking Database]
- [https://web.archive.org/web/20111001132005/http://users.lava.net/~shiro/Private/essay/gdc2002.html Tracking Assets in the Production of 'Final Fantasy: The Spirits Within']
- [http://practical-scheme.net/docs/ILC2002.html Gluing Things Together - Scheme in a Real-time CG Content Production]
Category:Scheme (programming language) interpreters
Category:Scheme (programming language) implementations
Category:Free and open source interpreters
Category:Cross-platform free software
Category:Software using the BSD license
{{free-software-stub}}
{{compu-prog-stub}}