Zusammenfassung
Grob betrachtet legen wir mit der Syntax einer Programmiersprache fest, wie die Gestalt korrekt geformter Programme aussieht, die Semantik beschreibt dann, was diese Programme bedeuten, d. h. was bei der Ausführung des Programmes geschehen soll. Doch in der Praxis ist diese Trennung nicht so offensichtlich, wie es das Was und das Wie suggerieren. Um eine effiziente Syntaxanalyse zu ermöglichen, verwenden moderne Programmiersprache eine kontextfreie Syntax, auf Konstrukte, die kompliziertere syntaktische Abhängigkeiten benötigen, wird zugunsten der Effizienz verzichtet – aber nur scheinbar. So ist es in den meisten Programmiersprachen Voraussetzung, dass eine Variable, bevor sie im Programm verwendet werden kann, deklariert wird. Auch gibt es Programmiersprachen (z.B. MODULA-2) in denen nur typengleiche Argumente in arithmetischen Ausdrücken vorkommen dürfen (so ist dort z.B. der Ausdruck 7−0.5 unzulässig). Formuliert werden solche Einschränkungen jedoch in der Regel nur verbal und die über eine kontextfreie Grammatik definierte Syntax stellt keine entsprechenden Forderungen an ein korrektes Programm (da dies mit einer kontextfreien Grammatik nicht möglich ist). Werden jedoch von einem Programm solche Forderungen verletzt, so ist es nicht möglich, ihnen eine sinnvolle Bedeutung (Semantik) zuzuordnen. Von daher werden auch sie von einem Compiler verworfen, und zwar als Fehler der sog. statischen Semantik (können zur Compilezeit entdeckt werden). Andere Ursachen für semantiklose Programme wie beispielsweise das Auftreten einer Division durch 0 sind in der Regel zur Compilezeit nicht zu erkennen und werden den sog. dynamischen Semantikfehlern zugeordnet.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2012 Vieweg+Teubner Verlag | Springer Fachmedien Wiesbaden
About this chapter
Cite this chapter
Nebel, M. (2012). Semantik von Programmiersprachen. In: Formale Grundlagen der Programmierung. Studienbücher Informatik. Vieweg+Teubner Verlag. https://doi.org/10.1007/978-3-8348-2296-3_3
Download citation
DOI: https://doi.org/10.1007/978-3-8348-2296-3_3
Published:
Publisher Name: Vieweg+Teubner Verlag
Print ISBN: 978-3-8348-1889-8
Online ISBN: 978-3-8348-2296-3
eBook Packages: Computer Science and Engineering (German Language)