Ikarus (Scheme implementation)
Encyclopedia
Ikarus Scheme is a free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 optimizing incremental compiler
Incremental compiler
The term incremental compiler may refer to two different types of compiler.-Imperative programming:In imperative programming and software development, an incremental compiler is one that when invoked, takes only the changes of a known set of source files and updates any corresponding output files ...

 for R6RS Scheme that compiles directly to the x86 architecture
X86 architecture
The term x86 refers to a family of instruction set architectures based on the Intel 8086 CPU. The 8086 was launched in 1978 as a fully 16-bit extension of Intel's 8-bit based 8080 microprocessor and also introduced segmentation to overcome the 16-bit addressing barrier of such designs...

. Ikarus is the first public implementation of a large part of R6RS, the most recent Scheme standard.

Design

The compiler developer, Abdulaziz Ghuloum, was a Ph.D. student at Indiana University
Indiana University
Indiana University is a multi-campus public university system in the state of Indiana, United States. Indiana University has a combined student body of more than 100,000 students, including approximately 42,000 students enrolled at the Indiana University Bloomington campus and approximately 37,000...

 under Kent Dybvig, the developer of Chez Scheme
Chez Scheme
Chez Scheme is a proprietary Scheme implementation by R. Kent Dybvig, first released in 1985, which uses incremental native-code compilation to produce native binaries for the PowerPC, SPARC; x86 and x86-64 processor architectures...

, who has influenced the development of Ikarus.

Some of the ideas behind the design of Ikarus Scheme are detailed in "An Incremental Approach to Compiler Construction" by the developer. In particular, Ikarus is self-hosting
Self-hosting
The term self-hosting was coined to refer to the use of a computer program as part of the toolchain or operating system that produces new versions of that same program—for example, a compiler that can compile its own source code. Self-hosting software is commonplace on personal computers and larger...

 with the majority of the compiler and primitives written in Scheme and only a few parts of the runtime
Run-time system
A run-time system is a software component designed to support the execution of computer programs written in some computer language...

 written in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

. Also, rather than using an external intermediate language
Intermediate language
In computer science, an intermediate language is the language of an abstract machine designed to aid in the analysis of computer programs. The term comes from their use in compilers, where a compiler first translates the source code of a program into a form more suitable for code-improving...

 like C, LLVM or C--
C--
C-- is a C-like programming language. Its creators, functional programming researchers Simon Peyton Jones and Norman Ramsey, designed it to be generated mainly by compilers for very high-level languages rather than written by human programmers...

, it compiles directly to machine code
Machine code
Machine code or machine language is a system of impartible instructions executed directly by a computer's central processing unit. Each instruction performs a very specific task, typically either an operation on a unit of data Machine code or machine language is a system of impartible instructions...

 in order to better take advantage of the underlying machine architecture.

Ikarus uses the "The portable R6RS library and syntax-case system" which is also developed by Abdulaziz Ghuloum and is described in the paper, "Implicit phasing for R6RS libraries". Finally, the paper "Generation-Friendly Eq Hash Tables" covers the hash table implementation in Ikarus.

System Requirements

Ikarus runs on x86 but requires SSE2
SSE2
SSE2, Streaming SIMD Extensions 2, is one of the Intel SIMD processor supplementary instruction sets first introduced by Intel with the initial version of the Pentium 4 in 2001. It extends the earlier SSE instruction set, and is intended to fully supplant MMX. Intel extended SSE2 to create SSE3...

 support to handle floating-point computations so it will not produce code for Intel
Intel Corporation
Intel Corporation is an American multinational semiconductor chip maker corporation headquartered in Santa Clara, California, United States and the world's largest semiconductor chip maker, based on revenue. It is the inventor of the x86 series of microprocessors, the processors found in most...

 chips earlier than Pentium 4
Pentium 4
Pentium 4 was a line of single-core desktop and laptop central processing units , introduced by Intel on November 20, 2000 and shipped through August 8, 2008. They had a 7th-generation x86 microarchitecture, called NetBurst, which was the company's first all-new design since the introduction of the...

 or AMD
Advanced Micro Devices
Advanced Micro Devices, Inc. or AMD is an American multinational semiconductor company based in Sunnyvale, California, that develops computer processors and related technologies for commercial and consumer markets...

 chips prior to Athlon 64
Athlon 64
The Athlon 64 is an eighth-generation, AMD64-architecture microprocessor produced by AMD, released on September 23, 2003. It is the third processor to bear the name Athlon, and the immediate successor to the Athlon XP...

.
Release 0.0.3 has been tested and runs on:
  • Mac OS X version 10.4 and 10.5.
  • Linux 2.6.18 (Debian, Fedora, Gentoo, and Ubuntu).
  • FreeBSD version 6.2
  • NetBSD version 3.1
  • Microsoft Windows XP (using Cygwin 1.5.24).

Ikarus Scheme


Benchmarks


Reviews

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK