Registerschl"usselbildungsproblem
Bernhard Eversberg
ev at buch.biblio.etc.tu-bs.de
Mi Mai 7 09:38:30 CEST 2003
On 6 May 03, at 23:43, Heinrich Allers wrote:
> hat jemand mal Lust und Zeit, in ein Problem der Ebene "allegro classico"
> einzutauchen? Es
> geht um seltsame Phänomene bei der Bildung von Registerschlüsseln.
>
Die Beschreibung deutete mal wieder unmissverstaendlich auf eine vergessene u-
Variable. Und in der Tat, es heisst in den Indexparametern:
ak=zz+r #utt und #uti wird zurückgesetzt
....
#-r
#uti dti e0 0 #zz 0
#utt dti e0 0 #zz 0
#+#
d.h. #utt wird eben NICHT zurueckgesetzt, dazu muesste die vorletzte Zeile lauten
#utt dtt e0 0 #zz 0
Ein simpler Schreibfehler also.
Aber mit kaum durchschauberen Folgen! Zwar wird #utt selber gar nicht benutzt,
aber in dem Abschnitt, wo es heisst:
#-E Sachtitelwörter
#u1 +- i1,2 i2,6 e0 enth.
!u1 u p"|1"
#uti dti e0 0 #zz 0
#+#
(und wo der Inhalt von #26 verarbeitet wird,) da wird auf einmal #uti geloescht.
Jedoch in der zugehoerigen ak-Zeile steht:
ak=uti"[ '/]"+E
nach dem ersten Abarbeiten von #-E ist aber #uti gar nicht mehr da. Seinen Platz
hat, in der Folge der #u-Variablen, aber #utt eingenommen. Die ak-Abarbeitung
merkt nicht, dass #uti verschwunden ist, denn es arbeitet nur mit einem internen
Zeiger. Der zeigt nun aber dahin, wo jetzt #utt steht. Und damit nimmt das
Verhaengnis seinen Lauf...
Der Denkfehler liegt also darin, im selben Abschnitt, wo ein ak-Befehl mehrfach
abgearbeitet wird, genau die Variable zu loeschen, die vom selben ak-Befehl
gerade zerlegt und verarbeitet werden soll.
B.E.
Bernhard Eversberg
Universitaetsbibliothek, Postf. 3329,
D-38023 Braunschweig, Germany
Tel. +49 531 391-5026 , -5011 , FAX -5836
e-mail B.Eversberg at tu-bs.de
Mehr Informationen über die Mailingliste Allegro