ProgrammierSemantiken
ProgrammierSemantiken umfassen die formale Beschreibung der Bedeutung von Programmen in Programmiersprachen. Die Semantik unterscheidet sich von der Syntax, die nur die formale Struktur festlegt; Semantik definiert, welche Ergebnisse Programme liefern, wie sich Speicherzustände verändern und welche Nebenwirkungen auftreten. Semantische Spezifikationen ermöglichen Verifikation, Portierbarkeit und korrekte Optimierungen.
Man unterscheidet typischerweise statische Semantik (z. B. Typüberprüfung, Namensauflösung, Gültigkeitsbereiche) und dynamische Semantik (Verhalten während der
Zu den formalen Ansätzen gehören operative Semantik, bei der der Ablauf schrittweise modelliert wird; denotationale Semantik,
Wichtige Konzepte sind die Abstraktion von Speicher, Nebenwirkungen, Kontrollfluss, Funktions- und Ausdruckseigenschaften, sowie Begriffe wie referentielle
Anwendungsgebiete umfassen die Spracheentwicklung, Compiler-Spezifikation und -Korrektheit, formale Verifikation, Beweissysteme, Programmspezifikationen und die Bewertung von Optimierungen.
Historisch gehörten Strachey, Scott, Plotkin und andere zu den Wegbereitern der formalen Semantik; die Entwicklung prägte