ANNOUNCEMENT: An interpreter construction tool

"Jørgen" Steensgaard <>
16 Dec 1997 11:24:17 -0500

          From comp.compilers

Related articles
ANNOUNCEMENT: An interpreter construction tool (JørgenSteensgaard) (1997-12-16)
| List of all articles for this month |

From: "Jørgen" Steensgaard <>
Newsgroups: comp.compilers
Date: 16 Dec 1997 11:24:17 -0500
Organization: The Technical University of Denmark
Keywords: interpreter, tools, available

The first release of the ULC-system to build interpreters is now
avaliable at{platform}.tgz

where {platform} may be


The system has been developed and tested for the pc.linux platform.
It should be considered a beta release. Testing for the other
platforms has been minimal. Essential parts of the system are
distributed in the form of a library only.

Two interpreters with complete sources are included with the
distribution for illustration. Feedback will be most welcome.

Title: ULC

Version: 0.10


Description: ULC: Uniform Languages of Composition

The ULC system is a tool to build interpreters for a
special (rich) family of languages. Each language
will be strongly typed, possibly polymorphic, and may
support infix operators that can be overloaded.
End-users only see types in error messages and in
descriptions of syntax, since type information is
inferred based on use, the descriptions of syntax and
constants (e.g. some languages will allow a variable
to be allocated, but must insist on inferring its type
from the way it is used.)

The semantics of commands constitute separately
compiled components, that share several aspects
with classes in object-oriented languages, but with
additions to support `templates', `higher-order classes',
`multiple views', `iterators' and more.

Incremental development of interpreters is emphasised.
Adding one new form of command requires addition of
its syntax to a description file, automatic generation
of a semantics outline, manual completion of the
semantics and recompilation.

Semantics are subroutines in the language accepted by
the GNU C compiler, and depend on the implemented
extensions in important ways. A command for an
interpreter will express composition of components,
and the interpreter will be able to translate the
command to a C main program that can be linked with
the semantics library to yield a stand-alone program.

The package contains an example interpreter with
command forms that can be used to express a
tcp-server, starting a child process, pipe
manipulations and threading -- all with complete
implementation details.

Keywords: Interpreters, component composition, polymorphism.

Author: Joergen Steensgaard-Madsen (

Maintained-by: author


Alternate-site: (none)


Platforms: pc.linux sun4.Sun414 sun4.SunOS mips.ultrix

Copying-policy: Rights of unmodified package distribution and use of
the software are granted for free. All other rights

    Joergen Steensgaard-Madsen | Postal address:
    Phone: +45 45 25 37 32 |
    Fax: +45 45 93 00 74 | Dept. of Information Technology
    WWW: | Technical University of Denmark
    email: | Building 344
    Office: Building 343, Room 117 | DK-2800 Lyngby

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.