Freischaffender Erfinder Thomas Wolf Ein ziemlich freier Mensch
Universelle
Internet
Maschine
Arbeitsplatz
Europa
Omm
Lebenslauf
Grundgesetz
Menschen-
rechte
Aufklärung ist nötiger denn je
Speisewagen
Impressum
Beiträge
UIM Universelle Internet Maschine  
15.02.2007
Doch keine Mehrfachindizierungen

Als ich den Beitrag " Die Wolf'sche Normalform 1. Ordnung " schrieb, war ich natürlich noch nicht ganz fertig. Insbesondere für die Indizierung war die WNF1 noch nicht fertig. Und als ich die Layout-Aufbereitung für die Indizierung programmierte, merkte ich, daß die Möglichkeit der Mehrfachindizierung zu implementierungsbedingten Schwierigkeiten führte. In der Syntaxanalyse wurden die Mehrfachindizierungen iterativ analysiert, und im Ableitungsbaum analog zu dyadischen Operatoren gespeichert - und nicht als einfach vorwärtsverkettete lineare Liste. Das ermöglichte zwar eine sehr einfache rekursive Interpretation der Mehrfachindizierung, für die Layout-Aufbereitung wäre jedoch eine verkettete Liste viel günstiger gewesen.

Tja, und als ich mir den Kopf darüber zerbrach, wie ich die Interpretation und die Layout-Aufbereitung an dieser Stelle unter einen Hut bringen könnte, stellte ich mir die immer wieder heilsame Frage: Brauche ich überhaupt Mehrfachindizierungen?

Nein, die brauche ich nicht, war die richtige Antwort. Also habe ich sie gleich wieder vollständig aus der Sprache UIL entfernt, und war damit alle Probleme los. Komisch, wie mich die Indizierung insgesamt auf ziemlich schräge Holzwege geführt hat. Erst die Sache mit der Klammerzu und dann diese sinnlose Mehrfachindizierung. Sie ist natürlich Quatsch. Anders, als in meinem Beitrag " Stimmt nicht ganz " ist die Möglichkeit der Mehrfachindizierung eben doch eine "akademische Verliebheit in den Formalismus" gewesen, und noch dazu eine ziemlich dumme. Erstens: was soll ein sprachlicher Ausdruck, der keinen Sinn hat? Und Mehrfachindizierungen hätten nur einen Sinn, wenn UIL Listen von Listen als Datentyp enthalten würde. So ist es aber nicht. Und zweitens ist eine Fehlermeldung eben doch die bessere Reaktion des Interpreters, falls doch einmal versehentlich eine Mehrfachindizierung automatisch generiert werden sollte. Das ist dann für denjenigen, der so einen Ausdruck erzeugt hat (bis jetzt bin natürlich nur ich das), ein nützlicher Hinweis, daß da was an seinem Programm nicht stimmt. Das ist auf jeden Fall besser, als wenn der Interpreter einfach klaglos über solche Sinnlosigkeiten hinweggehen würde.

Auch das Argument, daß ich vielleicht später mal Listen von Listen in UIL einbauen werde, zieht nicht, denn ... noch ist es nicht so weit. Bis jetzt ist mir noch kein Anwendungsfall für Listen von Listen eingefallen, der die Konstruktion der UIM Universellen Internet Maschine vereinfachen würde. Na gut, mehrdimensionale Tabellen müssen natürlich in der UIM möglich sein, aber diese werde ich wahrscheinlich in UIL nicht als Listen von Listen implementieren, sondern mit den bereits vorhandenen Sprachkonstrukten. Ich habe noch keinen blassen Schimmer davon, wie ich das tun werde, aber ich habe es so im Urin, daß ich es nicht mit Listen von Listen tun werde. Und sollte es sich doch als günstig erweisen, na, dann baue ich eben Listen von Listen mit der dazugehörigen Mehrfachindizierung in UIL ein, wie in meinem Beitrag " Eine eigene Sprache " beschrieben. Ich würde mir auch mitten im Winter mit der Flex ein Cabrio machen und das Dach genauso konkret wieder draufschweißen, wenn ich Bock dazu hab.
 
09.07.2021