=========================================== ====== Stack Usage and ZBM BLOCKS ======== =========================================== (Al1,jeudi 13/10/1994) ====================== FROM ==== Stacks : 5 Exit from (Sauf pour le premier) 6 Location type (@$L[S6]@$T[6]@) Type de fin de block : ^ $8$ ::> $K[5] killing macro bank; ^ [5] adresse sortie. ;; SKIP THRU ========= Stacks : 4 To Next adress et type de fin; 5 Exit from adress 6 Location type (@$L[S6]@$T[6]@) et adresse loop < Type de fin de block : ^ $7$ ::> $K[5] killing macro bank; ^ $[4]$ next adress next instruction and GOTO [6]---^ [5] adresse sortie. ; DONEXT ====== Stacks : 4 To Next adress et type de fin; 5 Exit from adress 6 Adresse loop < Type de fin de block : ^ $7$ ::> $K[5] killing macro bank; ^ $[4]$ next adress next instruction and GOTO [6]---^ [5] adresse sortie. ; READ THRU ========= Stacks : 4 To Next adress et type de fin; 5 Exit from adress 6 Location type (@$L[S6]@$T[6]@) (adresse loop du DO) < et les stacks du DO loop. Type de fin de block : ^ $9$ ::> $K[5] killing macro bank; ^ $[4]$ next adress next instruction and GOTO [6]---^ [5] adresse sortie. ; Compound SKIP THRU/../../..< ============================ Memes Stack que les individuelles. Type de fin de block : $X$, generee et tuee par >; $X$ Depile les trois autres, et pour chacune: ::> $K[5] killing macro bank; $[4]$ next adress next instruction and GOTO [6] [5] adresse sortie. Termine en se tuant. ; =========================================== ====== More on ZBM loops instruction ====== =========================================== (Al1,jeudi 13/10/1994) ====================== On rappelle ici qu un objet est associe univoquement a un bank, et lui meme a son adresse (Ladr). Le symbole (Ladr) est donc le symbole d' un objet au sens de ZBM. Objet vide : toute classe possede un objet vide. Le symbole de l'objet vide est (0), cad adresse nulle. Tout symbole de type (Ladr).Symbole est un attribu instancie de l'objet, definit par sa classe (et donc via le PRECOMP ou un Declare bank; ******************A METTRE ET COMPLETER AILLEURS *************** Dans ZBM, les objets sont relies par des arcs definits a partir des meta-arcs entre classes par Local Valid Chains : ainsi : [~CL~SV~CX~TV~TR~] definit une meta chaine entre classes. On parcourt une chaine grace a : une amorce = un objet et sa classe une chaine instanciee de type @Classe@classe@classe de l objet terminal@ exemple @LCL@CL@SV@CX@ est l adresse de l objet de classe CX en aval de LCL dans la chaine. Hyper-arcs : Un meta arc comme ~CL~SV~ est instancie par un ou plusieurs ojets de la classe SV. Ils sont dits appartenir a une "structure lineaire". (ST) Dans ZBM, seuls les objets de meme classe peuvent appartenir a une ST. On interdit reciproquement tout meta-arc reliant immediatement des classes de meme nom. Ainsi, LSV=@LCL@CL@SV@ donne acces au premier objet instancie d une SV. On peut parcourir une ST par Next(LSV). La fin d'une ST est marquee parl'objet vide. ***************************************************************** Location type ------------- &';DTL^#(#)'=' &''@$L#U6#S6#C@$T#C@''=''@#2@#1@'' &''$L#C''=''#2'' &''($L#C)''=''(#2)'';' Associe l'adresse symbolique a $L[6] (adresse dans le stack) Associe la classe symbolique a $T[6] (bk name dans le stack) Object(=Bank) instanciation from class (=Bank name and related PRECOMP symbols) ------------------------------------------------------------------------------- &'DBK^#(#)'=' &''(#2).''=''0_(#2.#1).'' ' Memoire de la classe de l objet : (Lad). Special instanciation for Variable dimension ref links table ------------------------------------------------------------ &'DCL^#(#)'=' &''(#1).VR.''=''0_(#2.#1).'' '