              Clif - A C-like Interpreter Framework.
              --------------------------------------
			 Version 0.93

Maintainer: Ludo Koren (koren@vm.stuba.sk)

Note.
-----

For uncompressing the package:

		cat clif-xx.tar.gz | gunzip |tar xf -

Introduction.
-------------

Our intention is to develop a C language interpreter. As far as this
version, the environment does not support all syntactic and semantic
structures of the C language. We keep developing full data abstraction
of the environment, as well as the C language preprocessor and its
integration with the Clif. The biggest difference so far is the
parameter passing mechanism (for details see documentation). 

In our development we stress on user interfaces on all levels of the
interpreter system. A user can write procedures within the Clif
specification, he can build modules using different languages and link
those modules into the Clif but even more he can add new language
structures to Clif.

A detailed description can be found in the directory doc. The
directory contains an IFAC paper, user's and programmer's
manual. (Because the main development goes to the interpretation of
Standard C language the user's guide is not updated anymore.)

Compiling.
----------

To compile Clif, please, follow these steps:

1. Run configure shell script (in this directory) that attempts to
guess correct values for system-dependent variables (see INSTALL about
that) and produces appropriate Makefiles, then run make. If this step
fails follow the step 2.

2. We recommend to read the file PORTING and try to adapt Makefile
(this is only if --enable-CONTROL for configure was specified). The
last resort is to send us a mail with the problem description and we
will be pleased to try to include a new platform.  If you use
configure shell script you can change CC variable (default is set to
gcc) in Makefile.in to cc. We prefer to try compilation with GNU C
compiler.

Checking functionality of the Clif.
-----------------------------------

If you have compiled the Clif using a Makefile created by configure
shell script you can just type make check and all non-interactive
tests will be processed. 

If you have compiled the Clif another way you can test the interpreter
manually by typing clif <filename> in the tests/ directory. If you
used data from <filename>.in you could compare your output with
<filename>.out. You can do the same typing check-them <filename>.

Test tests/test33.ci is designed for testing of interrupts from the
keyboard. If you have configured the Clif with --enable-CONTROL option
then you can interrupt Clif by pressing Ctrl-T and Clif echoes: "clif
interrupt level 1". Then the user can use any Clif statement that is
immediately executed. You can resume the execution by pressing Ctrl-T
or entering the statement "resume;". Clif echoes: "clif interrupt
level 0".

Tests tests/test5[345].ci are designed for testing graphical
subsystem. If you are using X terminal, you can try it. You should see
6 sine curves (for tests/test55.ci only one) in different colors and
scales. When the curves reach the end of the window, you have to press
any key for continuing.

Platforms.
----------

Here is the list of platforms where the Clif was successfully
compiled:

- CDC 4680, EP/IX 2.1.1AC RISCos mips

- DEC 5000/240, ULTRIX 4.2, RISC

- SUN Sparc Station, SunOS 5.2 and later

- PC, Linux 1.0 and later, i486

- PC, FreeBSD 2.2.5-RELEASE, i586

- IBM/RS6000 - 365, AIX 3.2

- HP 9000/720, HP UX A.B8.05

- SGI Indigo 2, IRIX 5.2

Problems.
---------

Some problems may arise during compilation of the Clif parser
(c-parser.c file) due to the big switch statement. Try to compile the
file with optimization flag -O2. Some compilers are not able to
compile the file anyway (e.g. IRIX).

Additional requests or bugs reporting.
--------------------------------------

clif@vm.stuba.sk


Ending note.
------------

If you use the compiler (and like it!) -- send me a note. If you have
really problems that you can not figure out, feel free to mail me and
I will try to help. (See documentation what to include in your mail.)
I warn you that response time may be a bit slow...  But I will do my
best to help.

Latest version of this package you can find at ftp server:

ftp://dec50.vm.stuba.sk/pub/csgrp/packages/clif/

Acknowledgments.
---------------

Thanks to Tomas Hruz who teach me how to write compilers and Jozef
Repisky who started work on this project.

----

Ludovit Koren				koren@vm.stuba.sk
