- 1 Abschnitt
- 7 Lektionen
- 2 Hours
alles ausklappenalles einklappen
- Programmiersprachen unterscheiden8
Grundkonzepte von Programmiersprachen
2.1. Syntax und Semantik
Syntax
- Die Syntax einer Programmiersprache definiert die Regeln, wie Symbole und Schlüsselwörter kombiniert werden, um gültige Programme zu erstellen. Eine korrekte Syntax ist entscheidend, damit der Code vom Compiler oder Interpreter verstanden wird.
Beispiel: Syntaxfehler in Python
# Syntaxfehler: fehlender Doppelpunkt am Ende der if-Anweisung
if 5 > 3
print("Fünf ist größer als drei")
Korrektur
# Korrekte Syntax
if 5 > 3:
print("Fünf ist größer als drei")
Semantik
- Die Semantik einer Programmiersprache beschreibt die Bedeutung der syntaktisch korrekten Anweisungen. Es geht darum, was der Code tatsächlich bewirkt, wenn er ausgeführt wird.
Beispiel: Semantik in Python
# Semantik: Zuweisung und Bedingung
x = 5 # Zuweisung: x erhält den Wert 5
if x > 3:
print("x ist größer als drei") # Ausgabe: "x ist größer als drei"
2.2. Compiler und Interpreter
Compiler
- Ein Compiler übersetzt den gesamten Quellcode einer Programmiersprache in Maschinencode, der direkt von der Hardware ausgeführt werden kann. Dieser Prozess erfolgt vor der Ausführung des Programms.
Beispiel: Compiler
| Programmiersprache | Compiler | Beispiel |
|---|---|---|
| C | gcc | gcc -o programm programm.c |
| Java | javac | javac Programm.java |
Interpreter
- Ein Interpreter übersetzt und führt den Quellcode Zeile für Zeile zur Laufzeit aus, ohne ihn vorher in Maschinencode zu übersetzen.
Beispiel: Interpreter
| Programmiersprache | Interpreter | Beispiel |
|---|---|---|
| Python | Python Interpreter | python programm.py |
| JavaScript | Node.js | node programm.js |
Vergleich: Compiler vs. Interpreter
| Kriterium | Compiler | Interpreter |
|---|---|---|
| Übersetzung | Vor der Ausführung | Zur Laufzeit |
| Ausführungsgeschwindigkeit | Schnellere Ausführung | Langsamere Ausführung |
| Fehlererkennung | Fehler werden vor der Ausführung erkannt | Fehler werden zur Laufzeit erkannt |
| Beispiele | C, C++, Java | Python, JavaScript, Ruby |
2.3. Paradigmen von Programmiersprachen
Programmiersprachen können verschiedene Programmierparadigmen unterstützen, die unterschiedliche Ansätze zur Problemlösung und Softwareentwicklung bieten.
Vergleich der Programmierparadigmen
| Paradigma | Beschreibung | Beispielssprache |
|---|---|---|
| Prozedurale Programmierung | Erstellung von Funktionen oder Prozeduren, die sequentiell ausgeführt werden. | C, Pascal |
| Objektorientierte Programmierung | Erstellung von Klassen und Objekten, die Daten und Methoden kapseln. | Java, Python, C++ |
| Funktionale Programmierung | Verwendung von Funktionen als erste Klasse Objekte und Vermeidung von Zustandsänderungen und Nebenwirkungen. | Haskell, Lisp, JavaScript |
| Logische Programmierung | Verwendung von Logikregeln zur Ableitung von Schlussfolgerungen aus Fakten und Regeln. | Prolog, Datalog |
Prozedurale Programmierung
- Fokus auf die Erstellung von Funktionen oder Prozeduren, die sequentiell ausgeführt werden.
Beispiel: Prozedurale Programmierung in C
#include <stdio.h>
// Prozedur zur Addition von zwei Zahlen
int addiere(int a, int b) {
return a + b;
}
int main() {
int ergebnis = addiere(5, 3);
printf("Das Ergebnis ist: %d\n", ergebnis);
return 0;
}
Objektorientierte Programmierung (OOP)
- Fokus auf die Erstellung von Klassen und Objekten, die Daten und Methoden kapseln.
Beispiel: OOP in Python
class Auto:
def __init__(self, marke, modell):
self.marke = marke
self.modell = modell
def beschreibung(self):
return f"{self.marke} {self.modell}"
mein_auto = Auto("Tesla", "Model S")
print(mein_auto.beschreibung())
Logische Programmierung
- Fokus auf die Verwendung von Logikregeln zur Ableitung von Schlussfolgerungen aus Fakten und Regeln.
Beispiel: Logische Programmierung in Prolog
class Auto:
def __init__(self, marke, modell):
self.marke = marke
self.modell = modell
def beschreibung(self):
return f"{self.marke} {self.modell}"
mein_auto = Auto("Tesla", "Model S")
print(mein_auto.beschreibung())
