Grundbegriffe

💡

Dauer: 20 Minuten

  • Anweisungen
  • Syntax und Semantik
  • Fehler in Programmen
  • Kommentare

Ziel: Allgemeine Konzepte für das Programmieren

Anweisungen

Anweisungen sind die eigentlichen „Befehle“ in einer Programmiersprache. Sie entsprechen in der Regel einer Zeile Code und müssen in JavaScript mit einem Zeilenumbruch oder einem Semikolon enden. Allerdings können Anweisungen auch über mehrere Zeilen laufen (z.B. die Definition eines längeren Arrays oder Objekts).

⚠️

Wenn ein Semikolon am Ende der Anweisung steht, dann ist leicht zu sehen, wo die Anweisung endet.

⟶ In den Code-Beispielen werden wir mit Semikolon am Anweisungsende arbeiten

Beispiel mit einer Bildschirmausgabe des Texts Hello, World! gefolgt von der Berechnung einer Summe mit Variablenzuweisung und abschließender Ausgabe der Variablen:

console.log("Hello, World!");
let sum = 100 + 23;
console.log(sum); 

Es ist meistens nicht schlimm, wenn am Ende einer Zeile mal ein Semikolon fehlt. Dieses Beispiel funktioniert auch solange eine Anweisung pro Zeile angegeben wird:

console.log("Hello, World")
let sum = 100 + 23
console.log(sum)

Meistens wird eine Anweisung pro Zeile angegeben — zusätzlich werden die Beispiele in der Vorlesung auch ein Semikolon am Ende der Zeile haben.

Später sehen wir auch, wie mehrere Anweisungen bzw. Code-Zeilen zu einem Block mit { ... } zusammengefasst werden (in Funktionen, if/for/while, usw.).

Syntax und Semantik

Syntax:

  • Aufbau der (Programmier)Sprache
  • Regeln zur Konstruktion von zulässigen Sätzen.

Syntaktisch korrekt: „Die Sonne scheint immer.“

Syntaktisch inkorrekt: „Scheint Sonne die immer.“

Programmiersprachen unterscheiden sich wie gesprochene Sprachen z.T. sehr stark in ihrer Syntax. Nur syntaktisch korrekt formulierte Programme sind zulässige Programme.

Semantik:
Bedeutung der einzelnen Sätze und Ausdrücke einer Sprache.

Zum Beispiel haben die beiden Sätze

„Das Gras ist grün.“
„Das Grün grast.“

eine unterschiedliche Bedeutung. Besonders der zweite Satz wird wohl in Bezug auf seine Bedeutung von den meisten Leuten als (semantisch) falsch oder unsinnig eingeschätzt — obwohl beide Sätze syntaktisch korrekt sind.

In der Anwendung von Programmiersprachen kann sich Semantik auf das Ergebnis eines Programms beziehen, d.h. ob das gewünschte Ergebnis erreicht wird.

Beispiel inkorrekter JavaScript-Syntax

1000 + 10 4;
456 { 33;
let num ber = 3 + 5;
console.log"Klammer fehlt")

Was sind die Fehler in diesem Programm? (Jede Zeile enthält syntaktische Fehler bzw. syntax errors ). Diese zu erkennen und zu beheben ist oft Teil der Programmierung.

Durch das Verständnis und die Anwendung aufeinander aufbauender Konzepte lernen wir die Syntax einer Sprache schrittweise kennen.

Beispiel eines Programms mit problematischer Semantik

console.log(1000 / 0);
console.log(1000 / "zero");
console.lok("es sollte log heißen");
console.log("dies ist ok");

Was ist hier das Problem?

Dieser Code kann in JavaScript ausgeführt werden, bricht aber mit einem Fehler bei der dritten Anweisung ab (Laufzeitfehler bzw. runtime error).

Bei der ersten Anweisung erscheint Infinity und bei der zweiten NaN (not a number) auf dem Bildschirm. Bei der dritten Anweisung tritt ein sogenannter Laufzeitfehler auf (hier ein TypeError).

Durch die Übung, die Anwendung und die Kombination der erlernten syntaktischen Konzepte einer Programmiersprache kommen wir im Lauf der Zeit in die Lage, semantisch korrekte Programme zu schreiben: Programme ohne Laufzeitfehler, welche „tun, was sie sollen“.

Anweisungen in JavaScript

Die Anweisungen werden im Programmablauf nacheinander ausgeführt. Sollte es eine Anweisung im Programm geben, die fehlerhaft ist, dann bricht das Programm die Ausführung ab und stoppt.

„Fehlerhaft“ kann hier u.a. bedeuten, dass ein Syntaxfehler im Code vorliegt oder zur Laufzeit (also während der Ausführung) ein Fehler auftritt (siehe TypeError oben).

⚠️

Ein wichtiger und leider sehr häufiger Aspekt des Programmierens ist, sich mit Fehlern gelassen auseinanderzusetzen, diese zu untersuchen und zu beheben (debugging).

Kommentare

Kommentare helfen uns oder anderen, den Code zu verstehen. Kommentare können im Prinzip beliebigen Text enthalten — hier wird die Syntax nicht überprüft.

Es gibt zwei Arten, in JavaScript Kommentare anzugeben. Auf einer Zeile mit // am Anfang wird alles danach bis zum Zeilenende ignoriert und nicht als Programm bzw. Anweisung aufgefasst:

// Dies ein Kommentar auf einer Zeile (nur diese Zeile!)
// Nach dem // kann beliebiger Text stehen
// Dieser Text wir nicht als Code betrachtet und vom Interpreter ignoriert
// Kommentare können z.B. den nachfolgenden Code erläutern
// oder nützliche Hinweise für uns und andere geben, um den Code zu verstehen

Mit /* wird ein möglicherweise mehrzeiliger Kommentar eingeleitet, der sich über mehrere Zeilen bis zum abschließenden */ ausstrecken kann:

/* Links steht der Begrenzer am Anfang
  So können längere Texte in Kommentaren erstellt werden.
  Hier zwischen wird alles ignoriert.
  Dieser Kommentar läuft also über mehrere Zeilen bis
  zum Begrenzer am Ende rechts hiervon */