Article View: bln.sci.informatik
Article #47[VORTRAG] Generierung eines Oberon-2-Compilers unter Linux
From: Maximilian Spring
Date: Tue, 30 Jan 1996 00:00
Date: Tue, 30 Jan 1996 00:00
59 lines
3943 bytes
3943 bytes
Technische Universitaet Berlin Forschungskolloqium
Fachbereich Informatik WS 1995/96
Institut fuer Angewandte Informatik
FG Programmiersprachen und Compiler
---------------------------------------------------------------------------
GENERIERUNG EINES OBERON-2-COMPILERS UNTER LINUX
oder
JACOB - Just A Compiler For Oberon-2
---------------------------------------------------------------------------
R. Bauer und M. Spring
Teil 1: Linux, Speicherstrukturen, Freispeicherverwaltung
Freitag 2.2.1996 14:00, Raum FR0003
Teil 2: Der Backend-Generator BEG
Freitag 9.2.1996 14:00, Raum FR5516
Im Rahmen einer Diplomarbeit wurde ein Compiler fuer die Programmier-
sprache Oberon-2 erstellt, der aus einzelnen Oberon-2-Modulen ein mono-
lithisches Programm erzeugt. Die eingesetzten Generierungswerkzeuge, der
implementierte Compiler und die durch ihn erzeugbaren Programme laufen
unter dem Betriebssystem Linux fuer Intel-Prozessoren (ab 80386). Der
Compiler erzeugt fuer jedes Quellmodul eine Assemblerdatei, welche durch
den GNU-Assembler 'as' in eine Objektdatei uebersetzt wird. Alle Objekt-
dateien werden mit dem Linker 'ld' zur ausfuehrbaren Datei gebunden.
Der Compiler ist einen vollstaendige Implementierung gemaesz dem Oberon-2-
Sprachreport, einschlieszlich automatischer Freispeicherverwaltung
(garbage collection). Die Betriebssystemanbindung erfolgt ueber sogenannte
Fremdmodule.
Die Erstellung des Compilers stuetzte sich auf das im Rahmen der Studien-
arbeit mit der Compiler-Compiler-Toolbox von Dr. Josef Grosch (GMD Karls-
ruhe) spezifizierte Frontend. Den Kern des Backends bildet ein Codeer-
zeuger, der durch den Backend-Generator BEG von Helmut Emmelmann (GMD
Karlsruhe) aus einer Spezifikation generiert wurde. Ziel der Diplomarbeit
war die Untersuchung der praktischen Benutzbarkeit der eingesetzten
Werkzeuge am Beispiel eines "echten" Compilers.
Ausgehend von einem Ueberblick ueber den implementierten Compiler und den
Zusammenhang seiner Komponenten wird im ersten Vortrag das Betriebssystem
Linux kurz vorgestellt und die im Zusammenhang mit der Entwicklung des
Compilers relevanten Details naeher erlaeutert. Anschlieszend werden die
modellierten Speicherstrukturen und ihre Verwendung insbesondere im Rahmen
der Freispeicherverwaltung dargestellt. Zusaetzlich werden Ueberlegungen
fuer eine effizientere automatische Freispeicherverwaltung vorgestellt.
Im zweiten Vortrag wird das fuer die Codeerzeugung eingesetzte Werkzeug
BEG kurz vorgestellt und sein Zusammenwirken mit den anderen Entwicklungs-
werkeugen erlaeutert. Anschlieszend wird eine Vorgehensweise bei der
Entwicklung einer (neuen) BEG-Spezifikation anhand der erstellten
Spezifikation dargestellt und die Vor- und Nachteile des Einsatzes von BEG
mittels Beispielen aus der Implementierung illustriert.
(Weitergehende Informationen stehen unter
http://www.cs.tu-berlin.de/~sepp/ zur Verfuegung.)
Technical Details
Message-ID:
<4ekl68$smo@news.cs.tu-berlin.de>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: GERMAN,ASCII-7-bit X-Google-Thread: 10d38e,499930272f0ca3e1,start X-Google-Attributes: gid10d38e,public X-Google-Thread: 10fc04,499930272f0ca3e1,start X-Google-Attributes: gid10fc04,public X-Google-Thread: 10af11,499930272f0ca3e1,start X-Google-Attributes: gid10af11,public From: sepp@cs.tu-berlin.de (Maximilian Spring) Subject: [VORTRAG] Generierung eines Oberon-2-Compilers unter Linux Date: 1996/01/30 Message-ID: <4ekl68$smo@news.cs.tu-berlin.de> X-Deja-AN: 137374172 content-type: text/plain; charset=iso-8859-1 organization: Technical University of Berlin, Germany mime-version: 1.0 newsgroups: bln.sci.informatik,bln.lehre.informatik,bln.lehre.misc