                               elastiC
                               =======

INTRODUCTION
------------

elastiC is a portable high-level object-oriented interpreted language
with a C like syntax.
Its main characteristics are:

    -  Open Source.
    -  Interpreted.
    -  Portable bytecode compilation.
    -  Familiar C-like syntax.
    -  Dynamic typing.
    -  Automatic real, very fast, Garbage Collection.
    -  Object Oriented with meta-programming support (a la
       Smalltalk).
    -  Functional programming support (Scheme like closures with
       lexical scoping). 
    -  Hierarchical Namespaces.
    -  Many useful basic types (dynamic arrays, dictionaries, symbols,
       ...).
    -  Extensibile with C (you can add functions, types, classes,
	methods, packages, ...).
    -  Embeddable in C.
    -  Small footprint, making it ideal also in embedded systems.

elastiC has been strongly influenced by C, Smalltalk, Scheme and
Python and tries to merge the best characteristics of all these
languages, maintaining though its unique personality.

USAGE
-----

elastiC is composed by a library, a bytecode compiler (ecc), an
interpreter (ec) and other utilities.
Compiling and executing an elastiC program is easy:

   % ecc hello.ec         # compile `hello.ec'
   % ec hello             # execute compiled `hello' program

It is also possible to directly executing from a source file
(bytecode compiling on the fly):

   % ec hello.ec          # execute `hello.ec'

For further information, refer to the man pages and the other
documents that come with the package, as explained below.

WEB SITE
--------

The elastiC official web site is:

    http://www.elasticworld.org

Here, you'll find the most recent release, documentation, support and
other important information.

DOCUMENTATION
-------------

elastiC documentation is distributed with the package in the "doc"
subdirectory (in plain text, HTML, SGML, man, ...).
Some examples are in the "doc/examples" subdirectory.

To print the man pages (if using groff):

   % groff -man doc/elastic.1 | lpr
   % groff -man doc/ec.1 | lpr
   % groff -man doc/ecc.1 | lpr
   ...

or, if you simply want to read them without installing the whole
thing:

   % groff -Tascii -man doc/elastic.1 | more
   % groff -Tascii -man doc/ec.1 | more
   % groff -Tascii -man doc/ecc.1 | more
   ...

Probably the best way to get started with elastiC is by reading the
man pages and examples and experimenting. Its basic syntax is very
similar to that of the C language (it is much simpler, actually), so
you should feel at home. The more complete document is the elastic(1)
man page.

Please note that since elastiC is a young project, it is somewhat
lacking in documentation & examples. I really hope to change this in
the near future. In the meantime, please be patient.
(Some "examples" are regression tests, in "regress/*.ec").

INSTALLATION
------------

See the file "INSTALL"

MAILING LISTS
-------------

There are two mailing lists for elastiC.
They are elastic-user@prosa.it and elastic-devel@prosa.it
The first one is to dicuss about the language itself. If you have
any questions, it's the right place to check.
The second one is about the implementation of compiler and
interpreter, and about proposed additions to the language.
To subscribe, simply send a mail with body subscribe to the
addresses elastic-user-request@lists.prosa.it and
elastic-devel-request@lists.prosa.it.
From a unix machine it's simply a matter of doing:

    % echo "subscribe" | mail elastic-user-request@lists.prosa.it
    % echo "subscribe" | mail elastic-devel-request@lists.prosa.it

You will receive a message from the list server after your
registration.

Otherwise you can also subscribe from the web:

    http://lists.prosa.it/cgi-bin/mailman/listinfo/elastic-user
    http://lists.prosa.it/cgi-bin/mailman/listinfo/elastic-devel

You will receive a message from the list server after your
registration.
Mailing list archives are available at:

    http://lists.prosa.it/pipermail//elastic-devel/
    http://lists.prosa.it/pipermail//elastic-user/

Thanks to the folks at Prosa Srl (http://www.prosa.it) for hosting
the above mailing lists.

BUG REPORTS
-----------

Bug reports and suggestions are very appreciated. Please send yours
to me at <panta@elasticworld.org>

AUTHOR
------

Marco Pantaleoni
panta@elasticworld.org

LICENSE
-------

elastiC is distributed under the elastiC License version 1.0 (the
"elastiC License"). A copy of the license is available in the file
LICENSE.


Enjoy,
Marco Pantaleoni
panta@elasticworld.org
1 November 1999
