STklos is a
Scheme A scheme is a systematic plan for the implementation of a certain idea.
Scheme or schemer may refer to:
Arts and entertainment
* ''The Scheme'' (TV series), a BBC Scotland documentary series
* The Scheme (band), an English pop band
* ''The Schem ...
implementation that succeeded STk. It is a bytecode compiler with an ad hoc virtual machine which aims to be fast as well as light.
STklos is free software, released under the
GNU General Public License
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the Four Freedoms (Free software), four freedoms to run, study, share, and modify the software. The license was th ...
.
In addition to implementing most of R
5RS, and a large part of R
7RS, STklos supports:
* an object system based on
CLOS with
multiple inheritance,
generic function
In computer programming, a generic function is a function defined for polymorphism.
In statically typed languages
In statically typed languages (such as C++ and Java), the term ''generic functions'' refers to a mechanism for ''compile-time pol ...
s,
multimethods
Multiple dispatch or multimethods is a feature of some programming languages in which a function or method can be dynamically dispatched based on the run-time (dynamic) type or, in the more general case, some other attribute of more than one of ...
and a
MOP
A mop (such as a floor mop) is a mass or bundle of coarse strings or yarn, etc., or a piece of cloth, sponge or other absorbent material, attached to a pole or stick. It is used to soak up liquid, for cleaning floors and other surfaces, to mop ...
* a module system
* easy connection with the
GTK toolkit
* a low-level macro system that compiles macro expanders into bytecode (syntax-rules is also present as a high-level macro system)
* a full
Numerical tower
In Scheme (programming language), Scheme and in Lisp (programming language), Lisp dialects inspired by it, the numerical tower is a set of data types that represent numbers and a logic for their hierarchical organisation.
Each type in the tower c ...
implementation, as defined in R
7RS
*
Unicode
Unicode, formally The Unicode Standard,The formal version reference is is an information technology Technical standard, standard for the consistent character encoding, encoding, representation, and handling of Character (computing), text expre ...
support
* Perl compatible regular expressions via
PCRE
Perl Compatible Regular Expressions (PCRE) is a library written in C, which implements a regular expression engine, inspired by the capabilities of the Perl programming language. Philip Hazel started writing PCRE in summer 1997. PCRE's syntax i ...
library
* a simple
foreign function interface via
libffi
libffi is a foreign function interface library. It provides a C programming language interface for calling natively compiled Subroutine, functions given information about the target Subroutine, function at Run time (program lifecycle phase), run ...
* being compiled as a library and embedded in an application
* native threads, using the
libpthread library. The API conforms to SRFI-18
* a number of
SRFIs
* easy access to
SLIB
* an HTTP client
Additional libraries are available through its package system ScmPkg.
References
External links
STklos home page
Scheme (programming language) interpreters
Scheme (programming language) implementations
{{compu-prog-stub