Background

What are the principles behind Seax's design and operation? What research preceded Seax and influenced its creation? Perhaps most importantly, why create Seax at all? These are the questions that the Background chapter seeks to address.

Goals

In implementing Seax, I have attempted to accomplish a number of primary goals. An understanding of these goals and objectives is vital to the reader who wishes to understand the design decisions behind Seax. Therefore, this section will enumerate the core philosophy and objectives on which Seax is built.

Why a virtual machine?

Why use a virtual machine as a platform for a programming language runtime environment? The advantages of the Seax virtual machine over traditional compilers and interpreters will be discussed in this section.

Why Lisp?

Seax's architecture is deeply rooted in the history of the Lisp programming language. Why use Lisp principles to inform the virtual machine architecture? Why provide a compiler for a Lisp-variant language (Scheme)? This section shines some light on the attractive qualities of Lisp and functional programming in general.

The SECD Architecture

How is the Seax virtual machine organized? How are instructions interpreted? What comprises the Seax VM's instruction set? This section describes the basic principles behind the Seax VM's operation.

Influences

There is nothing new under the sun. Seax, like almost all computer software, is indebted deeply to the work and ideas of many outstanding computer scientists. Here, credit is paid to those without whose work Seax would not exist.