Programme und Algorithmen

Was sind Programme und Algorithmen?

Algorithmen: Die präzise Handlungsanweisung

Ein Algorithmus ist eine exakte und eindeutige Schritt-für-Schritt-Anleitung, die beschreibt, wie ein bestimmtes Problem gelöst oder eine Aufgabe erledigt werden kann. Stell dir einen Algorithmus wie ein detailliertes Kochrezept vor: Es listet nicht nur die Zutaten auf, sondern gibt auch genaue Anweisungen zur Reihenfolge und Art der Zubereitung, damit am Ende der gewünschte Kuchen entsteht. Ein Algorithmus muss so präzise sein, dass er theoretisch auch von jemandem ohne Vorkenntnisse im Kochen (oder im jeweiligen Problembereich) erfolgreich ausgeführt werden könnte, wenn die einzelnen Schritte verstanden werden.

Programme: Die Umsetzung von Algorithmen für den Computer

Ein Programm ist die konkrete Implementierung eines Algorithmus in einer für Computer verständlichen Programmiersprache. Es übersetzt die logischen Schritte des Algorithmus in eine Folge von Anweisungen, die ein Computer direkt ausführen kann. Wenn der Algorithmus das Kochrezept ist, dann ist das Programm die Version dieses Rezepts, die so formuliert ist, dass eine Küchenmaschine (der Computer) sie versteht und selbstständig den Kuchen backen kann. Programme können von sehr einfachen Aufgaben, wie der Addition zweier Zahlen, bis hin zu komplexen Anwendungen, wie einem Betriebssystem oder einer grafikintensiven Computerspiel, reichen.

Wie sehen Programme aus?

Die Struktur eines Programms hängt von der verwendeten Programmiersprache ab, aber grundlegende Elemente kehren immer wieder. Ein einfaches Programm, das zwei Zahlen addiert und das Ergebnis ausgibt, könnte in der Programmiersprache Python beispielsweise so aussehen:

# Zuerst weisen wir zwei Zahlen Variablen zu
meine_erste_zahl = 10
meine_zweite_zahl = 5

# Dann addieren wir diese beiden Zahlen und speichern das Ergebnis
ergebnis_der_addition = meine_erste_zahl + meine_zweite_zahl

# Schließlich geben wir das Ergebnis auf dem Bildschirm aus
print("Das Ergebnis der Addition ist:", ergebnis_der_addition)

Dieses Beispiel zeigt typische Elemente: Die Deklaration von Variablen zum Speichern von Werten (hier meine_erste_zahl, meine_zweite_zahl, ergebnis_der_addition), eine einfache Anweisung zur Verarbeitung dieser Werte (die Addition) und eine Anweisung zur Ausgabe des Resultats.

Wie wird Quellcode ausgeführt?

Compiler: Der Komplettübersetzer vor dem Start

Ein Compiler ist ein spezielles Programm, das den gesamten von Menschen geschriebenen Quellcode einer Programmiersprache, wie zum Beispiel C++ oder Java, in Maschinensprache übersetzt, bevor das Programm überhaupt gestartet wird. Maschinensprache besteht aus Befehlen, die der Prozessor eines Computers direkt verstehen und ausführen kann. Stell dir einen Compiler wie eine:n Übersetzer:in vor, der ein ganzes Buch (deinen Quellcode) auf einmal von einer Sprache (Programmiersprache) in eine andere (Maschinensprache) übersetzt. Das Ergebnis ist ein fertiges Buch in der Zielsprache, eine sogenannte ausführbare Datei, die dann direkt gelesen (ausgeführt) werden kann. Dieser Übersetzungsvorgang, Kompilierung genannt, muss nur einmal durchgeführt werden, es sei denn, der Quellcode wird geändert.

Interpreter: Der Simultandolmetscher während der Laufzeit

Ein Interpreter arbeitet anders als ein Compiler. Er übersetzt den Quellcode nicht komplett im Voraus, sondern liest und führt ihn Zeile für Zeile oder Anweisung für Anweisung aus, während das Programm läuft. Programmiersprachen wie Python oder JavaScript werden häufig interpretiert. Ein Interpreter ist wie ein:e Simultandolmetscher:in, der das Buch (deinen Quellcode) Satz für Satz (Zeile für Zeile) erst dann übersetzt, wenn dieser Satz gerade "gelesen" (ausgeführt) werden soll. Es wird also keine separate, komplett übersetzte Maschinensprache-Datei erzeugt; der Interpreter führt die Übersetzung und Ausführung quasi gleichzeitig durch.

Compiler versus Interpreter: Ein Vergleich

Die Wahl zwischen einer kompilierten und einer interpretierten Sprache hat praktische Auswirkungen auf Entwicklung und Ausführung. Kompilierte Sprachen, wie C oder C++, erzeugen nach der Übersetzung oft sehr performante, also schnelle, ausführbare Dateien, da der Code bereits optimal für den Prozessor vorbereitet ist. Allerdings kann der Kompilierungsvorgang selbst bei großen Projekten einige Zeit in Anspruch nehmen, was die Entwicklungsgeschwindigkeit verlangsamen kann. Fehler im Code, wie zum Beispiel Tippfehler oder logische Inkonsistenzen, werden oft schon während der Kompilierung erkannt. Interpretierte Sprachen, wie Python, ermöglichen hingegen eine schnellere Entwicklung, da Änderungen im Code direkt getestet werden können, ohne einen erneuten Kompilierungsschritt abwarten zu müssen. Die Ausführungsgeschwindigkeit ist tendenziell geringer als bei kompilierten Sprachen, da die Übersetzung zur Laufzeit erfolgt.

Lernziele

  • den Prozess der Umwandlung von Quellcode in ausführbare Programme erklären, indem die Unterschiede zwischen Compiler und Interpreter sowie die jeweiligen Schritte der Übersetzung und Ausführung beschrieben werden.
  • die Struktur eines einfachen Programms veranschaulichen, indem ein kurzes Beispielprogramm in einer modernen Sprache wie Python vorgestellt und dessen grundlegender Aufbau (z.B. Variablendeklaration, einfache Anweisung, Ausgabe) erläutert wird.
  • die Konzepte Programm und Algorithmus differenzieren, indem die jeweiligen Definitionen und die Beziehung zwischen ihnen (z.B. ein Programm als Implementierung eines Algorithmus) erläutert werden.
  • die praktischen Unterschiede zwischen kompilierten und interpretierten Programmiersprachen vergleichen, indem Aspekte wie Entwicklungsgeschwindigkeit und Ausführungsperformance anhand von Beispielen (z.B. C vs. Python) gegenübergestellt werden.

Genug gelesen? Zeit, es wirklich zu können!

Die Theorie aus diesem Artikel ist die perfekte Basis. In der asyoube Lernplattform wendest du dieses Wissen an, bekommst persönliches Feedback und bereitest dich interaktiv auf deine Ausbildung oder deine Prüfungen vor.

Für Ausbilder & Unternehmen

Möchten Sie Ihr gesamtes Team mit asyoube ausbilden? Entdecken Sie unsere B2B-Lösung mit einfacher Verwaltung, Fortschritts-Tracking für Ihre Azubis und attraktiven Team-Preisen.