comp.lang.ada
 help / color / mirror / Atom feed
From: agate!usenet.ins.cwru.edu!magnus.acs.ohio-state.edu!zaphod.mps.ohio-state
Subject: Re: Compiler Construction in Ada
Date: 15 Jan 93 02:04:51 GMT	[thread overview]
Message-ID: <93-01-104@comp.compilers> (raw)

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
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.

             reply	other threads:[~1993-01-15  2:04 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1993-01-15  2:04 agate!usenet.ins.cwru.edu!magnus.acs.ohio-state.edu!zaphod.mps.ohio-state [this message]
  -- strict thread matches above, loose matches on Subject: below --
1993-01-17 22:49 Compiler Construction in Ada enterpoop.mit.edu!world!iecc!compilers-sender
1993-01-15 16:59 agate!usenet.ins.cwru.edu!magnus.acs.ohio-state.edu!zaphod.mps.ohio-state
1993-01-15 16:58 Robert I. Eachus
1993-01-15 14:00 agate!usenet.ins.cwru.edu!magnus.acs.ohio-state.edu!zaphod.mps.ohio-state
1993-01-15 13:14 Robert Firth
1993-01-13 19:53 Eliot Moss
1993-01-12  0:12 agate!spool.mu.edu!uwm.edu!ogicse!das-news.harvard.edu!spdcc!iecc!compile
1993-01-11  3:08 Brent Burton
1993-01-10 17:58 Michael Feldman
1993-01-08 20:41 swrinde!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!pacific.mps.ohio-sta
1993-01-08 14:24 James Crigler
1993-01-07 23:28 enterpoop.mit.edu!usc!wupost!uwm.edu!ogicse!das-news.harvard.edu!spdcc!ie
1993-01-07 12:42 agate!usenet.ins.cwru.edu!magnus.acs.ohio-state.edu!zaphod.mps.ohio-state
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox