Home
Navigation
Impressum
Coder Welten - Programmierung und Optimierung
Coder Welten
 
 

 

 

Editoren, Compiler und integrierte Entwicklungsumgebungen

Editoren, Parser und Interpreter

Eine Frage: Was hat ein Editor mit einer Maurerkelle gemein?

Eine Beantwortung der Frage sollte nicht sonderlich schwerfallen, da die Maurerkelle genauso zum Handwerkzeug eines jeden Maurers gehört, wie ein Editor zum Handwerkzeug eines jeden Programmierers. Kein Maurer könnte ohne Material und Handwerkzeug eine Wand aus Ziegelsteinen errichten und ebenso könnte kein Programmierer ohne einen geeigneten Editor einen Quellcode für ein Programm schreiben. Der Maurer wurde in diesem Zusammenhang nur stellvertretend für alle handwerklichen Berufe erwähnt, in denen keine Arbeit so richtig befriedigend ohne berufsspezifisches Handwerkzeug gelingen würde.

Im einfachsten Fall wird sich ein Programmierer mit einem reinen Texteditor begnügen, der lediglich den ASCII Zeichensatz oder einem mit diesem verwandten ANSI Zeichensatz darstellen und speichern kann.
Wesentlich besser ist hingegen ein Editor geeignet, der die Syntax der bevorzugten Programmiersprache hervorheben kann und noch besser ein Editor mit Syntax- und Klammerhervorhebung. Vor allem bei verschachtelten Anweisungen erleichtert ein Editor mit Klammerhervorhebung zuweilen sehr die Fehlersuche. Der kostenlos erhältliche Notepad++ wäre zum Beispiel als Allround-Editor für Windows Betriebssysteme durchaus geeignet, da er die Syntaxen einer Vielzahl von Auszeichnungs-, Script- und Programmiersprachen unterstützt.

Syntax- und Klammerhervorhebung

Je nachdem, ob es sich um eine Auszeichnungssprache wie HTML oder XML, um eine Scriptsprache wie JavaScript oder PHP, oder um eine Programmiersprache wie C oder C++ handelt, ist mindestens noch ein Parser, Interpreter oder Compiler erforderlich. Bei den Auszeichnungssprachen HTML (Hypertext Markup Language) und XML (Extensible Markup Language) sowie bei der Scriptsprache JavaScript schlüpft der clientseitige Webbrowser in die Rolle des Parsers, wobei in früheren Jahren unterschiedliche Browser zu unterschiedlichen Interpretationen bei der Darstellung von Webseiten neigten.
PHP (Hypertext Preprocessor) wird hingegen bereits vom Webserver geparst und interpretiert. Ein kleiner Codeschnipsel ließe sich sicherlich noch mit einem beliebigen Editor fertigen, in eine HTML-Seite einfügen und nach dem Upload einer Datei auf einem Server testen, eine ganze Anwendung hingegen nicht. Um PHP- Anwendungen auf einem PC testen zu können, muss auf dem Computer ein Server, ein Parser, ein Interpreter und ein Browser installiert sein. Anders als bei einer Auszeichnungssprache, wird der Quellcode nicht an einen clientseitigen Browser übermittelt, sondern zuerst von einem Parser für den serverseitigen Interpreter aufbereitet und das fertige HTML-Dokument (ebenso andere mit PHP generierte Dateitypen bzw. Dateiformate) an den Browser übermittelt. Das Softwarepaket XAMPP enthält neben einem Apache Server alle erforderlichen Tools, um PHP- Anwendungen erfolgreich mit einem heimischen Computer testen zu können.

Präprozessoren, Compiler und Linker

Gänzlich anders verhält es sich bei den Programmiersprachen C und C++, sowie bei vielen weiteren Hochsprachen. Bei diesen Programmiersprachen wird der Quellcode der Programmdateien durch einen Compiler in ein für Maschinen lesbares Programm übersetzt. Der Vorgang des Übersetzens wird bei diesem Vorgang als Kompilierung bezeichnet. Zum Compiler gehören ein Präprozessor und ein Linker, wobei die Aufgabe des Präprozessors darin besteht, Quellprogramme für die Kompilierung vorzubereiten. Diese Vorarbeit des Präprozessors besteht unter anderem in der Einbindung von Headerdateien, in der Entfernung von Kommentaren und von überflüssigen Leerräumen (Whitespace) aus dem Quellcode, sowie in der Auswertung und Umsetzung sonstiger, mit einer # Raute gekennzeichneter Präprozessor-Direktiven.
Nach dem der Präprozessor den Quellcode der Programmdatei vorbereitet hat, wird der Compiler selbigen in einen von Maschinen lesbaren Code übersetzen und diesen Code im Zuge der Übersetzung optimieren. Vom Compiler wird bei erfolgreicher Kompilierung eine Objektdatei angelegt. Besteht ein Programm aus mehr als eine Programmdatei, wird der Compiler auch mehr als eine Objektdatei anlegen.
Nach dem Compiler ist der Linker an der Reihe. Dieser führt mehrere Objektdateien zusammen (falls das Programm aus mehreren Quelldateien besteht) und verlinkt zu benötigten Laufzeitbibliotheken, insofern diese in den entsprechenden Headerdateien deklarierte Funktionen enthalten. Funktionen, die in der C-Standard-Bibliothek enthalten sind, werden hingegen nicht dynamisch verlinkt, sondern statisch gebunden.

Verlief die Kompilierung reibungslos und der Präprozessor, der Compiler und der Linker haben die jeweiligen Obliegenheiten verlässlich erledigt, sollte ein fertig gestelltes Programm mit der Extension "exe" vorliegen, zumindest insofern es sich um ein normales Computerprogramm handelt. Etwas anders verhält es sich mit einem Programm für einen Mikrocontroller, da das fertiggestellte Programm noch mit Hilfe einer speziellen Hardware (Brenner) zum Mikrocontroller übertragen werden muss, um es in dessen Speicher zu schreiben.

Kompilierung - Präprozessor, Compiler und Linker

Grafik: Vereinfachte Darstellung der Kompilierung eines C-Programms in der Reihenfolge programm.c -> Präprozessor -> Compiler -> Linker -> programm.exe.

Integrierte Entwicklungsumgebungen

Wesentlich besser als einzelne Compiler sind integrierte Entwicklungsumgebungen zur Programmierung von umfangreicheren Software-Anwendungen geeignet. In der Regel enthält so eine integrierte Entwicklungsumgebung (in der Kurzform IDE genannt) alle erforderlichen Tools zur Programmierung und Fehlersuche, wie Editor, Compiler, Linker, Debugger und Projektmanager. Im Hobbybereich erfreut sich die kostenlos erhältliche Visual C++ Express Edition von Microsoft großer Beliebtheit. Für den Bereich Mikrocontroller ist unter anderem die ebenfalls kostenlos erhältliche Entwicklungsumgebung MPLAB von Microchip erwähnenswert. Beide IDEs möchten wir Ihnen (in absehbarer Zeit) noch etwas näher vorstellen.

Erstellen eines C-Programms mit:

 
Navigation


 

 

 



 

Mikrocontroller

Übersicht

 


Copyright © Verlag Horst Müller - Stendal - 2006 - Impressum - Datenschutz - Nutzungsbedingungen