diff --git a/cb.bib b/cb.bib index 806925166..642ab4aeb 100644 --- a/cb.bib +++ b/cb.bib @@ -211,6 +211,15 @@ @Book{Mogensen2017 langid = {en} } +@Electronic{Nystrom2015, + author = {R. Nystrom}, + title = {{T}he {H}ardest {P}rogram {I}'ve {E}ver {W}ritten}, + url = {https://journal.stuffwithstuff.com/2015/09/08/the-hardest-program-ive-ever-written/}, + urldate = {2024-11-11}, + year = {2015}, + langid = {en} +} + @Book{Nystrom2021, author = {R. Nystrom}, title = {{C}rafting {I}nterpreters}, @@ -384,6 +393,20 @@ @Book{Wirth2011 langid = {de} } +@article{wadler2003prettier, + title = {{A} prettier printer}, + author = {P. {W}adler}, + journal = {{T}he {F}un of {P}rogramming, {C}ornerstones of {C}omputing}, + pages = {223--243}, + year = {2003}, + publisher = {Citeseer}, + url = {https://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf}, + urldate = {2024-11-11}, + langid = {en} +} + + + @Book{kirchner2005, author = {Regenbogen, A. and Kirchner, F.}, title = {{W}örterbuch der philosophischen {B}egriffe}, diff --git a/homework/sheet03.md b/homework/sheet03.md index 4e8c8ac55..d94231a7e 100644 --- a/homework/sheet03.md +++ b/homework/sheet03.md @@ -269,6 +269,11 @@ noch keine Gedanken machen! Achten Sie auf die korrekten Einrücktiefen. Die Zei hier keine Rolle, es wird einfach direkt nach jedem Statement umgebrochen (bzw. wie bei den Kontrollstrukturen gezeigt). +**Hinweis**: Das Thema Pretty Printing ist interessant und kann recht schnell ziemlich +aufwändig werden. Sie finden im Paper ["A prettier printer"] von Philip Wadler +[@wadler2003prettier] und im Blog ["The Hardest Program I've Ever Written"] von Bob Nystrom +[@Nystrom2015] gut geschriebene Beiträge, um tiefer in die Materie einzusteigen. + ### A3.3: AST (3P) Beim Parsen bekommen Sie von ANTLR einen Parse-Tree zurück, der direkt die Struktur Ihrer @@ -291,3 +296,5 @@ auch einen zweiten Pretty-Printer für den AST implementieren.) [Starter-Projekt]: https://github.com/Compiler-CampusMinden/CB-Vorlesung-Bachelor/tree/master/homework/src/sample_project [ANTLR-Plugin für IntelliJ]: https://plugins.jetbrains.com/plugin/7358-antlr-v4 + ["A prettier printer"]: https://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf + ["The Hardest Program I've Ever Written"]: https://journal.stuffwithstuff.com/2015/09/08/the-hardest-program-ive-ever-written/