Research on Languages and Classes
- Lisp
There are four options on how to use Lisp:
Option 1: Lisp Interface to C
The interface to C is provided by a product called Eclipse Common Lisp.
This is the preferred option, however, it needs to be evaluated by cost and how common the lisp really is.
Specific information can be found at the following sites:
Option 2: Command Line
In the command line we make a C system call and return an output code telling the calling C module how to perform.
In order to do this, we will need not only a Lisp listener, but a compiler as well. In order to use it command line, it needs to be an application, and essentially, that is what a C system call is (a string to the command-line).
Option 3: Dump Lisp to DLL
Both Franz' ACL5.0 and Harlequin's LWW4.1 can dump themselves to a DLL. This means that a C function could call the DLL code (which would do all the Lisp stuff). I believe each of these companies has a free version of the software. Check out these sites (respectively) for information on their products:
Option 4: Lisp to Java Interface
There exists a Java interface in a few different implementation of Lisp.
- How can this benefit a Lisp class?
For either AI or just plain Knowledge Representation, a lot of programs are based on one of two things -- games or searches. We've shown that searches (such as a maze are perfect for VRM) but we could also create a world which is a game board, and each piece is an agent. Either in a game or a search, each agent knows where it is, and can use that information passed to a Lisp function to determine its best next move. An exact example would be Chess (for simplicity). This will, however, require a lot of coding work on the part of the VRM class view team because each game/search would have to be set up individually. It could, if designed correctly, become possible for the TA's to use a limited set of calls into a VRM library to make things easier.
- C and C++
This will be very easy. A C/C++ interface should allow access to a shared library, such as a DLL. The important thing is to allow users access to only a few functions.
- Control and Concurrency
The principles of Control and Concurrency include forking/process control and mutual exclusive conditions. Because VRM is a virtual world with the possibility for independent agents and the creation (multiplication?) of those agents, such principles should be easily simulated.
- SmallTalk
Visual Works 3.0 from ObjectShare contains a component to use DLL and C libraries. Go to the ObjectShare/Visual Works web site for more information:
- Object Orient Programming
Object-Oriented Simulations could be illustrated using VRM.
<< Back to Course View: Fall 1998
|