- 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