Bewertung:

Derzeit gibt es keine Leserbewertungen. Die Bewertung basiert auf 2 Stimmen.
Understanding Programming Languages
In diesem Buch geht es darum, die Bedeutung von Programmiersprachen zu beschreiben. Der Autor lehrt die Fähigkeit, semantische Beschreibungen zu schreiben, um die Eigenschaften einer Sprache effizient zu verstehen. Ein Compiler oder ein Interpreter bietet zwar eine Form der formalen Beschreibung einer Sprache, kann aber nicht als Grundlage für Schlussfolgerungen über diese Sprache verwendet werden und kann auch nicht als Definition einer Programmiersprache selbst dienen, da diese eine Reihe von Implementierungen ermöglichen muss. Durch das Schreiben einer formalen Semantik einer Sprache kann ein Designer eine viel kürzere Beschreibung erstellen und Designentscheidungen herausarbeiten, analysieren und aufzeichnen.
Zu Beginn des Buches stellt der Autor eine einfache Notation, eine Metasprache, vor, mit der Beschreibungen der Semantik von Sprachen aufgezeichnet werden können. In einem praktischen Ansatz betrachtet er Dutzende von Problemen, die in aktuellen Programmiersprachen auftreten, und die Schlüsseltechniken, die beherrscht werden müssen, um die erforderlichen formalen semantischen Beschreibungen zu schreiben. Das Buch schließt mit einer Diskussion der acht wichtigsten Herausforderungen: Abgrenzung einer Sprache (konkrete Darstellung), Abgrenzung des abstrakten Inhalts einer Sprache, Aufzeichnungssemantik (deterministische Sprachen), operationale Semantik (Nicht-Determinismus), Kontextabhängigkeit, Modellierung von Sharing, Modellierung von Nebenläufigkeit und Modellierung von Exits.
Der Inhalt ist klassenerprobt und eignet sich für Abschlussklassen von Grund- und Aufbaustudiengängen. Es ist auch für jeden Designer geeignet, der Sprachen auf einer tiefen Ebene verstehen will. In den meisten Kapiteln werden Projekte angeboten, einige davon sind recht fortgeschrittene Übungen, die vollständige Beschreibungen von Sprachen erfordern, und das Buch wird durchgehend mit Hinweisen auf weiterführende Literatur und Ressourcen unterstützt. Als Voraussetzung sollte der Leser mindestens eine imperative Hochsprache beherrschen und über einige Kenntnisse der diskreten mathematischen Notation für Logik und Mengenlehre verfügen.