[Prev][Next][Index][Thread]

Re: A Dylan parser-generator.



Hi


> 
> I'm already aware of ANTLR which is a Java program and which could in
> principle have a Dylan back-end plugged into it.

I believe that ANTLR is closely related to an earlier tool called PCCTS
which generates C++. It's on my to-learn list so I can't tell you much
more. I think it claims arbitrary lookahead. It is well spoken of.

Something I noticed, probably on comp.compilers, copied below. Since
it's LR(1) it probably isn't relevant to you but might be of interest to
someone.


jt


----------------------


From: 
        "Augusteijn, dr.ir. A." <lex.augusteijn@philips.com>
                                                                                
11/03/00 6:39 PM

 Subject: 
        New Elegant release 7.1




New Elegant release 7.1 available
=================================

The Elegant compiler generator tool sets is now available from


http://www.research.philips.com/generalinfo/special/elegant/elegant.html

It is an industrial compiler generator, used for many years within
Philips.  After development of Elegant was stopped, it was decided to
make it available in the public domain under the GNU license.  This
includes all sources, so that you will be able to extend the system if
you feel inspired by it.

Elegant is a compiler generator based on attribute grammars with the
following features:

  - It accepts LL(1) and LALR(1) grammars.
  - It can generate a back-tracking parser for other grammars.
  - Any non-cyclic attribute dependency is allowed (!).
  - Comes with
    - front-end generator
    - scanner generator
    - postscript syntax diagram generator
    - Elegant programing language
  - Integrated automatic error recovery

Compilers written in Elegant are very fast (several thousand lines of
source text per second) and the attribute grammars offer a very
expressive formalism on a high level of abstraction, without
sacrificing performance.

The tool Front is a front-end generator that comes with Elegant.  It
accepts a mix of an EBNF context free grammar and a set of type
definitions that describe the abstract syntax graph of the language.
>From this, Front generates an Elegant attribute grammar that maps an
input string onto this data structure, including all scoping and
symbol-table handling.  Front allows the easy and fast construction of
compiler front-ends, which makes it particularly suited for language
design.

The Elegant programming language is smoothlessly integrated with the
attribute grammar specification language (in fact, the latter is a
subset of the former). The language is strongly inspired by functional
programming languages, especially their type systems, yet, it is an
imperative language that does not discourage side-effects.  The
language features:

  - Strong typing.
  - Subtyping (linear inheritance).
  - Polymorphic types.
  - Polymorphic functions.
  - Several different lazy types.
  - Overloading.
  - List comprehensions (they are overloaded, so they work for many
other
     types as well, including your own).
  - Automatic and user definable coercions.
  - Pattern matching (= sub-type analysis).
  - Function (lambda) expressions.
  - Module system.

The whole system offers:

  - Lots of compile time and run-type checks.
  - Garbage collection.
  - Compiles onto ANSI C.
  - Interface to C.
  - Available on SunOS 5, HP_UX 11, Linux, IRIX.
  - Portable to anything with a decent ANSI C compiler.
  - Self generating, i.e. written in Elegant (of course!).

All in all a very professional and complete system, free for you to use!

Lex Augusteijn

--
Name:           dr.ir. Lex Augusteijn
Address:        WL 1.1.13
                Philips Research Laboratories
                Prof. Holstlaan 4
                5656 AA Eindhoven
                The Netherlands
Phone:          (+31 40 27)43938
Fax:            (+31 40 27)44004
E-Mail:         lex.augusteijn@philips.com



References: