Developer(s) | Scott G. Miller, Matthias Radestock |
---|---|
Stable release | 1.16.6 / February 27, 2007 |
Operating system | Cross-platform via JVM |
Type | Programming language |
License | GPL and MPL |
Website | sisc-scheme.org |
SISC is an R5RS Scheme implementation, which includes a full number tower, hygienic macros, proper tail recursion, and first class continuations. SISC is short for Second Interpreter of Scheme Code, in reference to its predecessor LISC, the Lightweight Interpreter of Scheme Code. [1]
SISC is free software, dual-licensed under the Mozilla Public License and the GNU General Public License, Version 2. It was developed by Scott G. Miller and Matthias Radestock.
SISC depends on Sun Microsystems' Java programming language platform. This runtime environment allows SISC to provide many extensions and libraries such as networking, exception handling, a module system, and a Java foreign function interface.
The SISC website claims that it performs faster than any other Scheme interpreter based on the Java Virtual Machine (JVM).
Like GNU Guile, this Scheme is suitable for embedding into larger programs, where Guile is designed for inclusion in C programs, SISC is designed for the JVM.
An interpreted language is a type of programming language for which most of its implementations execute instructions directly and freely, without previously compiling a program into machine-language instructions. The interpreter executes the program directly, translating each statement into a sequence of one or more subroutines, and then into another language.
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes what is required of a JVM implementation. Having a specification ensures interoperability of Java programs across different implementations so that program authors using the Java Development Kit (JDK) need not worry about idiosyncrasies of the underlying hardware platform.
Scheme is a programming language that supports multiple paradigms, including functional and imperative programming. It is one of the two main dialects of Lisp, alongside Common Lisp. Unlike Common Lisp, Scheme follows a minimalist design philosophy, specifying a small standard core with powerful tools for language extension.
Bytecode, also termed portable code or p-code, is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references that encode the result of compiler parsing and performing semantic analysis of things like type, scope, and nesting depths of program objects.
The GNU Compiler for Java (GCJ) is a free compiler for the Java programming language. It was part of the GNU Compiler Collection for over ten years but as of 2017 it is no longer maintained and will not be part of future releases.
SableVM was a clean room implementation of Java bytecode interpreter implementing the Java virtual machine (VM) specification, second edition. SableVM was designed to be a robust, extremely portable, efficient, and fully specifications-compliant Java Virtual Machine that would be easy to maintain and to extend. It is now no longer being maintained.
HotSpot, released as Java HotSpot Performance Engine, is a Java virtual machine for desktop and server computers, maintained and distributed by Oracle Corporation. It features improved performance via methods such as just-in-time compilation and adaptive optimization.
Jikes Research Virtual Machine is a mature virtual machine that runs programs written for the Java platform. Unlike most other Java virtual machines (JVMs), it is written in the programming language Java, in a style of implementation termed meta-circular. It is free and open source software released under an Eclipse Public License.
Scheme In One Defun, or humorously Scheme In One Day (SIOD) is a programming language, a dialect of the language Lisp, a small-size implementation of the dialect Scheme, written in C and designed to be embedded inside C programs. It is notable for being perhaps the smallest practical implementation of a Lisp-like language. It was written by George J. Carrette originally. It is free and open-source software released under a GNU Lesser General Public License (LGPL).
Tea is a high level scripting language for the Java environment. It combines features of Scheme, Tcl, and Java.
Bigloo is a programming language, a dialect of the language Lisp, an implementation of the language Scheme. It is developed at the French IT research institute French Institute for Research in Computer Science and Automation (INRIA). It is oriented toward providing tools for effective and diverse code generation that can match the performance of hand-written C or C++. The Bigloo system contains a Scheme compiler that can generate C code and Java virtual machine (JVM) or .NET Framework (.NET) bytecode. As with other Lisp dialects, it contains an interpreter, also termed a read-eval-print loop (REPL). It is free and open-source software. The run-time system and libraries are released under a GNU Lesser General Public License (LGPL). The compiler and programming tools are released under a GNU General Public License (GPL).
Java is a set of computer software and specifications developed by James Gosling at Sun Microsystems, which was later acquired by the Oracle Corporation, that provides a system for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones to enterprise servers and supercomputers. Java applets, which are less common than standalone Java applications, were commonly run in secure, sandboxed environments to provide many features of native applications through being embedded in HTML pages. It's still possible to run Java in web browsers after most of them having dropped support for Java's VM.
Pilo Visual Tools for Scheme (Pvts) is a basic interpreter implementation with visualization tools of the Scheme programming language developed at Rollins College. It is written in Java. PVTS contains an interpreter as well as three visualization modules: a global environment viewer, a function call viewer, and a data structure viewer.
The Java Development Kit (JDK) is an implementation of either one of the Java Platform, Standard Edition, Java Platform, Enterprise Edition, or Java Platform, Micro Edition platforms released by Oracle Corporation in the form of a binary product aimed at Java developers on Solaris, Linux, macOS or Windows. The JDK includes a private JVM and a few other resources to finish the development of a Java Application. Since the introduction of the Java platform, it has been by far the most widely used Software Development Kit (SDK). On 17 November 2006, Sun announced that they would release it under the GNU General Public License (GPL), thus making it free software. This happened in large part on 8 May 2007, when Sun contributed the source code to the OpenJDK.
Java bytecode is the instruction set of the Java virtual machine (JVM).
Renjin is an implementation of the R programming language atop the Java Virtual Machine. It is free software released under the GPL. Renjin is tightly integrated with Java to allow the embedding of the interpreter into any Java application with full two-way access between the Java and R code.
SISC as a project began as the successor to the Lightweight Interpreter of Scheme Code (LISC). LISC was a small, stack-based almost R4RS compliant Scheme. SISC was born out of the desire to create an interpreter that was of a similar footprint to LISC, but which executed Scheme code much faster, complied fully to the R5RS standard, and which wasn't limited by the stack-based model. SISC met these goals very quickly, and has since progressed in active development to be a competitive Scheme system. As a successor to LISC the interpreter was named the Second Interpreter of Scheme Code.