Programmiersprachen: Syntax, Semantik und Konzepte

Classified in Informatik

Written at on Deutsch with a size of 6,59 KB.

Orthogonalität in Programmiersprachen

Orthogonalität in der Informatik bedeutet, dass Sprachelemente ohne Einschränkungen oder Sonderfälle kombiniert werden können. Es gibt keine ungültigen Kombinationen. Programmierer müssen wissen, ob es Ausnahmen von der Regel gibt.

Beispiel für mangelnde Orthogonalität

Parameter werden automatisch als Wert übergeben, Arrays jedoch automatisch als Referenz.

Vorteile der Orthogonalität

  • Einfach zu erlernen.
  • Ermöglicht einfaches Schreiben, da keine Ausnahmen und Sonderfälle zu beachten sind.

Nachteile der Orthogonalität

Kann zu vielen Einschränkungen führen, insbesondere beim Umgang mit komplexen Daten, obwohl der Code fehlerfrei kompiliert wird.

Syntax und Semantik von Programmiersprachen

Syntaktische Klarheit

Eine Anweisung oder Operation sollte nicht mehrere Schreibweisen in derselben Sprache haben.

Semantik einer Programmiersprache

Die Semantik einer Programmiersprache ist die Bedeutung, die jeder Anweisung, Operation usw. zugeordnet ist.

Orientierung

Bereitstellung einer Syntax, um die Ausrichtung der Sprache (Geschichte, Engagement für die Menschen) zu unterstützen.

Erweiterung

Erleichterung der Implementierung von Strukturen, die in der Funktion, die sie bietet, nicht vorhanden sind. Ermöglicht es dem Benutzer, eigene Datentypen und Operatoren zu definieren.

Portabilität

Die Fähigkeit, ein Softwareprogramm auf verschiedenen Computern zu verwenden.

Effizienz in Programmiersprachen

Effizienz in der Übersetzung

Schnelle Kompilierung (wichtig für ausbildungsorientierte Programmiersprachen).

Effizienz in der Ausführung

Wichtig für Programmiersprachen, die in Routinen mit hoher Auslastung verwendet werden, z. B. bei der Schlüsselüberprüfung.

Effizienz in der Konstruktion

Programmiersprachen, die eine schnelle und klare Konstruktion von Programmen ermöglichen und bei der Diagnose unterstützen.

Syntax von Programmiersprachen

Die Syntax besteht aus Regeln, die bestimmen, ob die Anweisungen eines Programms wohlgeformt sind oder nicht. Ziel ist es, die Kommunikation zwischen dem Programmierer und dem Compiler zu ermöglichen.

Compiler-Mechanismus

Der Compiler ist der Mechanismus, der bestimmt, ob das Programm gut geschrieben ist.

Syntaktische Kriterien

  • Lesbarkeit: Programmiersprachen sollten leicht vom Programmierer interpretiert werden können.
  • Schreibbarkeit: Einfaches Schreiben von Elementen, nicht weit hergeholt.
  • Übersetzungsfreundlichkeit: Der Compiler sollte wenig Maschinencode generieren.
  • Eindeutigkeit: Eine Struktur oder Anweisung sollte nicht mehr als eine Bedeutung haben.

Syntaktische Elemente

Zeichen, Bezeichner, Operatorsymbole, Schlüsselwörter, reservierte Wörter, Kommentare, Abkürzungen, Trennzeichen, Phrasen, Sätze.

Bezeichner

Grundlegende Kenntnisse über die Programmiersprache. Die maximale Anzahl von Symbolen ist in der Version definiert. Längere Bezeichner erhöhen die Lesbarkeit, wenn sie aus verschiedenen Zeichen bestehen.

Schlüsselwörter

Ein Schlüsselwort ist ein Bezeichner, der den unveränderlichen Teil einer Anweisung bildet. Ein Schlüsselwort ist nicht als Benutzer-ID meldepflichtig. Vorteile: Die syntaktische Analyse ist einfacher und die Fehlererkennung effizienter.

Kommentare

Kommentare dienen der Selbstdokumentation des Quellcodes.

Abkürzungen

Abkürzungen dienen der Verbesserung der Lesbarkeit.

Trennzeichen

Trennzeichen werden verwendet, um eine syntaktische Einheit zu markieren. Vorteile: Sie verbessern die Lesbarkeit, vereinfachen das Parsen und helfen, Unklarheiten zu beseitigen.

Festes und freies Format

  • Festes Format: Die Anweisung muss in einem bestimmten Teil der Zeile stehen.
  • Freies Format: Die Anweisungen können ohne Rücksicht auf ihre Position oder Länge aufgezeichnet werden.

Ausdrücke

Bezeichner, Ausdrücke, Variablen.

Imperative Ausdrücke in Programmiersprachen

Bilden die grundlegenden Operationen, die Anweisungen, die den Zustand der Variablen ändern können.

Ausdrücke in funktionalen Programmiersprachen

Bilden die grundlegende Ablaufsteuerung, die die Ausführung eines Programms verwaltet.

Einfache und strukturierte Sätze

  • Einfacher Satz: Erlaubt keine verschachtelten Anweisungen.
  • Strukturierter Satz: Erlaubt verschachtelte Anweisungen.

Grammatik

Die Grammatik ist die formale Definition der Syntax einer Programmiersprache. Sie besteht aus einer Reihe von Regeln, die die Schreibregeln angeben.

Metasprache

Eine formale Grammatik zur Beschreibung anderer Sprachen (BNF, Syntaxdiagramme, CBL).

BNF (Backus-Naur-Form)

Wird verwendet, um kontextfreie Grammatiken auszudrücken, eine formale Methode zur Beschreibung formaler Sprachen. Wird als Notation für die Grammatiken von Programmiersprachen, Betriebssystemen und Kommunikationsprotokollen verwendet.

BNF-Notation

  • <>: Nicht-terminales Symbol.
  • ::=: Ist definiert als.
  • |: Oder.
  • (): Wiederholung (mindestens n-mal).
  • Bezeichner: Schlüsselwort oder konstantes Terminal.

Die Symbole <, >, |, (), ::= sind keine Bestandteile der definierten Sprache, sondern des Beschreibungsmechanismus und werden als Metasymbole bezeichnet.

Beispiel einer For-Schleife in BNF

<for-Schleife> ::= for (<Initialisierung>; <Bedingung>; <Inkrement>) <Anweisung>
Initialisierung ::= (<Ausdruck>, <Ausdruck>)
Bedingung ::= (<Ausdruck>, <Ausdruck>)
Inkrement ::= (<Ausdruck>, <Ausdruck>)
Anweisung ::= <einfach> | <zusammengesetzt>
einfach ::= <Ausdruck> (; <Ausdruck>)
zusammengesetzt ::= (<einfach> (; <einfach>))
Ausdruck ::= <Zuweisungsausdruck> | <Inkrementausdruck> | <Bedingungsausdruck>

Entradas relacionadas: