[Allegro] Exportparameter
Bernhard Eversberg
b.eversberg at tu-braunschweig.de
Di Sep 29 09:35:18 CEST 2015
Am 29.09.2015 09:19, schrieb Thomas Berger:>>
>> #ucc +#8510Z x"*1" e"." =cc e0
>> #ucc +#8510 x"*1" e"." r6,0 p"+" Azw
>>
>...
> "=cc" ist ein Vergleichsoperator, nur als Seiteneffekt auch eine
> Zuweisung.
>
> D.h. wenn der ganzzahlige Anteil von #ucc als Zahl von #ucc
> als Text abweicht (der Vergleich scheitert), ist die Anweisungs-
> zeile als ganze Erfolgreich und es wird zu 8510Z gesprungen.
Ja, und der Inhalt von #ucc durch den ganzzahligen Anteil ersetzt,
was sich bei einem weiteren Durchlauf auswirken kann.
>
> Ansonsten wird zu #8510 gesprungen, sofern #ucc ueberhaupt belegt
> ist.
>
Richtig, und der ganzzahlige Inhalt von #ucc wird mit vorgesetztem + an
#uzw angehängt.
Der Sinngehalt dieser Operationen wird aus diesen zwei Zeilen nicht
ersichtlich, aber das ist, was passiert.
(s. Handbuch Kap. 10.2.6.3, unter "Typ 2")
Die enorme Kryptik dieser Logik rührt her vom Alter dieser Dinge. Die
Exportsprache war mit das erste und lange Zeit einzige sprachähnliche
Konstrukt von allegro, und die erste Aufgabe war der Kartendruck,
eine der schwierigsten überhaupt. Zugleich war auf hohe Effizienz und
Speicherökonomie großer Wert zu legen. Und als die Indexierung als
weitere sehr komplexe Aufgabe hinzukam, wurde das nicht besser. Der noch
heute gern in Kauf genommene Vorteil ist das hohe Tempo der Abarbeitung,
auch bei sehr langen und komplizierten Parametern.
B.E.
Mehr Informationen über die Mailingliste Allegro