Related articles |
---|
[5 earlier articles] |
Re: Compiler Construction in Ada crigler@osceola.cs.ucf.edu (1993-01-08) |
Re: Compiler Construction in Ada robichau@lambda.msfc.nasa.gov (1993-01-08) |
Re: Compiler Construction in Ada mfeldman@seas.gwu.edu (1993-01-10) |
Re: Compiler Construction in Ada bpb9204@tamsun.tamu.edu (1993-01-11) |
Re: Compiler Construction in Ada eifrig@beanworld.cs.jhu.edu (1993-01-12) |
Re: Compiler Construction in Ada moss@cs.cmu.edu (1993-01-13) |
Re: Compiler Construction in Ada dtl8v@holmes.acc.Virginia.EDU (1993-01-15) |
Re: Compiler Construction in Ada hagerman@ece.cmu.edu (1993-01-15) |
Re: Compiler Construction in Ada adam@microware.com (1993-01-15) |
Re: Compiler Construction in Ada andrewd@cs.adelaide.edu.au (Andrew Dunstan) (1993-01-17) |
Newsgroups: | comp.lang.ada,comp.compilers |
From: | dtl8v@holmes.acc.Virginia.EDU (Heracleitus) |
Organization: | University of Virginia |
Date: | Fri, 15 Jan 1993 02:04:51 GMT |
References: | 93-01-048 93-01-090 |
Keywords: | courses |
moss@cs.cmu.edu (Eliot Moss) writes:
>Reacting to previous postings, I don't think deep understanding of the
>syntactic aspects is quite the important thing. It is much more important
>to gain understanding of type checking, semantic processing in general,
>code generation, and the role of optimization, in my opinion. Many people
>concentrate on the syntactic stuff because it's clean and theoretical, but
>the tools make it by the far the easiest part of compiling, so to me it
>does not seem the smart place to spend limited classroom time.
I have to agree with this point of view. I took a class in programming
languages that involved writing a nearly-full front end for a Unity
compiler, and the lexical analyzer was the EASIEST part of the project by
far, both to understand and to code. The shift-reduce parser was
difficult but not impossible, but coding it contributed little to the
fundamental understanding, and table-based interpretations that led to the
introduction of yacc helped the students to grasp the concept much better
than coding did. The semantic analyzer was by far the hardest part of the
project, and unfortunately, after coding the parser and syntactic analyzer
etc., there was little enthusiasm left for it. Again unfortunate is that
the semantic analyzer is probably the most important and helpful part of
the compiler. It's usually easy to find a simple syntactic mistake in a
program like missing a semicolon or failing to include spaces, even if the
error is generic and cryptic. It's harder to keep track of things like
type compatibilities and proper code use that the semantic analyzer
manages. So I'm all for using yacc. That's how the professor constructed
his assignment solutions anyway! BNF grammars are a little easier to
handle, even when disambiguating them is taken into account.
Doug Lamb
University of Virginia
dtl8v@Virginia.EDU
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.