Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: $Revision: 1.6.2.13 $; site iuvax.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxl!ihnp4!inuxc!iuvax!willc From: willc@iuvax.UUCP Newsgroups: net.micro.apple Subject: Re: C compiler Message-ID: <1200002@iuvax.UUCP> Date: Tue, 8-May-84 19:30:00 EDT Article-I.D.: iuvax.1200002 Posted: Tue May 8 19:30:00 1984 Date-Received: Wed, 9-May-84 23:42:50 EDT References: <1207@sdccs7.UUCP> Lines: 22 Nf-ID: #R:sdccs7:-120700:iuvax:1200002:000:975 Nf-From: iuvax!willc May 8 18:30:00 1984 I assume you're worried about the size of the parser, since any parsing technique suitable for mainframes ought to work also on micros if the program will fit. If you have access to a parser generator such as yacc, use it and don't worry about what kind of parser it generates. Yacc happens to generate an LALR(1) parser. A book on my shelf claims that an LALR(1) parser table for Algol 60 occupies less than 3000 bytes. I would guess that an LL(1) parser table would be about the same size. A true recursive descent parser is just an LL(1) parser in which the parser table is encoded procedurally. I would expect table-driven LL(1) parsers to be more compact than recursive descent parsers. If you don't have access to a parser generator, use table-driven LL(1) or recursive descent. Just be careful as you transform the grammar into LL(1) form. Consult a good textbook on compiler construction such as Aho & Ullman or Hunter. William Clinger ...iuvax!willc