ABSTRACT
The compound data types (pairs and vectors), can have any other data type,
including themselves, within them. They are also allocated dynamically. It is
never necessary to free any dynamically-allocated variables manually, as there
is an automatic garbage-collection routine in the virtual machine. Functions are
first-class citizens in Starlang; it is perfectly legal to assign functions to
variables, pass functions as arguments to functions, and so forth.
The virtual machine is intended to be multithreaded; and threading is also
built into the language. It is possible to call functions written in C or some
other compiled language from the virtual machine as well.
This project is currently in the late prototyping stages; a byte compiler
exists which is more or less in its final form (the back end needs to be revised
somewhat), and a Linux-hosted virtual machine is under development. Expect an
alpha release by mid-August of 1999. A virtual machine running on the M68HC11
family processors is planned.
Starlang stands for STack ARchitecture LANGuage. It is a small, dynamically
typed procedural language with C-like control flow and constructs. It has many
features that are characteristic of Lisp-like languages. Like Java, it has a
byte-compiler that converts a source file into machine-independent bytecode,
which is interpreted by a virtual machine which can theoretically be implemented
on any physical machine. Its primitive data types include:
© 2004 UP Department of Electrical & Electronics Engineering Mobile Robotics Laboratory For comments and suggestions, e-mail me at rpfernandez@up.edu.ph