Related articles |
---|
Compiler construction in C++ and OOD vivek@sequent.com (1993-02-03) |
Re: Compiler construction in C++ and OOD cliffc@rice.edu (1993-02-04) |
Re: Compiler construction in C++ and OOD vaillant@fermina.informatik.rwth-aachen.de (1993-02-08) |
Newsgroups: | comp.compilers |
From: | vaillant@fermina.informatik.rwth-aachen.de (Stefan Vaillant) |
Keywords: | OOP, C++ |
Organization: | Rechnerbetrieb Informatik - RWTH Aachen |
References: | 93-02-032 |
Date: | Mon, 8 Feb 1993 18:22:36 GMT |
vivek@sequent.com (Vivek Buzruk) writes:
>I will be happy if any one tells whether any complete compiler is written
>in C++ either. Also in what way C++ is used, only as a better C or flavor
>of OOD.
Sather, an Eiffel dialect, is implemented with object-orientation in mind.
The compiler is written in Sather (of course), but IMHO it is worth having
a look at it, even if you are interesseted in C++.
The compiler has the following structure: The front-end is written in
yacc. The action-parts construct an abstract syntax tree. Each node of
this tree is an object and has an individual interface. For example, the
node which represents the IF-statement has the following attributes:
class COND_STMTOB is
test: EXPREOB; -- reference to expression node
then_part: LST_STMTOB; -- List of statements
elsif_part:LST_STMTOB;
else_part: LST_STMTOB;
...
end;
Every node (or object) has some methods for doing a semantic check and for
generating code. (This is not quite correct. I had only a quick look at
the source
one year ago.)
You can obtain sather (incl. source code of the compiler) from
icsi-ftp.berkeley.edu.
IMHO this is not totally new, but clean and easy to understand.
You might also have a look at
- the book of Rumbaugh et. all. "Object Oriented Modeling and Design".
They have some examples with syntax trees representing
expressions.
- the Eiffel scanner/parser library.
---------------
Stefan Vaillant
vaillant@pool.informatik.rwth-aachen.de
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.