08.01.2024
Vor ein paar Tagen ist Niklaus Wirth gestorben. Das ist bedauerlich und es betrifft mich in gewisser Weise, weil ich nach langer Pause erst kürzlich wieder begonnen habe mich mit seinem Werk detaillierter auseinanderzusetzen.
Nach und nach habe ich meine Wissenslücken geschlossen und den Weg betrachtet, der von Algol-60 über Pascal, Modula-2 und Oberon in der einen Richtung und quer dazu über Lilith, Ceres und RISC5 geht und vielleicht diagonal durch ADA, ActiveOberon und Smalltalk-80 abgegrenzt werden kann. Ein überaus spannendes Gesamtwerk, das m.E. nicht genug Beachtung außerhalb der Lehre gefunden hat.
Die Programmiersprache Oberon ist eher schlicht. Aber sie bloß als das bessere Pascal abzutun wäre zu kurz gegriffen. Mit dem Oberon System zusammen ist etwas verfügbar, was die Dogmen der modernen Softwareentwicklung hinterfragen kann. Wer Problemlösungen an den gewachsenen Strukturen großer IT-Systeme orientiert, verpasst leicht viel einfachere Mechanismen, die das gleiche Problem lösen. Insbesondere für den Hobby-Programmierer ist das relevant, denn seine Zeit ist stärker begrenzt als im professionellen Umfeld und seine Lösungen müssen nicht Massenkompatibel sein.
Anders als bei ADA, wo es praktisch nur einen vollständigen Compiler gibt, haben sich viele Programmierer an ihrem eigenen Oberon-Compiler versucht. Aktuell nutze ich persönlich (unter anderem) Niklaus Wirths Code, der von 2013 bis 2017 neu aufgelegt wurde und die vielen „Verbesserungen“ seiner Nachfolger nicht enthält. Ein Emulator von Peter De Wachter, der über SDL2 auch auf Macs und unter Windows läuft, spielt die Rolle des Ceres-Nachfolgers.
In dieser Fassung des Oberon Systems gibt es keine Umlaute. Der RISC5-Computer hat nur eine US-Tastatur und es gibt kein vorbereitetes Konzept für Tastaturlayouts. Um mir selbst zu helfen und nicht zu einer überkomplexen Lösung zu gelangen, habe ich kurzerhand die Scancodetabelle geändert und neu compiliert. Damit habe ich keine Umlaute, aber ich brauche mich für englische Texte nicht umzugewöhnen: „Z“, „Y“, die Runden Klammern, das Fragezeichen und der Doppelpunkt – alles entspricht der Beschriftung der Tasten. Die viel gehasste und bei PC und Mac verschiedene deutsche Belegung der geschweiften und eckigen Klammern konnte ich mir dabei schenken: diese sind jetzt direkt über die Tasten zu bekommen, die sonst für „ö“ und „ä“ genutzt werden, ganz so wie auf der US-Tastatur.
Die Änderung betrifft die Datei Input.Mod. Die neuen Scancodes sind:
KTabAdr := SYSTEM.ADR($
00 00 00 00 00 1A 00 00 00 00 00 00 00 09 5E 00
00 00 00 00 00 71 31 00 00 00 79 73 61 77 32 00
00 63 78 64 65 34 33 00 00 20 76 66 74 72 35 00
00 6E 62 68 67 7A 36 00 00 00 6D 6A 75 37 38 00
00 2C 6B 69 6F 30 39 00 00 2E 2D 6C 5B 70 60 00
00 00 5D 00 40 5C 00 00 00 00 0D 2B 00 23 00 00
00 3C 00 00 00 00 08 00 00 00 00 00 00 00 00 00
00 7F 00 00 00 00 1B 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 09 7E 00
00 00 00 00 00 51 21 00 00 00 59 53 41 57 22 00
00 43 58 44 45 24 40 00 00 20 56 46 54 52 25 00
00 4E 42 48 47 5A 26 00 00 00 4D 4A 55 2F 28 00
00 3B 4B 49 4F 3D 29 00 00 3A 5F 4C 7B 50 3F 00
00 00 7D 00 5E 7C 00 00 00 00 0D 2A 00 27 00 00
00 3E 00 00 00 00 08 00 00 00 00 00 00 00 00 00
00 7F 00 00 00 00 1B 00 00 00 00 00 00 00 00 00$)