Research on Languages and Classes

  • Lisp
      There are four options on how to use Lisp:

      Option 1: Lisp Interface to C

      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

  • Object Orient Programming
      Object-Oriented Simulations could be illustrated using VRM.
<< Back to Course View: Fall 1998