Entwicklung eines Modulkonzeptes für einen MIEC-Compiler

  • Daniel Kogler

    Studienabschlussarbeit: Masterarbeit

    Abstract

    Diese Masterarbeit beschäftigt sich mit der Erweiterung eines MIEC-Compilers, der die
    Programmiersprache MiniIEC (MIEC) in PROL16-Maschinencode übersetzt. Ziel der
    Arbeit ist die Implementierung eines Modulkonzepts, das die Kapselung von Funktionen
    und Variablen in Module ermöglicht sowie die Unterstützung von Funktionsaufrufen mit
    Parametern und Rückgabewerten in der MIEC-Sprache.
    Die Arbeit beginnt mit einer Einführung in die Grundlagen und theoretischen Hintergründe des Compilerbaus, darunter attributierte Grammatiken (ATG), Scanner, Parser,
    Zwischendarstellung und Codegenerierung. Anschließend werden existierende Modulkonzepte komplexerer Sprachen untersucht und verschiedene Modulkonzepte für MIEC
    diskutiert. Die konkrete Implementierung und Integration eines dieser Modulkonzepte
    wird genauer beschrieben, gefolgt von umfangreichen Tests des erweiterten Systems.
    Das implementierte Konzept kann mit angepasster MIEC-Grammatik und diversen Erweiterungen im Compiler die wesentlichen Ziele erreichen. Es ermöglicht das Auslagern
    von Funktionen und Variablen in separate Moduldateien, welche von einem Hauptprogramm importiert werden können. Es können nur gesamte Modulinhalte importiert
    werden, und eine vollwertige Datenkapselung zum Verstecken von Implementierungsdetails ist nicht möglich. Außerdem ergibt sich kein Vorteil hinsichtlich der Compilezeit,
    da bei Änderungen im Quellcode alle Dateien neu compiliert werden müssen, um das
    Zusammenfügen in der Zwischendarstellung zu ermöglichen.
    Die Ergebnisse der Arbeit zeigen den erweiterten Funktionsumfang der MIEC-Sprache
    und bieten tiefere Einblicke in die Funktionsweise des erweiterten Compilers. Die Arbeit
    schließt mit einer Bewertung der Ergebnisse und einem Ausblick auf mögliche zukünftige
    Erweiterungen.
    Datum der Bewilligung2024
    OriginalspracheDeutsch (Österreich)
    Betreuer/-inFranz Leopold Wiesinger (Betreuer*in)

    Zitieren

    '