Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!news.linkpendium.com!news.linkpendium.com!news.iecc.com!.POSTED!nerds-end From: "Costello, Roger L." Newsgroups: comp.compilers Subject: Articles/books that discuss separating the context-free part of a language from the context-sensitive part? Date: Fri, 17 May 2013 20:57:38 +0000 Organization: Compilers Central Lines: 20 Sender: johnl@iecc.com Approved: comp.compilers@iecc.com Message-ID: <13-05-010@comp.compilers> NNTP-Posting-Host: news.iecc.com Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: leila.iecc.com 1368830855 62277 64.57.183.58 (17 May 2013 22:47:35 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Fri, 17 May 2013 22:47:35 +0000 (UTC) Keywords: parse, theory Posted-Date: 17 May 2013 18:47:35 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Accept-Language: en-US Content-Language: en-US Xref: csiph.com comp.compilers:896 I read this fantastic post on the comp.theory list: http://coding.derkeiler.com/Archive/General/comp.theory/2004-03/0189.html The poster makes the point that most programming languages define a context-free core, and then have additional algorithms which run on the parse tree to filter out constructs that are illegal in the language: This separates out the context-free part of the language from the context-sensitive part -- which is generally regarded as good practice (a kind of modular "programming" discipline for language design). Are there any articles or books that discuss this technique? [That's been the conventional wisdom at least since I took a compilers course in the early 1970s. I believe I mentioned it in lex&yacc and later in flex&bison. It's easier, and it also permits much better error messages. -John]