Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.sci.electronics > #264389
| From | Stefan Reuther <stefan.news@arcor.de> |
|---|---|
| Newsgroups | de.sci.electronics |
| Subject | Re: State Machine Compiler für 8-bit AVRs? |
| Date | 2019-09-24 19:18 +0200 |
| Message-ID | <qmdq68.3kc.1@stefan.msgid.phost.de> (permalink) |
| References | (4 earlier) <qm846b$410$1@news2.open-news-network.org> <guqbrnF5agsU2@mid.individual.net> <qm9r9o$pej$1@news2.open-news-network.org> <qmad0t$nsh$1@solani.org> <qmadud$aks$1@news2.open-news-network.org> |
Am 23.09.2019 um 14:31 schrieb Johannes Bauer: > On 23.09.19 14:15, Gerhard Hoffmann wrote: >> Und er muss dir auch nichts liefern, du hast nichts bei ihm gekauft. > > Wenn jemand groß Sprüche klopft, wie einfach das doch alles von Hand > sei, Lexer/Parser für komplexe Grammatiken zu schreiben (zum Beispiel > der von C), und dann in der Praxis halt schon bei simpelsten Beispielen > voll auf die Nase fliegt, dann ist das ja schon ein interessantes Ergebnis. Ich warte ja auf das Gegenbeispiel, also: deinen C-Parser. >> aber die wichtigen >> Compiler, die jeder hernimmt, wie gcc oder clang benutzen rekursiven >> Abstieg. > > Das ist *professionelle* Software. Mit hunderttausenden Personenstunden, > die da reingeflossen sind, sowohl in clang als auch in gcc. Und ich habe > ausführlich beschrieben, warum die das so machen -- sowohl clang als > auch gcc parsen eben auch C++, für das es keine ausdefinierte Grammatik > gibt *Das* ist Geschwätz. Selbstverständlich hat C++ eine Grammatik. Zu finden im Standard-Dokument unter "Annex A" sowie in Fragmenten in den einzelnen Kapiteln. Sie ist halt nur nicht LL(1). > Ohne Not schreibt *niemand* einen Parser von Hand, auch nicht gcc und > clang. Und wenn man sich dazu entscheidet, ist das *weitaus* > schwieriger, als einen Parsergenerator zu nehmen. Nein. Sage ich als einer, der routinemäßig Parser per Hand baut. >> Pascal nimmt auch rekursiven Abstieg. Und da sind Bösartigkeiten >> wie das with-statement drinnen: >> >> with record_variablenliste do begin ... end (Das ist übrigens parserseitig völlig trivial. Für Pascal musst du nicht wissen, was das Wort 'x' bedeutet, um aus 'x(y)' einen AST bauen zu können.) >> und zwischen begin & end sind die Komponenten der records plötzlich >> keine rec.a und rec.b mehr, sondern einfach nur noch a und b. >> Wenn's zufällig globale a und b gab, dann gibt's die eben vorrübergehend >> nicht mehr. Bring das mal einem Parsergenerator nahe, wenn Variablen- >> namen eben zwischendurch für etwas völlig anderes mit möglicherweise >> einem anderen Typ stehen. > > Ich weiß echt nicht, wieso du ständig mit Pascal anfängst, das hat mit > dem Thema überhaupt nichts zu tun. Ich habe nie bestritten, dass > Recursive Descent ein ordentliches oder geeignetes Parsing-Verfahren > ist. Ich sage lediglich, dass das Schreiben eines Parsers von Hand > RICHTIG viel schwieriger ist, als einen Parsergenerator zu nehmen und > dass man deswegen dafür einen RICHTIG guten Grund (und viel, viel mehr > Zeit) braucht. Und bin extrem skeptisch wenn sich jemand hinstellt und > sagt "das hab ich schon gemacht, war ganz einfach". Weil >40000 Zeilen > Code zu schreiben, nur fürs Parsing, ist eben NICHT einfach. Das, was du beim Schreiben der Grammatik sparst - wenn überhaupt was - zahlst du beim Debuggen drauf. Wo muss ich jetzt die Aktionen platzieren? Wie bekomme ich das Speicherleck-frei? Wie bekomme ich gescheite Fehlermeldungen außer "parse error"? Wie erhole ich mich am besten von einem Parser-Fehler? (Nächstes Semikolon suchen? Oder doch lieber geschweifte Klammern? Oder 'END'-Schlüsselwort?) Und - und das ist einer der Gründe, einen C-Parser per Hand zu machen - in einem händischen Parser ist es trivial, Feedback zu geben, was für ein Ding 'x' in 'x*y[3]' ist, denn abhängig davon wird der Rest geparsed. Mit einem generierten Parser muss man damit durch ein paar Ebenen Generat (yacc, lex) durch und dabei Annahmen treffen, wie der generierte Code sich benimmt. Stefan
Back to de.sci.electronics | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
State Machine Compiler für 8-bit AVRs? Andreas Weber <info@tech-chat.de> - 2019-09-21 11:29 +0200
Re: State Machine Compiler für 8-bit AVRs? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2019-09-21 12:26 +0200
Re: State Machine Compiler für 8-bit AVRs? Andreas Weber <info@tech-chat.de> - 2019-09-21 19:09 +0200
Re: State Machine Compiler für 8-bit AVRs? Hergen Lehmann <hlehmann.expires.5-11@snafu.de> - 2019-09-21 20:37 +0200
Re: State Machine Compiler für 8-bit AVRs? Andreas Weber <info@tech-chat.de> - 2019-09-22 12:48 +0200
Re: State Machine Compiler für 8-bit AVRs? olaf <olaf@criseis.ruhr.de> - 2019-09-22 13:27 +0200
Re: State Machine Compiler für 8-bit AVRs? Johannes Bauer <dfnsonfsduifb@gmx.de> - 2019-09-22 17:23 +0200
Re: State Machine Compiler für 8-bit AVRs? Andreas Weber <info@tech-chat.de> - 2019-09-23 20:15 +0200
Re: State Machine Compiler für 8-bit AVRs? Stefan Reuther <stefan.news@arcor.de> - 2019-09-22 10:48 +0200
Re: State Machine Compiler für 8-bit AVRs? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2019-09-22 12:55 +0200
Re: State Machine Compiler für 8-bit AVRs? Johannes Bauer <dfnsonfsduifb@gmx.de> - 2019-09-22 17:32 +0200
Re: State Machine Compiler für 8-bit AVRs? Gerhard Hoffmann <dk4xp@arcor.de> - 2019-09-22 20:43 +0200
Re: State Machine Compiler für 8-bit AVRs? Johannes Bauer <dfnsonfsduifb@gmx.de> - 2019-09-22 21:10 +0200
Re: State Machine Compiler für 8-bit AVRs? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2019-09-23 00:34 +0200
Re: State Machine Compiler für 8-bit AVRs? Johannes Bauer <dfnsonfsduifb@gmx.de> - 2019-09-23 09:12 +0200
Re: State Machine Compiler für 8-bit AVRs? Gerhard Hoffmann <dk4xp@arcor.de> - 2019-09-23 14:15 +0200
Re: State Machine Compiler für 8-bit AVRs? Johannes Bauer <dfnsonfsduifb@gmx.de> - 2019-09-23 14:31 +0200
Re: State Machine Compiler für 8-bit AVRs? Stefan Reuther <stefan.news@arcor.de> - 2019-09-24 19:18 +0200
Re: State Machine Compiler für 8-bit AVRs? Johannes Bauer <dfnsonfsduifb@gmx.de> - 2019-09-24 20:47 +0200
Re: State Machine Compiler für 8-bit AVRs? Stefan Reuther <stefan.news@arcor.de> - 2019-09-25 17:51 +0200
Re: State Machine Compiler für 8-bit AVRs? Johannes Bauer <dfnsonfsduifb@gmx.de> - 2019-09-27 10:37 +0200
Re: State Machine Compiler für 8-bit AVRs? Stefan Reuther <stefan.news@arcor.de> - 2019-09-27 17:42 +0200
Re: State Machine Compiler für 8-bit AVRs? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2019-09-27 21:22 +0200
Re: State Machine Compiler für 8-bit AVRs? Stefan Reuther <stefan.news@arcor.de> - 2019-09-28 11:58 +0200
Re: State Machine Compiler für 8-bit AVRs? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2019-09-28 13:48 +0200
Re: State Machine Compiler für 8-bit AVRs? Johannes Bauer <dfnsonfsduifb@gmx.de> - 2019-09-28 13:43 +0200
Re: State Machine Compiler für 8-bit AVRs? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2019-09-23 19:07 +0200
Re: State Machine Compiler für 8-bit AVRs? Johannes Bauer <dfnsonfsduifb@gmx.de> - 2019-09-23 20:08 +0200
Re: State Machine Compiler für 8-bit AVRs? Gerhard Hoffmann <dk4xp@arcor.de> - 2019-09-22 13:40 +0200
Re: State Machine Compiler für 8-bit AVRs? olaf <olaf@criseis.ruhr.de> - 2019-09-22 14:59 +0200
csiph-web