Features

object-oriented programming
EusLisp provides single-inheritance Object-Oriented programming. All data types except numbers are represented by objects whose behaviors are defined in their classes.
Common Lisp
EusLisp follows the specifications of Common Lisp described in [#!CLtL!#] and [#!CLtL2!#] as long as they are consistent with EusLisp's goal and object-orientation. See next subsection for incompatibilities.
compiler
EusLisp's compiler can boost the execution 5 to 30 times as fast as the interpreted execution. The compiler keeps the same semantics as the interpreter.
memory management
Fibonacci buddy method, which is memory efficient, GC efficient, and robust, is used for the memory management. EusLisp can run on machines with relatively modest amount of memory. Users are free from the optimization of page allocation for each type of data.
geometric primitives
Since numbers are always represented as immediate data, no garbage is generated by numeric computation. A number of geometric functions for arbitrary-sized vectors and matrices are provided as built-in functions.
geometric modeler
Solid models can be defined from primitive bodies using CSG set operations. Mass properties, interference checking, contact detection, and so on, are available.
graphics
Hidden-line eliminated drawing and hidden-surface eliminated rendering are available. Postscript output to idraw can be generated.
image processing
Edge based image processing facility is provided.
manipulator model
6 D.O.F.s robot manipulator can easily be modeled.
Xwindow interface
Three levels of Xwindow interface, the Xlib foreign functions, the Xlib classes and the original XToolKit classes are provided.
foreign-language interface
Functions written in C or other languages can be linked into EusLisp. Bidirectional call between EusLisp and other language are supported. Functions in libraries like LINPACK become available through this interface. Call-back functions in X toolkits can be defined in Lisp.
unix binding
Most of unix system calls and unix library functions are assorted as Lisp functions. Signal handling and asynchronous I/O are also possible.
multithread
multithread programming, which enables multiple contexts sharing global data, is available on Solaris 2 operating system. Multithread facilitates asynchronous programming and improves real-time response[#!MTEus1!#,#!MTEus2!#]. If EusLisp runs on multi-processor machines, it can utilize parallel processors' higher computating power.

k-okada 2013-05-21