Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.compilers > #2850
| From | anton@mips.complang.tuwien.ac.at (Anton Ertl) |
|---|---|
| Newsgroups | comp.compilers |
| Subject | Re: Are compiler developers light-years ahead of other software development? |
| Date | 2022-01-21 17:38 +0000 |
| Organization | Institut fuer Computersprachen, Technische Universitaet Wien |
| Message-ID | <22-01-079@comp.compilers> (permalink) |
| References | <22-01-077@comp.compilers> |
Christopher F Clark <christopher.f.clark@compiler-resources.com> writes: >Yes, LL and LR parser generators have been around for decades. My >compiler class in the late 1970s had me implement both of them. >However, shortly after that parser technology was considered basically >a settled problem, while in actuality many parser generators are hard >to use and people don't understand it when they output state machines >and conflict messages freak compiler writers out, etc. This points to one reason why some people don't use these generators. You need to know quite a bit about the implementation technique behind it to understand what (for LR-based parser generators) a shift-reduce or reduce-reduce conflict means and how to fix that problem. >As a result, despite all the technology we could be bringing to bare >on compilers, as far as I can tell, more than half the compilers in >actual use are done via hand-written recursive descent with little >hacks here and there to get them to work. The "little hacks" point to another reason: How to deal with cases where LL or LR technology, or (probably more often) context-free grammars don't quite fit, e.g., when you want to do a compatible extension of an existing language, like C++ (which was intended to be compatible with C). My impression is that Terrence Parr attacked this problem head-on by formalizing these hacks (to some extent) with syntactic and semantic predicates in PCCTS/ANTLR. There is also the problem of interfacing between the parser and the semantic analysis and back end of the compiler. The yacc interface is not that great, but for some reason improvements such as ox have not taken over the world (maybe because ox is based on attribute grammars which is quite a leap for imperative programmers). Finally, a reason is that some people don't want to depend on software written by others. E.g., Wirth apparently considered it simpler to write a recursive-descent parser by hand than to write a parser generator and use that for implementing a parser. And he even wrote a compiler text book that teaches this approach. - anton -- M. Anton Ertl anton@mips.complang.tuwien.ac.at http://www.complang.tuwien.ac.at/anton/
Back to comp.compilers | Previous | Next — Previous in thread | Next in thread | Find similar
Re: Are compiler developers light-years ahead of other software development? Christopher F Clark <christopher.f.clark@compiler-resources.com> - 2022-01-20 21:11 +0200
Re: Are compiler developers light-years ahead of other software development? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2022-01-21 17:38 +0000
Re: Are compiler developers light-years ahead of other software development? gah4 <gah4@u.washington.edu> - 2022-01-21 17:40 -0800
Re: Are compiler developers light-years ahead of other software development? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2022-01-22 09:34 +0000
csiph-web