hi Rolf
Dein Verfahren verwendet zwei Klassen von Symbolen: Integers und Zeichen.
Integer ja, Zeichen nein sondern Bytesequenzen.
Ich sehe aber deiner Bytefolge nicht an, welche Symbole sie enthält, ohne das inhaltliche Layout der Datei zu kennen. Das Layout gehört aber eher auf die dritte Ebene - der codierte Inhalt.
Eben. Und dieses Layout muss der Algorithmus der die Sequez sequentiell einliest, gar nicht kennen.
D.h. ein Lexer muss Dinge wissen, die eigentlich in den Parser gehören. Darum sprach ich von der Verletzung der Separation Of Concerns.
Dann ist Dir wohl der Unterschied zwischen sequentiellen Lesen und Parsen nicht klar. JSON braucht Parser und Lexer, ein Low Level Algorithmus hingegen braucht das nicht. Ein sequentieller Algorithmus hat nichts weiter zu tun, als zwischen Sequenz und wahlfreiem Zugriff zu vermitteln, also die Sequenz sequentiell zu lesen und so zu verarbeiten, daß eine Datenstruktur für den wahlfreien Zugriff entsteht.
D.h., im Hauptspeicher liegen danach auch nur die aus der Datei gelesenen Bytesequenzen mit der beabsichtigten Struktur zur Adressierung z.B. als Array, assoz. Array usw.
Und erst die Anwendung weiter oben im Schichtenmodell entscheidet, was aus den Einzelbytefolgen im Hauptspeicher wird: Entweder weiterhin Binaries oder Zeichen.
JSON und XML verwenden nur eine Klasse von Symbolen: Zeichen.
Genau das stellt eine Vergewaltigung des Schichtenmodells und Wirth'schen Dateibegriffes dar. Mit JSON, XML wird sozusagen versucht, den wahlfreien Zugriff auf Dateiebene abzubilden.
Aus Dateien jedoch kommen grundsätzlich nur Bytesequenzen, das ist auch bei JSON so. Nur sind die hier so angeordnet, dass ein Mensch die beabsichtigte Datenstruktur erkennen kann, so wie sie nach dem Parsen im Hauptspeicher liegt.
DAS ist meine Kritik an deinem Verfahren. Wenn Wirth vor 30 Jahren etwas anderes propagiert haben sollte, dann muss man dazu auch beachten, dass sich seit 1986 (A&D mit M2) in der Info eine Menge getan hat. Vor 30 Jahren war dein Verfahren durchaus state-of-the-art.
Ohne Wirth gäbe es kein Mp3. Der Wirth'sche Dateibegriff hat heute selbstverständlich immer noch Gültigkeit und zwar mehr denn je, weil IT immer komplexer wird. Deswegen gibt es ja auch Schichtenmodelle und auch zu Wirth's Zeiten ist niemand auf die Idee gekommen, Lochkarten händisch zu bohren oder visuell zu lesen -- was heute mit JSON und XML unsinnigerweise ja gemacht wird.
MfG 😉
PS: Interessant wird der Sachverhalt in c. Mehr dazu hier und da und auch daran siehst Du daß Low Level Serializer alles Andere als Plattformabhängig sind.