Freischaffender Erfinder
|
Thomas Wolf
|
Ein ziemlich freier Mensch
|
|
|
|
UIM Universelle Internet Maschine
|
|
|
|
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
|