про "высокопарные слова, прикрывающие Неумение." Coco-Paper.ps> -- Hanspeter Mo"ssenbo"ck писал(а):
> This paper presents a compiler description language and its implementation Coco/R (Compiler Compiler for Recursive Descent). Coco/R reads an attributed EBNF grammar of a language and translates it into a recursive descent parser and a scanner for that language. The programmer has to supply a main program that calls the parser and semantic modules that are called from within the parser.  (a similar tool with a slightly different motivation also emerged from Alex and Coco [DoPi90]). Using Coco/R, compilers can be generated that are as efficient as hand-coded and carefully optimized production quality compilers. Almost as important as efficiency is the simplicity and adequacy of the system. Programmers are not willing to use a tool if it does not come in handy to their work, if it uses an arcane notation or a bulk of options and special cases. Coco/R puts simplicity and efficiency over power.
> -- Hanspeter Mo"ssenbo"ck писал(а):
> 1. INTRODUCTIONSometimes the most simple techniques are also the most efficient ones. While hand-written compilers usually are implemented in recursive descent, most of the generated compilers use table-driven LL(1) or LALR(1) techniques. After experiences with several parsing methods [Mo"ss87] I returned to recursive descent parsing since I believe that there is hardly anything so efficient, and at the same time so convenient, as this technique. Its advantages are:One of the major problems with recursive descent parsing is that sophisticated error-handling is harder to implement than for table-driven parsers. The error-handling technique presented in Section 5 attacks this problem.