Programmiersprachen einfach erklärt
Eine Programmiersprache ist eine formale Sprache, mit der du Rechenvorschriften für einen Computer formulierst. Sie gibt vor, welche Schreibweisen erlaubt sind und wie daraus ein ausführbares Programm entsteht.
Auf dieser Seite lernst du den Weg vom Quelltext zur Ausführung kennen. Außerdem unterscheidest du wichtige Sprachbestandteile, Ausführungsmodelle und Programmierparadigmen.
Hake ab, was du schon kannst — und komm am Ende hierher zurück!
Was macht eine Programmiersprache aus?
Ein Computer verarbeitet Maschinenbefehle. Für Menschen ist deren binäre Darstellung jedoch schwer zu lesen. Programmiersprachen schaffen deshalb eine verständlichere Ebene zwischen einer Aufgabe und der Maschine.
Programmiersprache
Eine Programmiersprache ist eine formale Sprache: Für ihre Zeichen, Wörter und Anweisungen gelten genau festgelegte Regeln. Mit ihr beschreibst du Daten und Rechenvorschriften, die ein Computer ausführen kann.
Die erlaubten Schreibmuster heißen Syntax. Ein fehlendes Zeichen oder eine falsch angeordnete Anweisung kann dazu führen, dass ein Programm nicht übersetzt oder ausgeführt wird. Welche Schreibweise richtig ist, hängt von der verwendeten Sprache ab.
Programme können textuell oder visuell formuliert werden. In einer visuellen Sprache setzt du beispielsweise Blöcke zusammen. In einer textuellen Sprache schreibst du Anweisungen als Quelltext. Beide Darstellungen können dieselben Grundideen ausdrücken, etwa eine Reihenfolge, eine Bedingung oder eine Wiederholung.
Eine Programmiersprache ist nicht nur eine Sammlung von Befehlen. Sie legt auch Regeln dafür fest, wie Daten und Anweisungen dargestellt und miteinander verbunden werden.
Wie wird aus Quelltext eine Ausführung?
Der von Menschen geschriebene Quelltext ist für einen Prozessor normalerweise nicht unmittelbar verständlich. Er muss in passende Maschinenbefehle überführt werden.
Der grundlegende Weg lautet:
- Du formulierst Anweisungen als Quelltext.
- Ein Übersetzungs- oder Ausführungswerkzeug verarbeitet den Quelltext.
- Der Computer führt die entsprechenden Maschinenbefehle aus.
- Das Programm verarbeitet Eingaben und erzeugt Ausgaben oder verändert gespeicherte Daten.
Compiler
Ein Compiler übersetzt den Programmtext als Ganzes. Dabei kann direkt Maschinencode oder zunächst ein Zwischencode entstehen.
Interpreter
Ein Interpreter verarbeitet Anweisungen während der Programmausführung und ordnet ihnen ausführbare Maschinenbefehle zu.
Mischformen sind ebenfalls möglich. Dabei wird Quelltext zuerst in einen Zwischencode übersetzt. Eine Ausführungsumgebung verarbeitet diesen Code später weiter. Bei der Just-in-Time-Kompilierung werden benötigte Abschnitte unmittelbar vor oder während der Ausführung übersetzt.
Im Quelltext steht die Anweisung A = B + 100 * C. Der Prozessor kann diese Schreibweise nicht direkt ausführen.
Nehmen wir B = 20 und C = 3 an:
- Zuerst wird
100 * Cberechnet:100 * 3 = 300. - Danach wird
Baddiert:20 + 300 = 320. - Der Wert
320wirdAzugewiesen.
Ein Compiler oder Interpreter sorgt dafür, dass passende Maschinenbefehle ausgeführt werden. Die genaue Befehlsfolge hängt unter anderem von der Sprache, dem Übersetzungswerkzeug und dem Computersystem ab.
Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.
Der von Menschen geschriebene Programmtext heißt . Ein übersetzt ihn als Ganzes, während ein Anweisungen während der Ausführung verarbeitet.
Welche Bausteine besitzen viele Sprachen?
Die Schreibweise unterscheidet sich von Sprache zu Sprache. Viele Programmiersprachen bieten aber ähnliche Grundbausteine.
- Ein- und Ausgabe: Ein Programm liest Daten ein und gibt Ergebnisse aus.
- Variablen: Benannte Speicherorte halten Werte fest.
- Berechnungen und Zuweisungen: Werte werden erzeugt, verändert und gespeichert.
- Bedingungen: Das Programm entscheidet zwischen verschiedenen Abläufen.
- Schleifen: Anweisungen werden wiederholt.
- Unterprogramme oder Funktionen: Ein größerer Ablauf wird in wiederverwendbare Teile zerlegt.
- Bibliotheken und Module: Bereits entwickelte Funktionen werden eingebunden.
Datentyp
Ein Datentyp beschreibt, welche Art von Wert verarbeitet wird, etwa eine Ganzzahl, eine Gleitkommazahl, ein einzelnes Zeichen oder eine Zeichenkette.
Bei einer statischen Typprüfung werden Typen bereits während der Übersetzung geprüft. Bei einer dynamischen Typprüfung geschieht die Prüfung während der Laufzeit. Dadurch können manche Typfehler erst beim Ausführen auffallen.
Ein kleines Temperaturprogramm könnte diese Grundideen verbinden:
- Es liest einen Messwert ein.
- Es speichert den Wert in einer Variablen.
- Eine Bedingung prüft, ob ein festgelegter Grenzwert überschritten wurde.
- Je nach Ergebnis gibt das Programm eine passende Meldung aus.
Die konkrete Syntax ist austauschbar. Die Konzepte Eingabe, Variable, Bedingung und Ausgabe bleiben erhalten.
Wie unterscheiden sich Programmierparadigmen?
Ein Programmierparadigma ist eine grundlegende Art, Programme und Lösungen zu strukturieren. Eine Sprache kann mehrere Paradigmen unterstützen.
Imperativ: den Lösungsweg angeben
Ein imperatives Programm beschreibt, wie ein Ergebnis entsteht. Es nennt Anweisungen in einer bestimmten Reihenfolge und verwendet beispielsweise Zuweisungen, Bedingungen und Schleifen.
Deklarativ: das gewünschte Ergebnis beschreiben
Ein deklaratives Programm beschreibt, welche Bedingungen das Ergebnis erfüllen soll. Die Ausführungsumgebung entscheidet, wie sie zu diesem Ergebnis gelangt.
Objektorientiert: Daten und Verhalten bündeln
Bei der objektorientierten Programmierung werden zusammengehörige Daten und die darauf arbeitenden Methoden in Objekten beziehungsweise Klassen gebündelt.
Eine Klasse kann einen allgemeinen Bauplan darstellen. Durch Vererbung kann eine spezialisierte Klasse Eigenschaften und Methoden einer allgemeineren Basisklasse übernehmen und ergänzen. Kapselung bedeutet, dass ein Objekt eine festgelegte Schnittstelle anbietet, während interne Einzelheiten verborgen bleiben.
Imperativ fragt vor allem: „Welche Schritte führen zum Ergebnis?“ Deklarativ fragt: „Welche Bedingungen muss das Ergebnis erfüllen?“ Objektorientierung ordnet Daten und zugehöriges Verhalten gemeinsamen Objekten zu.
Wie wählst du eine passende Sprache aus?
Es gibt keine Programmiersprache, die für jedes Ziel am besten geeignet ist. Eine sinnvolle Wahl beginnt deshalb nicht mit einer Rangliste, sondern mit deiner Aufgabe.
Prüfe diese Fragen:
- Was möchtest du entwickeln? Ein Spiel, eine Datenanalyse und eine hardwarenahe Anwendung stellen unterschiedliche Anforderungen.
- Wie möchtest du einsteigen? Visuelle Blöcke können Abläufe sichtbar machen; textuelle Sprachen machen die genaue Schreibweise stärker zum Lerngegenstand.
- Welche Grundkonzepte willst du lernen? Variablen, Bedingungen, Schleifen, Funktionen und Ein- oder Ausgabe lassen sich in vielen Umgebungen wiederfinden.
- Welche Hilfen stehen bereit? Dokumentation, Lernmaterialien und eine aktive Gemeinschaft können das Lernen erleichtern.
- Welche weiteren Technologien brauchst du? In echten Projekten arbeitet eine Sprache häufig mit Bibliotheken, Werkzeugen und anderen Technologien als Tech-Stack zusammen.
Die erste Sprache legt deinen späteren Weg nicht fest. Wenn du übertragbare Konzepte verstehst, kannst du sie in anderen Sprachen wiedererkennen. Die neue Syntax musst du trotzdem jeweils lernen.
Karteikasten
Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.
Alles auf einen Blick
- Programmiersprache
- Darstellung: textueller Quelltext oder visuelle Blöcke
- Regeln: Syntax und Datentypen
- Grundbausteine: Eingabe, Variablen, Bedingungen, Schleifen und Funktionen
- Ausführung: Compiler, Interpreter oder Mischform
- Paradigmen: imperativ, deklarativ und objektorientiert
- Auswahl: Lernziel, Einsatzgebiet, Zugänglichkeit und Werkzeuge
Abschluss-Check
Du hast den Kern verstanden, wenn du den Weg Quelltext → Übersetzung oder Interpretation → Maschinenbefehle → Ausführung erklären und eine Sprache passend zu einer konkreten Aufgabe auswählen kannst.
Mit Google fortfahren