¨Ubungspaket 17 Der gcc Compiler
¨Ubungspaket 17 Der gcc Compiler
¨Ubungspaket 17 Der gcc Compiler
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Teil I: Stoffwiederholung<br />
Aufgabe 1: Grobaufbau des <strong>gcc</strong> <strong>Compiler</strong>s<br />
Durch den Aufruf <strong>gcc</strong> datei.c werden eigentlich vier größere Programme nacheinander<br />
aufgerufen. Benenne diese vier Programme und erläutere kurz, was ihre Aufgaben sind.<br />
1. Programm: Präprozessor<br />
Funktion:<br />
<strong>Der</strong> Präprozessor erfüllt im Wesentlichen drei Funktionen:<br />
1. <strong>Der</strong> Präprozessor ersetzt all #include-Direktiven durch die angegebenen<br />
Dateien (diese Dateien werden vollständig in den<br />
Quelltext eingefügt).<br />
2. Ersetzen aller #define-Makros durch ihre entsprechenden Definitionen.<br />
3. Übersetzen bzw. entfernen aller Anweisungen zwischen den<br />
#ifdef, #ifndef, #else und #endif Direktiven.<br />
2. Programm: Eigentlicher <strong>Compiler</strong> (der C-Übersetzer)<br />
Funktion:<br />
3. Programm: Assembler<br />
In dieser Phase wird das C-Programm in denjenigen Assembler-Code<br />
übersetzt, der zum gewählten Prozessor gehört. Das Ergebnis ist also<br />
eine Datei, die prozessorspezifisch ist.<br />
Ergebnis: eine Datei mit der Endung .s<br />
Funktion:<br />
<strong>Der</strong> Assembler wandelt den (prozessorspezifischen) Assembler-Code,<br />
der noch ”<br />
lesbare“ Anweisungen enthält in Maschinencode um. Das<br />
Ergebnis ist eine Datei, die nur noch aus unverständlichen Nullen<br />
und Einsen besteht, die üblicherweise zu hexadezimalen Zahlen zusammengefasst<br />
werden.<br />
Ergebnis: eine Datei mit der Endung .o<br />
4. Programm: Linker<br />
Funktion:<br />
<strong>Der</strong> Linker fügt den Maschinencode und alle verwendeten Bibliotheken<br />
zu einem einzigen lauffähigen Programm zusammen. Erst dieses<br />
Programm kann vom Prozessor (in Zusammenarbeit mit dem Betriebssystem)<br />
auch wirklich ausgeführt werden.<br />
Ergebnis: eine ausführbare Datei mit dem angegeben Namen oder<br />
a.out<br />
Einführung in die Praktische Informatik, Wintersemester 2013/14 <strong>17</strong>-1