Related articles |
---|
Object-oriented compiler construction: ideas? op@esec.ch (Oliver Plohmann) (1996-06-01) |
Re: Object-oriented compiler construction: ideas? Malcolm_Crowe@msn.com (Malcolm Crowe) (1996-06-08) |
Re: Object-oriented compiler construction: ideas? Arthur.Chance@Smallworld.co.uk (1996-06-08) |
Re: Object-oriented compiler construction: ideas? dotw@centauri.cadre.nl (1996-06-08) |
Re: Object-oriented compiler construction: ideas? bnm@indica.bbt.com (1996-06-08) |
Re: Object-oriented compiler construction: ideas? nick@an-teallach.com (Nick Rothwell) (1996-06-08) |
Re: Object-oriented compiler construction: ideas? darius@phidani.be (Darius Blasbans) (1996-06-08) |
Re: Object-oriented compiler construction: ideas? poe@theory.lcs.mit.edu (1996-06-13) |
[15 later articles] |
From: | "Malcolm Crowe" <Malcolm_Crowe@msn.com> |
Newsgroups: | comp.compilers |
Date: | 8 Jun 1996 16:31:45 -0400 |
Organization: | CompuServe Incorporated |
References: | 96-06-010 |
Keywords: | OOP |
Oliver Plohmann <op@esec.ch> wrote
> When I first looked into a book about compilers I saw a parse tree with
> integers representing the respective keyword. I thought you could
> alternatively make up the parse tree of objects, like Statement,
> ConditionalBlock, Loop, etc. A ConditionalBlock would contain the
> condition and the respective code to be executed. Then you could put the
> knowledge of how the assembler code would look like for
> aConditionalBlock into that class. Same with the other classes to
> distribute responsabilities among objects to reduce complexity. This
> would also greatly reduce the amount of case switches.
I've developed lex and yacc-like tools that implement the idea you
describe. The tools are written in C++
(using the Microsoft Foundation Classes) and generate C++ in such a way
that the default action for a grammar symbol Statement (say) is to create
a Statement object, and you can invent your own attributes for these
objects, which form a hierarchy.
An early version is available for anonyonus FTP from
ftp://ftp.paisley.ac.uk/pub/mkc/toolszip.uue
If you're interested e-mail me and I'll send you the current version (yes,
I'll publish it properly in a few weeks). The new version also has
lex-style REJECT action and error recovery in the parser.
Malcolm Crowe
University of Paisley
mkc@paisley.ac.uk
Malcolm_Crowe@msn.com
100127.116@compuserve.com
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.