From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.5-pre1 Date: 11 Jan 93 03:08:45 GMT From: world!iecc!compilers-sender@uunet.uu.net (Brent Burton) Subject: Re: Compiler Construction in Ada Message-ID: <93-01-058@comp.compilers> List-Id: mfeldman@seas.gwu.edu (Michael Feldman) writes: |The original poster, Prof. Jipping, prefers the hand-coding approach, on the |grounds (I suppose) that using tools is great once you have some |understanding of how they work. Students who have hand-coded parts of |parsers and lexers really come to appreciate what yex/yacc/aflex/ayacc buy |you, and that's just the right education for undergraduates (IMHO). I couldn't agree more. Last spring I took the compiler design class here and I found it to be an excellent class. We used the Dragon book and a hand-coded approach while the language to compile was a subset of Pascal. This format proved to be quite effective and educational. Through previous work at IBM, I had experience with lex and yacc already and a good understanding of the parsing process. However, the hand-coding approach was, I feel, mandatory to learn the important underlying algorithms and to better understand the roles lex and yacc play. After the the discussion about LL and LALR parsers, I could finally understand the shift/reduce and reduce/reduce errors. ;-) In short, I'd suggest the hand-coding approach. Learning definitely comes from doing, and the lex and yacc-based course doesn't provide that extra depth of knowledge. -Brent, waiting anxiously for the graduate compiler design this spring -- Brent Burton N5VMG, bpb9204@tamsun.tamu.edu -- Send compilers articles to compilers@iecc.cambridge.ma.us or {ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request.