Zurück zum Menü 5
5.2.2 Interpreter / Compiler

Erstellt: Winter 2005/2006



Profan ist sowohl Compiler- als auch eine Interpretersprache.

Was ist eigentlich ein Interpreter

Was ein Compiler ?

Nun, das ist so:

Eine CPU im Computer (CPU = Central Processing Unit ==> Zentrale Prozess Einheit) kann ja - wie wir alle wissen - nur Nullen und Einsen verarbeiten. Eine Null stellt dabei auch Null Volt dar und eine Eins eine höhere Spannung, damals 5 Volt. Heute ist die Betriebsspannung vieler Prozessoren (CPUs) geringer, damit diese Bausteine nicht so viel Strom verbrauchen und nicht so warm werden.

Also einfach gesagt: "0" ---> 0 Volt / "1" ---> 5 Volt.

So. Nun hat man sich ganz früher auch tatsächlich hingesetzt und diese Einsen und Nullen in den Rechner getippt oder sogar über Schalter eingegeben. Wenn dann aber das Programm fertig war und man es einige Tage oder gar Jahre beiseite gelegt hatte und sich dann wieder ansah, so stieg man durch den eigenen Code nicht mehr durch, weil alles nur aus Einsen und Nullen bestand.

Beispiel Maschinencode:

11001011
10111000
10001111
11000011
...

Man erhielt sofort das sogenannte Maschinenprogramm oder auch den Maschinencode, der direkt von der CPU gelesen und verarbeitet werden konnte. Wer so programmiert, brauch sehr lange dazu, viele Fehler können passieren, aber das Progamm wäre das Schnellste, was die CPU ausführen könnte. Aber besonders auch bei längeren Programmen konnte man sich überhaupt nicht in den Zahlenkolonnen zurechfinden und man musste auf einem Blatt Papier alles noch einmal genau mit Worten beschreiben, was man da eigentlich gemacht hat. Deshalb hat man den Assembler erfunden, bei dem die einzelnen Befehle für die CPU aus meistens 3 Buchstaben bestanden. Diese Umsetzung der Einsen und Nullen in drei Buchstaben nennt man Mnemonik. Man hat also einen mnemonischen Code der viellecht so aussah:

1000 LDA 10
1001 LDC 20
1002 CMP A,C
1004 BNE 1000
1007 Push A
...

Das könnte ein kleines Assmblerprogramm einer CPU sein. Man musste sich also nun nicht mehr die vielen Nullen und Einsen merken und konnte sich viel schneller im eigenen und fremden Programmiercode zurechfinden. Die Zahlen vorne sind im Allgemeinen die Speicherzellen, wo die Befehle drin stehen. Assembler wird auch heute noch sehr oft benutzt, sogar bei neuesten PCs, aber nur, wenn das erzeugte Programm besonders schnell werden soll, bzw. wenn ein Problem mit einer Hochsprache nicht zu lösen ist. Häufiger setzt man es bei Microcontrollern ein, denn dort sind die Programme meist auch nur recht kurz, so dass man das alles noch gut in den Griff bekommt. Ein Assemblerprogramm muss aber assembliert werden, bevor es die CPU lesen und verarbeiten kann. Es wird also auch wieder in die Nullen und Einsen übersetzt, die die CPU lesen und verstehen kann. Das Assemblieren kann "per Hand" mit einer Übersetzungstabelle oder auch automatisch mit einem Assembler geschehen.

Später entwickelte man sogenannte Hochsprachen, wie z.B. BASIC, PASCAL, FORTRAN, COBOL, und natürlich PROFAN. Diese Sprachen benutzen einen Code, der der menschlichen Sprache sehr ähnlich ist und somit leicht gelesen und verstanden werden kann. Nur leider kann die CPU das nicht lesen, es muss also wieder in die Maschinensprache übersetzt werden.

Das kann man mit einem Interpreter machen. Dieser Interpreter ist einweiteres Programm, was jede Zeile Code einliest danach übersetzt und dan die CPU schickt, die diesen Code dann ausführt. Dadurch, dass der Interprter wärhend des Programmablaufes auch noch den Code übersetzen muss, laufen Interpreter für gewöhnlich recht langsam. Auch ist es nötig, dass man z.B. das BASIC oder das PROFAN auf dem Computer haben muss, damit der Interpreter funktioniert.

cls
Declare a%,x%,y%,z%,R%,G%,B%
let a%=0
whilenot a%
let R%=@rnd(32)
let G%=@rnd(32)
let B%=@rnd(32)
let x%=@rnd(620)
let y%=@rnd(480)
SetPixel x%,y%,@rgb(R%,G%,B%)
wend

Wenn du das nicht compiliert und gelinkt hast, benötigst du das Profan (hier: Profan 5.0b NT, Freeware), um das Programm starten zu können, denn das Programm liegt als Quelltext vor und kann nach dem Laden dann von dem im Profan enthaltenen Interpreter ausgeführt werden. Der Interpreter hat den Vorteil, dass du Programmänderungen sofort ausprobieren kannst, ohne erst lange compilieren und linken zu  müssen. Das spart Zeit und vor allem Anfänger schätzen das, weil sie noch viele Fehler machen und oft ausprobieren müssen und gern etwas mit den Befehlen herumspielen und experimentieren.

Anders ist das beim Compiler. Er übersetzt den Quelltext (das von uns in der Hochsprache geschriebene Programm) in einem Rutsch in Maschinensprache und erzeugt eine ausführbare EXE-Datei, die dann ohne die ursprüngliche Programmiersprache auf einem Computer lauffähig ist. Manchmal, so z.B. bei Visual Basic oder auch bei Profan werden Runtime-Bibliotheken mit eingebunden (Profan) oder aber separat bereitgestellt (Visual Basic), die zum ausführen des Programms nötig sind. Bei Profan wird diese Runtime-Bibliothek in die EXE-Datei hinein gelinkt, also mit ihr verbunden, so dass hier nur eine einzige Datei entsteht, die selbstständig lauffähig ist. Das ist dann auch ein Vorteil gegenüber z.B. Visual Basic, wo ja immer die VBRUN.DLL noch zusätzlich nötig ist.

Download (buntes Grisseln.exe, 233kB)

Wie du siehst wird das Progamm von allein ausgeführt, weil es zuvor bereits in einem separaten Druchgang (compilieren und linken) in eine maschinenlesbare Version umgewandelt wurde. Aber wieso ist das winzige Programm so groß (233kB) ? Nun ja, das liegt daran, dass zu dem Programm eine Runtime-Bibliothek hinzugelinkt wurde, die zur Ausführung des Programms nötig ist.

Bei einer normalen Profan-EXE-Datei handelt es sich also um eine eigenständig lauffähige Datei, in der die Runtimebibliothek bereits enthalten ist. du beötigst also normalerweise (ohne zusätzliche Tricks und Kniffe, die du vielleicht ins Programm eingebaut hast) nur diese  einzige Datei und dein Progamm läuft auch ohne Profan.

Es gibt auch Programmiersprachen, die ganz ohne eine Runtimebibliothek auskommen, das sind z.B. "C" oder auch "PureBasic". Diese Progammiersprachen erzeugen sehr schnellen Code. Leider sind beide nicht kostenlos und "C" ist schwerer zu lernen als Profan. PureBasic ist aber eine echte Alternative, wenn man mal etwas tiefer in die Programmiererei einsteigen und trotzdem Basic benutzen möchte.

Versuche auch du es einmal mit Profan, hole dir die Freewareversion und mach ein paar  Software-Bastelein damit. Wenn du gut klar kommst und für Dich die Geschwindigkeit ausreichend erscheint, so kannst du ja dann zum neuesten Profan umsteigen. Das ist natürlich umfangreicher als die Version 5.0, kann auch mehr, ist auch schneller, aber leider ist auch die neueste Version von Profan nicht kostenlos.

Profan 5.0b NT scheint daher ideal zu sein, einmal in die Progammiererei hineinzuschnuppern, denn es kostet nichts, läuft stabil, hat eine gute, übersichtliche Hilfe und man kann auch damit schon sehr gute Windowsprogramme mit Fenstern, Menüs, Buttons usw. schreiben.

Prinzipiell kommt es ja nicht unbedingt darauf an, wie bunt der Bildschirm ist, sondern wie gut man das fertige Programm versteht und wie schnell jemand anderes den Umgang damit lernen kann. Ebenso ist es wichtiger, dass das Programm stabil läuft, als dass es durch zahlreiche Knöpfe Pulldowns und so weiter "glänzt".

Viel Spaß bei der Erkundung von Profan 5.0b NT.
(Download ---> profan50.zip / 2,7 MB)





Nach oben            Zurück zum Menü 5