Eine Mumie, die in der Wärme lag

22.10.1976

Lieber Trauerwein, ich muß Dir schreiben, da nur mit Deinen Worten zu fassen ist, was an sich nicht zu fassen ist.

Deinem Kollegen, Herrn Kelterbach, ist eine Entscheidungstabellen-Mumie, begegnet, die zu lange in der Wärme gelegen hat und wieder zum Leben erwacht ist..

Die ersten Gehversuche der Spalten-Maskentechnik (1960) verwendeten Character-Strings (Y, N, - , X) statt Bitmasken: also einen 8 Bit breiten, Regel-Vektor statt eines 1 Bit breiten. Die revolutionäre Erfindung des logischen AND und OR wurde dann eingesetzt, um das 'Regel'suchen regelweise und nicht anzeiger-weise mit Hilfe einer Spalten Maske durchzuführen.

Nun hat man anscheinend plötzlich entdeckt, daß ein 8 Bit breiter Vektor (für Regel und Tabelle) weniger Platz braucht als ein 1 (resp. 2 für die Tabelle) breiter. Wenn dieses Rezept bekannt wird, gehen die Speicherhersteller pleite.

Man hat herausgefunden, daß ein Vergleich Character um Character, schneller geht als ein Vergleich Regel um Regel. Wenn dieses Rezept bekannt wird, gehen die Prozessor-Hersteller pleite.

Dabei kommt zu alledem hinzu, daß man durch Handcompilation noch die ET-Generatorkosten spart. Zu einem Zeitpunkt, wo man sich Gedanken macht, über Syntax-Konzepte und klare Programm-Struktur und maschinelle Programm-Herstellung, sind solche Entwicklungen sicher ein wertvoller Beitrag.

Besonders interessant ist natürlich die Graphik: sie er bringt den Beweis, daß die Laufzeiten einer mit Zeilen-Masken-Technik arbeitenden Methode von der Anzahl Regeln unabhängig ist (stell Dir vor!). DW schnelleren Resultate der Matrizen Methode werden. noch schneller, wenn die Reihenfolge der Bedingungen geändert wird:

Ein arbeitstechnisches Naturwunder, da alle Bedingungen getestet werden merke: 1 + 2 + 3 gibt 6, durch Optimieren der Reihenfolge z. B. 3 +-1 + 2 wird es weniger).

Verbesserungs-Vorschlag: Optimieren Sie die Regelfolge (die Laufzeiten lassen den Schluß zu, daß dies nicht, mehr möglich ist), und meiden Sie abhängige Bedingungen:

IF 1 NUMERIC - YYYN

IFI<10 - YYN -

IF TAB (I) = 0 , - YN - -

DISPLAY 'FEHLER' - - - X X

Diese Tabelle wird der Matritzen-Methode im Hals stecken bleiben, wenn sie es mal mit I = 'ZZZZZ' oder 1 000000 versucht.

Natürlich haben wir auch entdeckt, daß die Verbindung zwischen COBOL und Assembler in vielen Compilern eine Krücke ist und deshalb die Interpretat-Kosten der Zeilen-Masken, Technik immer mehr von der Verbindung abhängen. Gäbe es nur mehr Befürworter von Compiler-Exits (wie diese kürzlich in einem Interview der Computerwoche gefordert wurde) oder Inline-Assembler, könnte hier viel getan werden.

Die interpretative Zeilen-Masken-Technik der heute angewendeten ET-Generatoren ist ausgequetscht. Abweichungen in den Resultaten hingen mehr von der Tabellen-Struktur als, vom Generator ab. Die neue Generation der ET-Umwandlung besteht interpretativ-generativen Mischformen, wie sie in der nächsten DETAB/GT-Version und der verfügbaren Assembler-Version verwirklicht sind.

Lieber Trauerwein, sag dem Kollegen Kellerbach, er soll' nicht zu schwer nehmen. Das kann jedem passieren und das Fragezeichen im Titel Eine Alternative zum ET-Generator? sichert ihm Absolution.

Mensch, Trauerwein, was sind wir doch in einer lustigen Branche, so ein Spaß wäre in anderen Berufen nicht möglich.

In diesem Sinne herzlichst und mit freundlichen Grüßen

R. Thurner

(Brief des Schweizer Software-Spezialisten Dr. Reinhold Thurner zum Artikel "Eine Alternative zum ET-Generator? in CW Nr. 40 vom 1. Oktober 1976)