EXPi v2.6

Introduction

This package realises an interpreter for the functional language
EXP described in the lecture notes
"Einführung in die Theorie der Informatik" by G. Salzer
which we call EXPi. EXPi was written by Christoph Rettig as part of
the computer science curriculum in an Informatik-Praktikum.

The purpose of the interpreter is, given as input a specification of

an expression to evaluate

an individual variable symbol environment

an functional variable symbol environment

a calltype

the name of some datatype (yes, there are a few of them)

to do an evaluation of the expression under this given circiumstances
just like it is done manually in the mentioned lecture notes.
This should give you the opportunity to experiment with the language
EXP, code larger programs and look at the results without always having
to do the evaluation by hand.

Availability

I did not have the time to test it with other (yes, that's the
point: freely-available) prolog platforms but if anybody out there wants to
do the job: there is a file named expi_depend.pl which (I hope so) will
include an overlay for all sicstus-specific relations (I think, I only
used atom_chars/2 and number_chars/2).

I don't know, if some other prolog platforms (e.g. SWI-prolog) do use the
same module concept as Sicstus but if not, that would also be something
to work over.
Maybe I will do this by myself but for the moment it doesn't look so :(

For those people that don't use Sicstus Prolog (and also don't want to
port this package) I have written a java-based
interface which produces the same results as working directly on a
prolog interpreter.

depends on the used datatype, stands for the empty-word
and stands for well formed expressions (it's syntax changes with the
used datatype).
For a description on how to build complex expressions read the lecture
notes!

As you may have mentioned there are four datatypes which can be used.
With each datatype, the syntax of constants, the domain of it and
the name of functions and predicates changes!!

Step 2 - Using the input file

Once you have written the input file (and saved it under )
you can pass over the work to EXPi.

Using the prolog interpreter:

If you are using Sicstus Prolog you only need to start up the
interpreter with

cd <path to EXPi>/prolog/
sicstus -l ./expi.pl

After this type

evalfile("").

where <inputfilename> stands for the name you gave to your input file and
<path to input file> is the path to your input file.

Using the Java-interface:

The java applet has two text areas, where the upper one is the
input area. You have to type (or cut&paste) you input there and click
on the "Start EXP Interpreter" button to start the evaluation.
After some time the result of the evaluation will appear in the lower
textarea (the output area).

There are two further buttons to clear the windows before another
evaluation (if wanted).

Something on versions

EXPi has now grown to version 2.6 which (I hope so :) will be the final
version.
If there are any questions, comments, bugs, report them to
goth@logic.at
(and maybe I'm willing to read and answer your mails).