-
Öffne folgenden Link in einem neuen Fenster: Compiler-Simulator
-
Klicke auf "Editor öffnen".
-
Lösche das geladene Programm und tippe eigene Programme ein. Lerne die Hochsprache kennen. Überlege was in der Hochsprache alles erlaubt ist.
10.1.3 Compiler und Interpreter
Es gibt zwei Ansätze für die Umwandlung eines Hochsprachen-Programms in ein Maschinen-Code-Programm:
Beispiele:
-
In einem Web-Browser läuft ein Interpreter der beim Betrachten der Webseite aus einem Programm, das in JavaScript geschrieben wurde, Maschinen-Code macht, welcher von der Hardware ausgeführt werden kann.
-
Wenn man eine neue Android-App für ein Android-Smartphone programmieren möchte, dann erstellt man im Android Studio ein Java-Programm. Ein Compiler schreibt das Java-Programm in Maschinen-Code um. Die Maschinen-Code-App kann über den Playstore von Kunden heruntergeladen werden.
Interpreter
Beispielsweise ist der 8-Bit CPU-Simulator in JavaScript programmiert. Sobald man die Webseite geöffnet und das Programm gestartet hat, funktioniert es, ganz gleich auf welchem Endgerät man das macht. Und das, obwohl auf all den verschiedenen Geräten völlig verschiedene Betriebssysteme laufen und auch die Hardware völlig anders ist.
JavaScript ist eine Interpreter-Sprache, die wie folgt funktioniert:
Vorteile eines Interpreter-Programms
- Man muss nur ein einziges Programm programmieren, das auf allen Betriebssystemen läuft.
Nachteile eines Interpreter-Programms
-
Man braucht eine spezielle Software, welche das Programm ausführen kann, z.B. einen Web-Browser.
-
Da das Programm zur Laufzeit in Maschinen-Code umgewandelt wird, läuft es relativ langsam.
Compiler
Beispielsweise kann man mit der Software AnyDesk auf andere Computer zugreifen und z.B. bei Problemen den fremden Computer wieder reparieren. Für jedes Betriebssystem gibt es ein eigenes AnyDesk-Programm das speziell für das entsprechende Betriebssystem programmiert wurde. Das bedeutet z.B., dass das Windows-AnyDesk-Programm nicht auf einem macOS-Rechner funktioniert und umgekehrt.
Vorteile eines Compiler-Programms
-
Ein Programm kann spezielle Fähigkeiten eines Betriebssystems nutzen.
-
Es läuft sehr schnell, da der fertige Maschinencode bereits gespeichert ist.
Nachteile eines Compiler-Programms
-
Für jedes Betriebssystem muss ein eigenes Programm programmiert werden.
-
Für verschiedene Betriebssysteme müssen verschiedene Programmier-Sprachen verwendet werden, die man dann auch lernen muss.
Übung: Wie funktioniert ein Compiler?
In der folgenden Übung wird mit einer sehr einfachen Hochsprache und dem 8-Bit CPU-Simulator gezeigt wie ein Compiler funktioniert.
- In einer einfachen Hochsprache wird ein kleiner Taschenrechner programmiert, der nur addieren und subtrahieren kann.
- Ein geschriebenes Programm wird vom Compiler geprüft.
- Sobald das Programm fehlerfrei ist, wird vom Compiler Maschinen-Code erzeugt.
- Der Maschinen-Code wird in den Arbeitsspeicher des 8-Bit CPU-Simulators geschrieben und dann ausgeführt.
-
Öffne folgenden Link in einem neuen Fenster: Compiler-Simulator
-
Klicke auf "Editor öffnen".
-
Klicke auf "Zeichen prüfen". Der Compiler prüft, ob nur erlaubte Zeichen im Programm-Code vorhanden sind. Das kannst du testen, indem du das Programm veränderst. Sobald ein unerlaubtes Zeichen im Code steht, beschwert sich der Compiler.
-
Klicke auf "Syntax prüfen". Der Compiler prüft, ob das Programm den Regeln der Mini-Hochsprache genügt. Das kannst du testen, indem du das Programm veränderst. Sobald du etwas geschrieben hast, was nicht den Regeln der Mini-Hochsprache genügt, beschwert sich der Compiler.
-
Klicke auf "Maschinencode erzeugen". Sobald der Compiler bestätigt hat, dass das Programm in Ordnung ist, wird automatisch ein binärer Maschinen-Code erzeugt. Dieser ist so gebaut, dass er auf der Hardware, auf welcher der Compiler läuft, auch funktioniert.
-
Klicke auf "Maschinencode ins RAM schreiben" und dann auf "Programm starten". Das Programm wird ausgeführt.
-
Den Programm-Editor kannst du wieder öffnen, indem du auf "Editor öffnen" klickst.
Übungen
-
Öffne folgenden Link in einem neuen Fenster: Compiler-Simulator
-
Klicke auf "Editor öffnen".
-
Lösche das vorhandene Programm und schreibe ein Programm mit welchem du zwei Zahlen eingibst, die dann addiert werden.
-
Öffne folgenden Link in einem neuen Fenster: Compiler-Simulator
-
Klicke auf "Editor öffnen".
-
Lösche das vorhandene Programm und schreibe ein Programm mit welchem du die Summe der Zahlen 13, 25 und 37 berechnest und auf der Anzeige ausgibst.