Fashion Sale Hier klicken Jetzt informieren reduziertemalbuecher Cloud Drive Photos Alles für die Schule Learn More sommer2016 HI_PROJECT Hier klicken Fire Shop Kindle PrimeMusic Summer Sale 16

Kundenrezensionen

3,9 von 5 Sternen
16
3,9 von 5 Sternen
Format: Taschenbuch|Ändern
Preis:39,95 €+ Kostenfreie Lieferung mit Amazon Prime
Ihre Bewertung(Löschen)Ihre Bewertung


Derzeit tritt ein Problem beim Filtern der Rezensionen auf. Bitte versuchen Sie es später noch einmal.

am 1. März 2003
Im Gegensatz zu den sonst üblichen Schinken kann man mit diesem Buch lernen, schnell einen effektiven und effizienten Compiler entwickeln. Die im Buch betrachtete Sprache ist Oberon-0, eine Untermenge von Oberon und Pascal recht ähnlich. Als alter C++ und Java-Hase muß ich neidvoll zugeben, daß die Programme sehr übersichtlich sind.
Sicher ist noch ein wenig mehr Hintergrundwissen über die Eigenschaften von LL, SLR, LALR, ... -Parsern sinnvoll, um den Inhalt richtig einschätzen zu können (dazu sollte man das Drachenbuch genau lesen). Die Einfachheit mit der Wirth einen weit fortgeschrittenen imperativen Compiler entwickelt ist beeindruckend.
Obwohl oder gerade weil weder Scanner-/Parser-Generatoren, Zwischensprachen, Datenflußanalysen und komplexe Optimierungsstrategien wenig intensiv behandelt werden ist das Endprodukt, ein Oberon0-Compiler sehr anschaulich. Wer einmal einen mit Lex/Yacc entwickelten Compiler gesehen hat weiss, dass der Einsatz dieser Tools zwangsläufig zum alten Unix-Stil führt (den ich persönlich nicht mag) und schon eine einfache Sprache im Stil von Oberon-0 das ganze Projekt schnell ausufern lässt.
Obwohl das ganze Buch lesenswert ist, fand ich die Abschnitte über (verzögerte) Codeausgabe, Konstantenfaltung und Typinferenz/Strukturen besonders interessant. Sowas findet man nirgendwo so leicht nachvollziehbar (in Text wie im Code) wie hier.
Alles in allem sehr empfehlenswert. Eigentlich bin ich kein Wirth-Fan (gerade aufgrund seiner generellen und unverhohlenen Ablehnung komplexerer Compilerbau-Tools), aber hiermit ist ihm wirklich ein rundum stimmiges Werk gelungen. Jeder Informatiker sollte einmal einen Compiler entwickelt haben - wie ein Arzt auch mal operiert haben sollte, auch wenn er sonst nur Aspirin verschreibt.
Und dann ist das Buch auch noch sehr preiswert...
0Kommentar| 24 Personen fanden diese Informationen hilfreich. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 4. Juli 2004
Wenn man weiß was einen erwartet, ist das Buch sehr gut. Das Vorwort ist in der Hinsicht sehr hilfreich. Wirth schreibt, dass das Ziel nicht die Vollständigkeit, sondern das allgemeine Verständnis ist. So wie ein Elektrotechniker das allgemeine Wissen um seine Transistoren hat, so sollte ein Programmierer das allgemeine Wissen um einen Compiler haben, um zuverstehen was eigentlich dieser macht. Daher ist das Buch auch recht dünn. Es vermittelt die allgemeinen Grundlagen und Techniken, um das Verständnis für Compiler aufzubauen. Wenn man selbst einen Compiler entwickeln möchte, sollte man eher die Drachenbücher lesen. Das schöne an diesen Buch ist der schnelle Einstieg in die Thematik und viel drum herum. Einige Grundlagen sollte man schon mitbringen (z. B. über Formale Sprachen). Ansonsten zeichnet sich das Buch durch seine praxisnähe aus. Im Verlaufe des Buches wird ein einfacher Oberon-Compiler entwickelt. Im Anhang findet man dann den kompletten Quelltext dazu.
0Kommentar| 10 Personen fanden diese Informationen hilfreich. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 5. Januar 2014
Das Buch ist empfehlenswert für jeden der sich mit Compilerbau beschäftigt.
Die Beispiele sind übersichtlich gestaltet und ausreichend erklärt, einziges Manko ist
das alle Beispiele und Codeabschnitte in Pascal oder der Pascal-Variante Obaron geschrieben sind.
Es stellt meiner Meinung aber keine Hürde dar, da Pascal Code sich selbst recht gut erklärt und die
Umsetzung in eine häufiger verwendete Sprache kein Problem darstellt.

Für Anfänger ist dieses Buch nicht umbedingt geeignet, man braucht gewisse Grundlagen und Vorwissen zum
Thema Programmieren und man sollte nicht uninformiert über die Funktionsweise von CPUs sein, (Vorallem wie eine ALU
funktioniert) RISC sollte kein Fremdwort für einen sein.
0Kommentar|War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 7. Januar 2008
Ich war wirklich überrascht, dass ein (Informatik-)Professor ein so gut verständliches, praxisbezogenes und auch angenehm zu lesendes Buch schreiben kann. Wirth gelingt es Wissen zu vermitteln, ohne den Leser durch unverständliche Formeln oder Sätze die mit "Es sei..." beginnen über abstrakte akademische Hürden zu quälen.
Jedes Kapitel stellt ein Problem/Aufgabe des Compilerbaus vor und erarbeitet dazu im (Quell-)Text eine Lösung, sodass der Leser zum Ende des Buches einen recht komplexen (P-Code) Compiler "mit erstellt" hat, der alle relevanten Belange des Themas abdeckt.
Auch wenn im Buch nicht alle Themen bis in die tiefsten Tiefen ausgelotet werden, so wird doch zu den meisten ein Konzept oder eine Teillösung vorgestellt, anhand derer der Leser einen guten Einstieg in weiterführende Quellen erhält (oder sich seine eigenen Gedanken machen kann :-).
Die vorgestellten Quelltexte liefern vielleicht kein Optimum an Performance sind aber elegant implementiert, gut verständlich und leicht portierbar.
Hut ab, Herr Wirth!
0Kommentar| 3 Personen fanden diese Informationen hilfreich. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 26. Mai 2014
This book learns you about how to build a compiler or any other kind of translator for going from one language to another. In the typical way of Niklaus Wirth, using simple approaches and very structured programming and programming language.
0Kommentar|War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 27. Oktober 2011
Niklaus Wirth geht den richtigen Weg, indem er in seinem Buch bewusst auf die Verwendung von Tools
zum Compilerbau verzichtet, so soll der Leser die grundlegenden Techniken kennenlernen und verstehen.

Das Buch beginnt mit einer kurzen Einführung in reguläre Sprachen, welche ausreichend ist, dem Buch
folgen zu können.

In den folgenden Kapiteln wird dann Stück für Stück ein Beispiel-Compiler erstellt indem die jeweiligen Themen
des Kapitels hinzugefügt werden. Herr Wirth hält sich hier nicht mit langen theoretischen Abhandlungen auf.
Alternativen Ansätze oder weiterführende Themen werden erwähnt, jedoch begründet nicht behandelt. Dies ist,
meiner Meinung nach, die richtige Entscheidung für ein einführendes Werk.

Alle Bereiche, die für den Compilerbau relevant sind, werden in diesem Buch behandelt. Nach Durcharbeit des
Buches ist man tatsächlich in der Lage, eigene Compiler zu entwickeln.

Bei den Erläuterungen der einzelnen Bereiche gelingt die Gratwanderung zwischen "kurz, knapp und verständlich"
und "zu wenig" nicht immer. Insbesondere bei der Behandlung von Parsern ist Vorwissen hilfreich.

Die Darstellung der Algorithmen mittels Oberon-Code ist unglücklich, da durch den Programmiersprachen-Overhead
der Blick auf das Wesentliche verdeckt wird. Hier wäre eine abstraktere Darstellung sinnvoller.

Völlig unverständlich ist, weshalb der fertige Compiler nur in gedruckte Form im Anhang vorhanden ist und
nicht von der Internetseite des Verlags als Quellcode zu beziehen ist. Zum Glück bietet Herr Wirth den
Code auf seiner Internetseite zum download an.

Des Weiteren wären Lösungen zu den Übungsaufgaben wünschenswert.

Als Fazit lässt sich sagen, dass Leute mit Oberon-Erfahrung, die eine knappe und praxisorientierte Einführung
in den Compilerbau wünschen, mit diesem Buch glücklich werden.
0Kommentar| 4 Personen fanden diese Informationen hilfreich. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 23. Februar 2014
Als Lernbehelf ist das Buch ungeeignet. Zu viel Vorkenntnis wird in und zwischen den Kapiteln benötigt und erwartet. Die Übungen am Ende jedes Kapitels sind mit dem bis dahin erworbenen Wissen unmöglich zu bewältigen. Sprachdefinitionen in EBNF sind für die Lösung der Übungsaufgaben teilweise unvollständig spezifiziert. An sich vorbildliche Look-Ahead-Listen sind nicht nachvollziehbar und werden nicht weiter erläutert.

Als Nachschlagwerk taugt das Buch ebenfalls nicht. Schon nach wenigen Seiten ist es schwierig, sich Grundlagen nochmals in Erinnerung zu rufen oder nachzuschlagen. Der unstrukturierte Schreibstil ist hinderlich.

Schließlich ist Oberon - wie der Autor ebenfalls erwähnt - der Letzte Spross einer langen Reihe Programmiersprachen des Autors. Dass sich keine davon als nachhaltig erwies, läßt den Autor unbeeindruckt.

So bleibt am Ende die Erkenntnis, dass der günstige Preis keine Ersparnis darstellt und ein klingender Name kein Garant für qualitative Erläuterungen ist. Rate daher dringend zu einem umfassenderen und teureren Werk, welche die Thematik dafür vollständig erläutert.
0Kommentar|War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 30. August 2014
Ich wollte mich mit dem Thema Interpreter/Compiler beschäftigen. Und zwar so, dass ich am Ende des Tages auch einen Interpreter für eine einfache, selbst entworfene Sprache schreiben kann.
Ich habe mich vor allem aufgrund der Kompaktheit und dem Autor (wer kann schon von sich behaupten, so bekannte Sprachen wie Pascal erfunden zu haben!?) für das Buch entschieden.

Anfangs wird kurz der Aufbau eines Compilers erklärt, und wie die Komponenten zusammenspielen.
Danach geht es auch schon los: es wird ein Scanner geschrieben, der den Quelltext in seine kleinsten Einheiten (Token) aufteilt.
Im nächsten Kapitel geht es mit dem Parser weiter. Dieser nimmt die vom Scanner eingelesenen Einheiten und versucht daraus die Struktur des Quelltextes zu ermitteln.
In den weiteren Kapiteln wird auf Variablentypen sowie auf Fehlererkennung eingegangen.
Schließlich wird die Diskussion des Compiler Frontends mit einem konkreten Beispiel abgeschlossen: für die Programmiersprache Oberon-0 (alle die Pascal oder Delphi kennen fühlen sich zuhause...) wird ein Scanner und ein Parser entwickelt.

Im zweiten Teil des Buches geht es um die Codegenerierung. Es ging um Dinge wie RISC, Assembler, sowie die Abbildung von Konstrukten aus High Level Programmiersprachen auf die Assembler Ebene. Also dass man ein if auf die Assember Befehle cmp und jmp runterbrechen kann, gleiches gilt für while und for Schleifen.
Außerdem wurden Symboldateien (Beschreibung der verwendeten Variablen, Konstante und Typen) erklärt.

Insgesamt bin ich mit dem Kauf zufrieden. Gewisse Dinge kamen zu kurz. Gerade zu den Themen EBNF, Parser und Scanner hab ich auch einiges im Internet recherchiert. Viele Konzepte werden mit dem Beispielcode dann klar.

Negativ anzumerken sind zwei Dinge: erstens die vielen kleinen Schlampereien. Keine Satzzeichen, falsche Satzzeichen, Wörter hängen zusammen weil Leerzeichen vergessen wurden (vor allem bei Variablennamen ist das verwirrend).
Zweitens die Programmiersprache Oberon. Ich konnte keinen Oberon Compiler für (aktuelle) Linux Versionen finden, sodass der gesamte Quelltext im Anhang für mich sinnlos ist.

Zu guter Letzt möchte ich aber noch anmerken: dank des Buchs war ich in der Lage, eine Skriptsprache zur Einbindung einfacher Skripte in eine bestehende Software zu ermöglichen. Die Skriptsprache kann viel mehr, als ich anfangs für möglich hielt in kurzer Zeit zu entwickeln. Neben den obligatorischen Dingen wie if/else, Schleifen, Variablen, Rechnungen ist sie auch im Stande, Typenfehler zu finden.
Soll heißen: jeder der tatsächlich eine eigene Sprache implementieren will/muss, und das vielleicht auch noch unter Zeitdruck, ist mit dem Buch richtig dran!
0Kommentar|War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 29. Dezember 2011
Wenn der berühmte N. Wirth ein Buch veröffentlicht, ist das immer ein Spiel in der
obersten Liga, so auch bei dieser 3. Auflage zu den Grundlagen des Compilerbaus.
Nur bei ihm kann man die historische Einordnung des Themas umfassend nachlesen.

Schade, dass sich der Autor gegen seine Leser abschottet, indem er
keine Kontakt-Email-Adresse und auch keine Internetadresse zum Herunterladen
der Quelltexte aus dem Buch angibt.

Verwunderlich ist die Tatsache, dass er ganz auf die von ihm erfundenen Syntaxdiagramme
verzichtet. Hier hätte man sich eine Motivation gewünscht.

Leider ist das Stichwortverzeichnis unvollständig. So fehlen z.B. Verweise auf die
wichtigen First- und Follow-Mengen einer Syntax.

Zusammenfassend kann gesagt werden, dass der Rezensent dieses Buch für Leser empfiehlt,
die sich ernsthaft und tiefgründig mit der Materie beschäftigen wollen und sicher sind
in verschiedenen problemorientierten Notationen, so dass sie auch die Quelltexte in der
wenig verbreiteten Programmiersprache Oberon schnell lesen können.
0Kommentar|War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 5. Mai 2014
Jeder, der nachvollziehen möchte, wie ein Compiler funktioniert und seinen eigenen Compiler/ Parser nach dem intuitiven Top-Down-Prinzip schreiben möchte, wird dieses Buch mögen. Auch die Wahl der Sprache Oberon ist aus didaktischen Gründen sinnvoll - Es handelt sich dabei schlussendlich um eine Sprache aus der Pascal-Familie und die Implementierung eines Mini-Pascal-Compilers zum Einstieg in die Materie hat nicht um sonst Tradition.

Das Buch wurde und wird zwar an Unis gelesen, hat aber dennoch einen starken Praxisbezug. Es ist sicher auch ein guter Einstieg für Leute, die mal schnell eine DSL zur Automatisierung bestimmter Aufgaben schreiben wollen.

Allerdings muss man auch sehen, dass das Bottom-Up-Parsing (LR(1)-Parser und LALR-Parser) fast ganz außer Acht gelassen wird und moderne Compiler sind eben nach diesem Prinzip gebaut. Wer verstehen will oder muss, wie Bottom-Up-Parsing und die hierfür in der Regel eingesetzten Compiler-Compiler funktionieren, sollte zu einem anderen Buch greifen, dass dann allerdings auch um einiges dicker sein wird.
0Kommentar|War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden