Zum Inhalt springen
Fabian Deitelhoff

Übersetzerbau: Teil 1 der ersten Kurseinheit

Aus meinem alten Blog (2012–2017). Der Text steht so, wie ich ihn damals geschrieben habe.

Logo der FernUni HagenWie die Zeit doch vergeht. Mittlerweile ist die erste Woche vorbei. Die Bearbeitungszeit für die Kurseinheit 1 hat somit Halbzeit. Dieser Blogartikel ist also auch gleichzeitig mein erster Beitrag zu meiner Challenge, in der ich regelmäßig den Status meiner Bearbeitung und die Themen, die der Kurs  01810 – Übersetzerbau aktuell behandelt hat, beschreiben möchte.

Aktuelle Inhalte

Das erste Kapitel der Kurseinheit 1 konnte ich recht schnell abschließen. Darin wurden allgemeine Informationen zu den Hintergründen und Einsatzgebieten eines Übersetzers, zum Aufbau und zur Systemumgebung erklärt. Im Allgemeinen war das nicht viel Neues, da ich als Softwareentwickler mit diesen Themen fast tagtäglich zu tun habe. Und doch war es sehr schön, dass alles einmal konkret und fokussiert nachzulesen. Ohne den Ballast einer konkreten Programmiersprache, Technologie oder Plattform. Ganz allgemein und teilweise abstrakt. Aber dennoch gut zu lesen, nachzuvollziehen und mit der ein oder anderen witzigen Bemerkung beziehungsweise dem ein oder anderen Seitenhieb. Die Autoren scheinen die Programmiersprache C nicht sonderlich zu mögen. Oder sind sich einfach dessen Komplexität bewusst :).

Während der Bearbeitung habe ich zwei zusammenfassende Abbildungen erstellt, die den Inhalt des ersten Kapitels fast vollständig enthalten. Glaube ich zumindest. Wenn ich etwas vergessen haben sollte, freue ich mich natürlich über einen Hinweis.

Abbildung 1 fasst die Übersetzungsphasen zusammen. Das Diagramm ist dem Skript angelehnt. Dazu habe ich die Datenformate in den Ablauf übernommen, die von der jeweiligen Phase entgegengenommen beziehungsweise als Ergebnis zurückgegeben werden. Zusätzlich zu kleinen Randnotizen, welche Besonderheiten und Aufgaben die jeweiligen Phasen haben.

Bild nicht mehr verfügbarAbb. 1: Übersetzungsphasen eines Compilers.

Abb. 1: Übersetzungsphasen eines Compilers.

Die zweite Abbildung beschreibt die Systemumgebung eines Übersetzers. Auch hier habe ich die Abbildung aus dem Skript übernommen und mit zahlreichen Anmerkungen ergänzt. Das Skript beschreibt die einzelnen Bestandteile der Systemumgebung und geht auch auf andere Anwendungsbereiche ein, in denen kein Lader/Binder vorhanden sein muss, sondern das Ergebnis auf andere Weise weiterverarbeitet wird.

Bild nicht mehr verfügbarAbb. 2: Systemumgebung eines Compilers.

Abb. 2: Systemumgebung eines Compilers.

Das erste Kapitel schließt mit dem Unterschied zwischen Compiler und Interpreter und der Erklärung zu realen und abstrakten Maschinen ab. Sehr schön beschrieben und ein schöner Exkurs zu Java & Co.

Auch mit dem zweiten Kapitel habe ich bereits begonnen, habe dort allerdings nur die ersten Seiten gelesen. Jetzt wird es auf jeden Fall erst einmal theoretischer, da es um die lexikalische Analyse geht. Dazu gehören auch reguläre Ausdrücke, reguläre Sprachen, sowie natürlich deterministische endliche Automaten und Zustandsdiagramme. Darauf freue ich mich schon, auch wenn ich einiges nachholen beziehungsweise auffrischen muss.

Mein Fortschritt

Bild nicht mehr verfügbarLesezeichen in 01810 - Kurseinheit 1Gemessen an den reinen Seitenzahlen bin ich recht weit fortgeschritten. Ziemlich genau die Hälfte der ersten Kurseinheit ist durchgearbeitet. Allerdings behandelt das erste Kapitel hauptsächlich einführende Dinge. Theoretische Aspekte kommen erst jetzt im zweiten Kapitel. Da wird meine Bearbeitungsgeschwindigkeit sicherlich (stark) nachlassen. Allerdings werde ich wahrscheinlich auch mehr neue Dinge lernen.

Des Weiteren seht noch die erste Einsendeaufgabe an. Die möchte ich schon gerne bearbeiten und einschicken, wenn auch nur teilweise. Auch wenn die Bearbeitung nicht verpflichtend ist und keine Mindestpunktzahl erreicht werden muss. Mal schauen, wie die aktuelle Woche verläuft. Am Wochenende bin ich schon gut verplant, was mir aktuell ein bisschen Kopfzerbrechen bereitet.

Fazit

Ein wirklich gelungener Einstieg in die Materie und das Skript. Schön geschrieben, gut zu verstehen, aufgelockert und nicht langweilig. Bin gespannt, was noch kommt. Auch das Niveau ist ordentlich. Genau so, wie ich es von der FernUni Hagen gewöhnt war.

Angefixt bin ich allemal. Ob ich das Tempo halten kann, wird sich zeigen. Auch der Umfang dieser Berichte könnte stark schwanken. Allzu theoretische Dinge möchte ich hier nicht aufbereiten. Entschieden habe ich mich da aber noch nicht.

Als Erscheinungsdatum wird sich wohl der Dienstag nach der abgelaufenen Bearbeitungswoche durchsetzen. Den Beitrag noch am Montag zu schreiben, könnte schwierig werden. Insbesondere, wenn eine Einsendeaufgabe ansteht.