ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’sprachen’’’’’’’(5XQp‹’’’’’č’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’******* PROLOG *******’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’€a€ė’’C’’’’CCM’’’’a€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’******* PROLOG *******’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’prolog handbuch’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Lą’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńŽa€ė’’_G\D ’’’’  HM’’’’a€’’’’’’’’’’’’’’€’&’’’’’’’’’’’G’’’’’’’’’’’’’’’’’’±€’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’!’’’’’’’’’’’’’’’’’’’’’ #off ("u")# ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #off("b")# ’’’’’’’’’’q’!’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’?’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #off("b")# ’’’’’’’’’’‚’L’’’’’’’’’’’’’’’’’’’q‚’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”‚’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į‚’M’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ƒ’L’’’’’’’’’’’’’’’’’’’’’ GMD.F2.G2 ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ’1’’’’’’’’’’’’’’’’’’’Įƒ’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’„’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A„’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘„’D’’’’’’’’’’’’’’’’’’’į„’C’’’’’’’’’’’’’’’’’’’1…’H’’’’’’’’’’’’’’’’’’’…’H’’’’’’’’’’’’’’’’’’’х’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’†’I’’’’’’’’’’’’’’’’’’’a†’J’’’’’’’’’’’’’’’’’’’±†’L’’’’’’’’’’’’’’’’’’’‡’L’’’’’’’’’’’’’’’’’’’Q‡’I’’’’’’’’’’’’’’’’’’’”‡’H’’’’’’’’’’’’’’’’’’’ń‡’L’’’’’’’’’’’’’’’’’’’Aˆ’E’’’’’’’’’’’’’’’’’’’‘ˆ’F’’’’’’’’’’’’’’’’’’’ሒK’’’’’’’’’’’’’’’’’’’1‰’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a‰’K’’’’’’’’’’’’’’’’’’’±‰’L’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŠ’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Š’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŠ’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1‹’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q‹’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”‹’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ы’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń‹’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Œ’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŒ’:’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’±Œ’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŒ’J’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’dynamo handbuch.inhalt’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€ė’’……‚‚ ’’’’  †M’’’’a€’’’’’’’’’’’’’’€’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’”€’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń€’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’ #off ("u")# ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #off("b")# ’’’’’’’’’’a’!’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’?’’’’’’’’’’’’’’’’’’’ၒ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #off("b")# ’’’’’’’’’’‚’L’’’’’’’’’’’’’’’’’’’a‚’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘‚’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’т’M’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’#block# ’’’’’’’’’’’’’!ƒ’U’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ƒ’’’’’’’’’’’’’’’’’’’’Įƒ’1’’’’’’’’’’’’’’’’’’’„’L’’’’’’’’’’’’’’’’’’’Q„’O’’’’’’’’’’’’’’’’’’’±„’K’’’’’’’’’’’’’’’’’’’…’'’’’’’’’’’’’’’’’’’’’1…’U’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”…’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į…’(’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’1†’/’’’’’’’’’’’’’’’’’’’q†’*’’’’’’’’’’’’’’’’’’’”†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’Autor: ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ц’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”‡’O’’’’’’’’’’’’’’’’’’’ˆ’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aˆ’’’’’’’’’’’’’’’’’’’’ˆ’S’’’’’’’’’’’’’’’’’’’ሒQ’’’’’’’’’’’’’’’’’’’A‰’M’’’’’’’’’’’’’’’’’’’‘‰’S’’’’’’’’’’’’’’’’’’’ń‰’N’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’AŠ’C’’’’’’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’‘Š’’’’’’’’’’’’’’’’’’’’±Š’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ #bottom odd# ’’’’’’’’‹’E’’’’’’’’’’’’’’’’’’’Q‹’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’q‹’’’’’’’’’’’’’’’’’’’’‹’E’’’’’’’’’’’’’’’’’’’ы’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’Inhalt ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń‹’6’’’’’’’’’’’’’’’’’’’’’#table# ’’’’’’’’’’’’’1Œ’’’’’’’’’’’’’’’’’’’’QŒ’’’’’’’’’’’’’’’’’’’’qŒ’)’’’’’’’’’’’’’’’’’’’”Œ’6’’’’’’’’’’’’’’’’’’’ጒ<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’!’’’’’’’’’’’’’’’’’’’’)’’’’’’’’’’’’’’’’’’’±’6’’’’’’’’’’’’’’’’’’’ń’&’’’’’’’’’’’’’’’’’’’!Ž’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŽ’>’’’’’’’’’’’’’’’’’’’”Ž’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įŽ’’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’1’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’&’’’’’’’’’’’’’’’’’’’‘’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’я’8’’’’’’’’’’’’’’’’’’’’’ #table end#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’dynamo handbuch.inhalt’’’’’’’’''’’’’’’’’’’’’’’N____________________________________________________________________________ ’#on("b")##on ("u")# ’’’’’’’’’’.#center#Betriebssystem E U M E L ’’’’’’’’’’’’’#center#DYNAMO ’’’’’’’’’’’’’’’.#center#Lizenzfreie Software der ’’’’’’’’’’’’’N#center#Gesellschaft fŪr Mathematik und Datenverarbeitung mbH, ’’’’’’’’’’’’’’’#center#5205 Sankt Augustin ’’^#center#Die Nutzung der Software ist nur im Schul- und Hochschulbereich fŪr ’’’’’’’’’’’’’’.#center#nichtkommerzielle Zwecke gestattet. ’’>#center#GewŁhrleistung und Haftung werden ausgeschlossen ’’’’’N____________________________________________________________________________ ’^#center#____________________________________________________________________________ ’’’’’’’’’ Copyright 1988 ’’’’’’’’’’’’’’ Selbstverlag GMD ’’’’’’’’’’’’> Alle Rechte vorbehalten. ’’’’’’’’’’’’’N Insbesondere ist die ŲberfŪhrung in maschinenlesbare’’^ Form, sowie das Speichern in Informationssystemen, auch’’’’’’’’’’’’’’’N auszugsweise, nur mit schriftlicher Genehmigung der’’’. GMD gestattet. ’’’’’’’^#center#____________________________________________________________________________ ’’’’’’’’’ Herausgeber: > Gesellschaft fŪr Mathematik und Datenverarbeitung mbH ’’’. Postfach 1240, Schloū Birlinghoven ’’’’’’ D-5205 Sankt Augustin 1 ’> Telefon(02241) 14-1, Telex 8 89 469 gmd d ’’’’’’’’’’’’’’’. Telefax(02241) 14 28 89, BTX *43900Ž ’’’’. Teletex 2627-224135=GMDVV ’’’’’’’’’’’’’’’ Christian Szymanski ’’’’’’’’nach Anregungen von: ’’’’’’’’’. Diether Craemer, Robert Keil ’’’’’’’’’’’’’’’Ūberarbeitet von: ’’’’’’’’’’’’ Thomas MŪller ’’’’’’’’’’’’’’Texterstellung: ’’’’’’’’’’’’’’^ Dieser Text wurde mit der EUMEL-Textverarbeitung erstellt und aufbereitet und’’’’’’’’’’’’’’’> mit dem Agfa Laserdrucksystem P400 gedruckt. ’’’’’’’’’’’’’’’ Hinweis: ’’’’’’’’’’’’’’#on("italics")# ’’’’’’’’’’’’’’^ Diese Dokumentation wurde mit grŚūtmŚglicher Sorgfalt erstellt. Dennoch wird’’’’’’’’’’’^ fŪr die Korrektheit und VollstŁndigkeit der gemachten Angaben keine GewŁhr’’’’’’’’’’’’’N Ūbernommen. Bei vermuteten Fehlern der Software oder der Dokumentation’^ bitten wir um baldige Meldung, damit eine Korrektur mŚglichst rasch erfolgen’’’’’’’’’’’N kann. Aį’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ž’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŽ’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ž’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŽ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŽ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’C’’’’’’’’’’’’’’’’’’’ᐒI’’’’’’’’’’’’’’’’’’’1‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q‘’I’’’’’’’’’’’’’’’’’’’”‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į‘’J’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1’’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’’J’’’’’’’’’’’’’’’’’’’±’’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń’’@’’’’’’’’’’’’’’’’’’’A“’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘“’C’’’’’’’’’’’’’’’’’’’į“’I’’’’’’’’’’’’’’’’’’’1”’G’’’’’’’’’’’’’’’’’’’”’L’’’’’’’’’’’’’’’’’’’є’L’’’’’’’’’’’’’’’’’’’!•’3’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’a•’M’’’’’’’’’’’’’’’’’’’±•’J’’’’’’’’’’’’’’’’’’’–’<’’’’’’’’’’’’’’’’’’’A–’F’’’’’’’’’’’’’’’’’’’‘–’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į–’7’’’’’’’’’’’’’’’’’’’’’ zulŁssig. ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!—’L’’’’’’’’’’’’’’’’’’’q—’E’’’’’’’’’’’’’’’’’’’’’ PrioritŁt. ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į—’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń—’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!˜’<’’’’’’’’’’’’’’’’’’’a˜’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”˜’H’’’’’’’’’’’’’’’’’’’ń˜’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’™’I’’’’’’’’’’’’’’’’’’’a™’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”™’F’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń™’J’’’’’’’’’’’’’’’’’’’Aš’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’‘š’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’њ’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’›’J’’’’’’’’’’’’’’’’’’’a›’L’’’’’’’’’’’’’’’’’’’±›’G’’’’’’’’’’’’’’’’’’’œ’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qœ’’’’’’’’’’’’’’’’’’’’qœ’’’’’’’’’’’’’’’’’’’’‘œ’’’’’’’’’’’’’’’’’’’’±œ’ ’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’ᜒ:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!’H’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ž’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’až’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ž’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ў’J’’’’’’’’’’’’’’’’’’’!Ÿ’:’’’’’’’’’’’’’’’’’’’aŸ’L’’’’’’’’’’’’’’’’’’’±Ÿ’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’L’’’’’’’’’’’’’’’’’’’Q ’8’’’’’’’’’’’’’’’’’’’‘ ’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į ’E’’’’’’’’’’’’’’’’’’’1”’)’’’’’’’’’’’’’’’’’’’a”’4’’’’’’’’’’’’’’’’’’’””’0’’’’’’’’’’’’’’’’’’’į”’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1¢’*’’’’’’’’’’’’’’’’’’’a¢’#’’’’’’’’’’’’’’’’’’’‘¢’%’’’’’’’’’’’’’’’’’’’Į¢’!’’’’’’’’’’’’’’’’’’’ń¢’?’’’’’’’’’’’’’’’’’’’A£’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘£’I’’’’’’’’’’’’’’’’’’’ᣒ5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!¤’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q¤’@’’’’’’’’’’’’’’’’’’’Į¤’B’’’’’’’’’’’’’’’’’’’„’3’’’’’’’’’’’’’’’’’’’Q„’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”„’F’’’’’’’’’’’’’’’’’’’ń„’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1¦’B’’’’’’’’’’’’’’’’’’’¦’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ѧ’G’’’’’’’’’’’’’’’’’’’!§’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q§’M’’’’’’’’’’’’’’’’’’’”§’E’’’’’’’’’’’’’’’’’’’ń§’?’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’AØ’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ø’L’’’’’’’’’’’’’’’’’’’ŃØ’J’’’’’’’’’’’’’’’’’’’!©’M’’’’’’’’’’’’’’’’’’’q©’K’’’’’’’’’’’’’’’’’’’Į©’B’’’’’’’’’’’’’’’’’’’Ŗ’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’Also ’’’’’’’’’’’’’’’’aŖ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ŗ’’’’’’’’’’’’’’’’’’’’±Ŗ’"’’’’’’’’’’’’’’’’’’’įŖ’ ’’’’’’’’’’’’’’’’’’’«’’’’’’’’’’’’’’’’’’’’1«’#’’’’’’’’’’’’’’’’’’’a«’’’’’’’’’’’’’’’’’’’’‘«’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±«’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń«’’’’’’’’’’’’’’’’’’’’ń«’’’’’’’’’’’’’’’’’’’’¬’%’’’’’’’’’’’’’’’’’’’A¬’’’’’’’’’’’’’’’’’’’’a¬’$’’’’’’’’’’’’’’’’’’’‘¬’F’’’’’’’’’’’’’’’’’’’ᬒ’’’’’’’’’’’’’’’’’’’­’'’’’’’’’’’’’’’’’’’’’1­’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a­’)’’’’’’’’’’’’’’’’’’’‘­’’’’’’’’’’’’’’’’’’’’±­’E’’’’’’’’’’’’’’’’’’’®’A’’’’’’’’’’’’’’’’’’’Q®’+’’’’’’’’’’’’’’’’’’’®’’’’’’’’’’’’’’’’’’’’”®’-’’’’’’’’’’’’’’’’’’’Ń®’L’’’’’’’’’’’’’’’’’’’!Æ’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QÆ’.’’’’’’’’’’’’’’’’’’’Æ’%’’’’’’’’’’’’’’’’’’’±Æ’7’’’’’’’’’’’’’’’’’’’ńÆ’>’’’’’’’’’’’’’’’’’’’1°’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q°’A’’’’’’’’’’’’’’’’’’’”°’I’’’’’’’’’’’’’’’’’’’ń°’E’’’’’’’’’’’’’’’’’’’A±’B’’’’’’’’’’’’’’’’’’’‘±’@’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’į±’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!²’D’’’’’’’’’’’’’’’’’’’’’ beigefŪgt. ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q²’’’’’’’’’’’’’’’’’’’’‘²’B’’’’’’’’’’’’’’’’’’’į²’*’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’1³’(’’’’’’’’’’’’’’’’’’’a³’L’’’’’’’’’’’’’’’’’’’±³’’’’’’’’’’’’’’’’’’’’ѳ’L’’’’’’’’’’’’’’’’’’’!“’’’’’’’’’’’’’’’’’’’’A“’’’’’’’’’’’’’’’’’’’’a“’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“’_’’’’’’’’’’’’’’’’’’’ń“’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aµ’S’’’’’’’’’’’’’’’’’’’”µ’K’’’’’’’’’’’’’’’’’’’ńµ’L’’’’’’’’’’’’’’’’’’’A¶’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘¶’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į¶’F’’’’’’’’’’’’’’’’’’’1·’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q·’’’’’’’’’’’’’’’’’’’’q·’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į·’’’’’’’’’’’’’’’’’’’’į·’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ø’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ø’!’’’’’’’’’’’’’’’’’’’aø’!’’’’’’’’’’’’’’’’’’’‘ø’&’’’’’’’’’’’’’’’’’’’Įø’’’’’’’’’’’’’’’’’’’’įø’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¹’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q¹’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’”¹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į¹’ ’’’’’’’’’’’’’’’’’’’ń¹’’’’’’’’’’’’’’’’’’’’ŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ŗ’’’’’’’’’’’’’’’’’’’’Qŗ’3’’’’’’’’’’’’’’’’’’’‘ŗ’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńŗ’’’’’’’’’’’’’’’’’’’’ńŗ’’’’’’’’’’’’’’’’’’’’»’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A»’’’’’’’’’’’’’’’’’’’’a»’=’’’’’’’’’’’’’’’’’’’”»’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’Ń»’’’’’’’’’’’’’’’’’’’’ń»’K’’’’’’’’’’’’’’’’’’’A¼’’’’’’’’’’’’’’’’’’’’a¼’H’’’’’’’’’’’’’’’’’’’±¼’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’Ѽ’L’’’’’’’’’’’’’’’’’’’!½’L’’’’’’’’’’’’’’’’’’’q½’L’’’’’’’’’’’’’’’’’’’Į½’L’’’’’’’’’’’’’’’’’’’¾’L’’’’’’’’’’’’’’’’’’’a¾’L’’’’’’’’’’’’’’’’’’’±¾’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’æ’5’’’’’’’’’’’’’’’’’’’Aæ’%’’’’’’’’’’’’’’’’’’’qæ’4’’’’’’’’’’’’’’’’’’’±æ’5’’’’’’’’’’’’’’’’’’’ńæ’9’’’’’’’’’’’’’’’’’’’1Ą’5’’’’’’’’’’’’’’’’’’’qĄ’'’’’’’’’’’’’’’’’’’’’”Ą’&’’’’’’’’’’’’’’’’’’’ŃĄ’K’’’’’’’’’’’’’’’’’’’!Į’L’’’’’’’’’’’’’’’’’’’qĮ’=’’’’’’’’’’’’’’’’’’’±Į’I’’’’’’’’’’’’’’’’’’’Ā’6’’’’’’’’’’’’’’’’’’’AĀ’’’’’’’’’’’’’’’’’’’’aĀ’’’’’’’’’’’’’’’’’’’’Ā’1’’’’’’’’’’’’’’’’’’’ĮĀ’/’’’’’’’’’’’’’’’’’’’Ć’4’’’’’’’’’’’’’’’’’’’AĆ’5’’’’’’’’’’’’’’’’’’’Ć’5’’’’’’’’’’’’’’’’’’’ĮĆ’7’’’’’’’’’’’’’’’’’’’’’repeat. ’’’’’’’’’’’’’Ä’*’’’’’’’’’’’’’’’’’’’1Ä’3’’’’’’’’’’’’’’’’’’’qÄ’4’’’’’’’’’’’’’’’’’’’nregungen und Kritik sind jederzeit willkommen.#off("italics")# N#pagenr ("%", 1")##setcount (1)##block##pageblock##count per page# ’’’’’’’’’’’#center#DYNAMO-Compiler ’’’’’’N#center#____________________________________________________________ ’’’’’’’’’N#center#____________________________________________________________ ’’’’’’’’’GMD #right#DYNAMO - % ’’’’’’’’#bottom even# N#center#____________________________________________________________ ’’’’’’’’’DYNAMO - % #right#GMD ’’’’’’’’>#clear pos##lpos (0.0)##r pos (10.0)##fillchar (" ")# ’’’’’’’’1. Einleitung 2 ’’’’’’’’’’’’ 1.1. Referenzliteratur 2 ’. 1.2. Die Programmiersprache DYNAMO 3 ’’’’’> 1.3. Kurz-EinfŪhrung in die DYNAMO-Schreibweise 4 ’’’’’’’’> 1.4. Eine erste, kleine Sitzung mit dem DYNAMO-System 6 ’’.2. Generierung des DYNAMO-Compilers 7 ’’’’’’.3. Der EUMEL-DYNAMO-Compiler 8 ’’’’’’’’’’’’’. 3.1. Benutzung des DYNAMO-Compiler 8 ’’’’’> 3.2. Abweichungen gegenŪber dem Sprachstandard 11 ’’’’’’’’. 3.3. Das DYNAMO Runtime-System 12 ’’’’’’’’> 3.4. Fehlermeldungen des DYNAMO-Compilers 14 ’’’’’’’’’’’’’>4. Anweisungen und Funktionen des EUMEL-DYNAMO-Compilers 19 > 4.1. Ųbersicht Ūber die Anweisungen und Funktionen 21 ’’’’5. Makros in DYNAMO 47 ’’’’’. 5.1. Insertieren von Makros 48 ’’’’’’’’’’’. 5.2. Aufbau eines Makros 48 ’’’’’’’’’’’’’’.6. Erweiterung des Sprachumfangs 50 ’’’’’’’’> 6.1. FŪr fortgeschrittende ELAN-Programmierer 51 ’’’’’’’’’>Anhang - Ųbersicht Ūber Anweisungen unf Funktionen 52 ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’dynamo handbuch’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’É€’’’’’’’’’’’’’ų’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Bda€ė’’$! $’’’’ $ $%M’’’’a€’’’’’’’’’’’’’’€’’’’’’’’’’’’$’’’’’’’’’’’’’’’’’’”€’;’’’’’’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’ဒ’’’’’’’’’’’’’’’’’’’’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ #bottom odd# ’’’’’’’’Q’E’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’с’E’’’’’’’’’’’’’’’’’’’!‚’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a‚’H’’’’’’’’’’’’’’’’’’’±‚’D’’’’’’’’’’’’’’’’’’’ƒ’K’’’’’’’’’’’’’’’’’’’Qƒ’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ƒ’Q’’’’’’’’’’’’’’’’’’’ńƒ’L’’’’’’’’’’’’’’’’’’’A„’P’’’’’’’’’’’’’’’’’’’”„’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń„’J’’’’’’’’’’’’’’’’’’’A…’K’’’’’’’’’’’’’’’’’’’‘…’S’’’’’’’’’’’’’’’’’’’ń…’L’’’’’’’’’’’’’’’’’’’A†’N’’’’’’’’’’’’’’’’’’’‘†’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń†’’’’’’’’’’’’’’’’’’’’‡’9’’’’’’’’’’’’’’’’’’’Q‡’1’’’’’’’’’’’’’’’’’’’‘‡’’’’’’’’’’’’’’’’’’’’Į‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᇒ’’’’’’’’’’’’’’’’’’’ˆ’F’’’’’’’’’’’’’’’’’’’Qˆ’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’”ˆ’!’’’’’’’’’’’’’’’’’’’ш’)’’’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‰’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q‰’I’’’’’’’’’’’’’’’’’’’”‰’U’’’’’’’’’’’’’’’’’’’Š’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Š’ ’’’’’’’’’’’’’’’’’’’ኒ?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1‹’N’’’’’’’’’’’’’’’’’’’‹’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į‹’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Œ’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŒ’L’’’’’’’’’’’’’’’’’’’”Œ’X’’’’’’’’’’’’’’’’’’’’P’’’’’’’’’’’’’’’’’’’a’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’O’’’’’’’’’’’’’’’’’’’ń’Q’’’’’’’’’’’’’’’’’’’QŽ’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’‘Ž’\’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŽ’R’’’’’’’’’’’’’’’’’’’Q’I’’’’’’’’’’’’’’’’’’’”’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į’R’’’’’’’’’’’’’’’’’’’A’P’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’T’’’’’’’’’’’’’’’’’’’!‘’N’’’’’’’’’’’’’’’’’’’q‘’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±‘’&’’’’’’’’’’’’’’’’’’’į‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’’J’’’’’’’’’’’’’’’’’’’±’’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“’O’’’’’’’’’’’’’’’’’’’a“’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±“’K’’’’’’’’’’’’’’’’’’’”’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A”’O’’’’’’’’’’’’’’’’’’’””’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’є’N’’’’’’’’’’’’’’’’’’’!•’L’’’’’’’’’’’’’’’’’’’q•’I’’’’’’’’’’’’’’’’’’’Į•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į•’O’’’’’’’’’’’’’’’’’’’A–’S’’’’’’’’’’’’’’’’’’’’’ Ūberhaupt). ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”–’G’’’’’’’’’’’’’’’’’’’ń–’A’’’’’’’’’’’’’’’’’’’A—’P’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”—’=’’’’’’’’’’’’’’’’’’’į—’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ analog: ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!˜’=’’’’’’’’’’’’’’’’’’’a˜’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”˜’L’’’’’’’’’’’’’’’’’’’ń˜’Q’’’’’’’’’’’’’’’’’’’Q™’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘™’R’’’’’’’’’’’’’’’’’’’ń™’T’’’’’’’’’’’’’’’’’’’Qš’R’’’’’’’’’’’’’’’’’’’±š’R’’’’’’’’’’’’’’’’’’’›’M’’’’’’’’’’’’’’’’’’’a›’Q’’’’’’’’’’’’’’’’’’’Į›’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’œ’4’’’’’’’’’’’’’’’’’’’Aœ’1’’’’’’’’’’’’’’’’’’’œ’7’’’’’’’’’’’’’’’’’’’Įœ’3’’’’’’’’’’’’’’’’’’’±Ä’,’’’’’’’’’’’’’’’’’’’įÄ’I’’’’’’’’’’’’’’’’’’’1Å’4’’’’’’’’’’’’’’’’’’’qÅ’5’’’’’’’’’’’’’’’’’’’±Å’4’’’’’’’’’’’’’’’’’’’’’true. ’’’’’’’’’’’’’’’ńÅ’8’’’’’’’’’’’’’’’’’’’1Ę’-’’’’’’’’’’’’’’’’’’’aĘ’-’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’‘Ę’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įĘ’<’’’’’’’’’’’’’’’’’’’!Ē’0’’’’’’’’’’’’’’’’’’’aĒ’’’’’’’’’’’’’’’’’’’’Ē’8’’’’’’’’’’’’’’’’’’’ĮĒ’’’’’’’’’’’’’’’’’’’’įĒ’G’’’’’’’’’’’’’’’’’’’1Č’3’’’’’’’’’’’’’’’’’’’qČ’7’’’’’’’’’’’’’’’’’’’±Č’1’’’’’’’’’’’’’’’’’’’ńČ’’’’’’’’’’’’’’’’’’’’É’A’’’’’’’’’’’’’’’’’’’QÉ’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’”É’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńÉ’’’’’’’’’’’’’’’’’’’’Ź’’’’’’’’’’’’’’’’’’’’1Ź’*’’’’’’’’’’’’’’’’’’’aŹ’’’’’’’’’’’’’’’’’’’’Ź’’’’’’’’’’’’’’’’’’’’”Ź’’’’’’’’’’’’’’’’’’’’ĮŹ’’’’’’’’’’’’’’’’’’’’įŹ’"’’’’’’’’’’’’’’’’’’’Ė’'’’’’’’’’’’’’’’’’’’’AĖ’’’’’’’’’’’’’’’’’’’’aĖ’’’’’’’’’’’’’’’’’’’’Ė’ ’’’’’’’’’’’’’’’’’’’±Ė’’’’’’’’’’’’’’’’’’’’ŃĖ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ģ’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QĢ’*’’’’’’’’’’’’’’’’’’’Ģ’6’’’’’’’’’’’’’’’’’’’ĮĢ’#’’’’’’’’’’’’’’’’’’’ńĢ’7’’’’’’’’’’’’’’’’’’’1Ķ’’’’’’’’’’’’’’’’’’’’QĶ’*’’’’’’’’’’’’’’’’’’’Ķ’*’’’’’’’’’’’’’’’’’’’±Ķ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įĶ’-’’’’’’’’’’’’’’’’’’’Ī’/’’’’’’’’’’’’’’’’’’’QĪ’+’’’’’’’’’’’’’’’’’’’Ī’6’’’’’’’’’’’’’’’’’’’ĮĪ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įĪ’’’’’’’’’’’’’’’’’’’’Ļ’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AĻ’’’’’’’’’’’’’’’’’’’’aĻ’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’repeat. ’’’’’’’’’’’’’‘Ļ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’±Ļ’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’!Š’’’’’’’’’’’’’’’’’’’’AŠ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŠ’#’’’’’’’’’’’’’’’’’’’‘Š’.’’’’’’’’’’’’’’’’’’’ĮŠ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŠ’#’’’’’’’’’’’’’’’’’’’!Ń’.’’’’’’’’’’’’’’’’’’’QŃ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń’*’’’’’’’’’’’’’’’’’’’±Ń’0’’’’’’’’’’’’’’’’’’’ńŃ’1’’’’’’’’’’’’’’’’’’’1Ņ’1’’’’’’’’’’’’’’’’’’’qŅ’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ņ’%’’’’’’’’’’’’’’’’’’’įŅ’+’’’’’’’’’’’’’’’’’’’Ó’4’’’’’’’’’’’’’’’’’’’QÓ’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ó’0’’’’’’’’’’’’’’’’’’’ŃÓ’6’’’’’’’’’’’’’’’’’’’Ō’?’’’’’’’’’’’’’’’’’’’aŌ’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ō’’’’’’’’’’’’’’’’’’’’ĮŌ’’’’’’’’’’’’’’’’’’’’įŌ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Õ’>’’’’’’’’’’’’’’’’’’’AÕ’;’’’’’’’’’’’’’’’’’’’Õ’@’’’’’’’’’’’’’’’’’’’ŃÕ’4’’’’’’’’’’’’’’’’’’’Ö’+’’’’’’’’’’’’’’’’’’’AÖ’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ö’=’’’’’’’’’’’’’’’’’’’ĮÖ’<’’’’’’’’’’’’’’’’’’’×’’’’’’’’’’’’’’’’’’’’!×’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a×’F’’’’’’’’’’’’’’’’’’’±×’’’’’’’’’’’’’’’’’’’’Ń×’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ų’’’’’’’’’’’’’’’’’’’’AŲ’7’’’’’’’’’’’’’’’’’’’Ų’’’’’’’’’’’’’’’’’’’’”Ų’-’’’’’’’’’’’’’’’’’’’ŃŲ’’’’’’’’’’’’’’’’’’’’ńŲ’$’’’’’’’’’’’’’’’’’’’!Ł’’’’’’’’’’’’’’’’’’’’AŁ’2’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’Ł’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃŁ’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ś’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŚ’’’’’’’’’’’’’’’’’’’’qŚ’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ś’’’’’’’’’’’’’’’’’’’’ŃŚ’-’’’’’’’’’’’’’’’’’’’Ū’1’’’’’’’’’’’’’’’’’’’AŪ’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ū’!’’’’’’’’’’’’’’’’’’’±Ū’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŪ’’’’’’’’’’’’’’’’’’’’Ü’’’’’’’’’’’’’’’’’’’’1Ü’%’’’’’’’’’’’’’’’’’’’aÜ’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ü’D’’’’’’’’’’’’’’’’’’’ńÜ’D’’’’’’’’’’’’’’’’’’’AŻ’D’’’’’’’’’’’’’’’’’’’‘Ż’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įŻ’’’’’’’’’’’’’’’’’’’’Ž’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŽ’ ’’’’’’’’’’’’’’’’’’’qŽ’*’’’’’’’’’’’’’’’’’’’”Ž’G’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’prolog handbuch’’’’’’’’’’’’’’’.’’’’’’’’N____________________________________________________________________________ ’#on("b")##on ("u")# ’’’’’’’’’’.#center#Betriebssystem E U M E L ’’’’’’’’’’’’’#center#Prolog ’’’’’’’’’’’’’’’.#center#Lizenzfreie Software der ’’’’’’’’’’’’’N#center#Gesellschaft fŪr Mathematik und Datenverarbeitung mbH, ’’’’’’’’’’’’’’’#center#5205 Sankt Augustin ’’^#center#Die Nutzung der Software ist nur im Schul- und Hochschulbereich fŪr ’’’’’’’’’’’’’’.#center#nichtkommerzielle Zwecke gestattet. ’’>#center#GewŁhrleistung und Haftung werden ausgeschlossen ’’’’’N____________________________________________________________________________ ’NDr.P.Heyderhoff 12.03.1987 ’’> E L A N - P R O L O G ’’’’’’’’’’’’’> _____________________ ’’’’’’’’’’’’’> (Die Fachsprache der kŪnstlichen Intelligenz) ’N#on("u")#Benutzungsanleitung und technische Beschreibung#off("u")# ’’’’’’’’’’’NElan-Prolog ist eine Computersprache der fŪnften Generation, die fŪr’’’’’’’’’’Ndie Praxis der Programmierung und die Lehre in Informatik eine neue’’’’’’’’’’’NDimension erschlieūt. FŪr den professionellen Programmierer erŚffnet sie’’’’’’Nneue MŚglichkeiten, mŁchtige Anwendungen, wie Expertensysteme und andere’’’’’’>neuartige Systeme der Wissensverarbeitung zu entwickeln. ’’’’’NElan-Prolog unterscheidet sich grundsŁtzlich von Ūblichen konventionellen’’’’’NProgrammiersprachen. In Sprachen wie Elan und Pascal muū der Programmierer’’’’Ngenau angeben, wie ein gewŪnschtes Ergebnis errechnet werden soll. Um was es’’Nsich dabei handelt, steht bestenfalls dann in der Dokumentation. Ganz anders’’Nist es in Prolog. PROLOG steht fŪr PROgrammieren in LOgik und basiert auf’’’’’Ndem PrŁdikaten-KalkŪl, der bekanntesten Form der formalen Logik. Also in’’’’’’NProlog schreibt der Programmierer hin, worin das Problem besteht. Er bedient’’Nsich dabei dieser formalen Logik. Prolog versucht dann eine LŚsung zu’’’’’’’’’Nfinden. Der LŚsungsweg ist dabei im Programm nicht vorgeschrieben. Das’’’’’’’’Nentlastet den Programmierer, und er kann seine ganze Kraft auf die logische’’’.Beschreibung des Problems konzentrieren. ’’’’’NElan-Prolog ist ein interpretatives System, das voll kompatibel ist mit dem’’’NEdinburgh Standard Prolog und in in komfortabler Weise in das Betriebssystem’’Eumel eingebettet ist. ’’’’’’’.Eigenschaftes von Elan-Prolog: ’’’’’’’’’’’’’’’N- Syntax gemŁū dem Edinburgh Standard Prolog nach Clocksin-Mellish ’’’’’’’’’’N- Interpretierendes System mit inkrementellem Einpass-Compiler ’’’’’’’’’’’’’’>- Interaktiver Mehrfenster-Texteditor des Eumelsystems ’’’’’’>- Zugriff auf Elan-Prozeduren als Prolog-Regeln ’’’’’’’’’’’’’.- Geschwindigkeit ca. 100 LIPS auf IBM/PC-XT .- optionale dynamische Ablaufverfolgung ’’’’’- ErklŁrungskomponente ’’’’’’>- Eingabe und Ausgabe von Prolog-AusdrŪcken und Klartext ’’’’>- Programmiert und dokumentiert in ELAN (Ūber 2000 Zeilen) ’’>- daher besonders fŪr den Informatik-Unterricht geeignet ’’’’>#on("u")#BeschrŁnkungen des Elan-Prolog:#off("u")# ’’’’’’’’’’’NFolgende BeschrŁnkungen gelten fŪr die Implementierung von Elan-Prolog im ’’’’Eumel-Systems: ’’’’’’’’’’’’’’’.- Maximal 16000 Fakten und Regeln ’’’’’’’’’’’N- Maximal 16000 Terme zur Konstruktion von AusdrŪcken, Listen und Regeln ’’’’.- Maximal 800 Variablenbindun’5’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’q’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń’4’’’’’’’’’’’’’’’’’’’1ž’"’’’’’’’’’’’’’’’’’’’až’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’”ž’’’’’’’’’’’’’’’’’’’’Įž’>’’’’’’’’’’’’’’’’’’’Ÿ’:’’’’’’’’’’’’’’’’’’’AŸ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŸ’N’’’’’’’’’’’’’’’’’’’’’ziehen. ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ÿ’*’’’’’’’’’’’’’’’’’’’្’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’M’’’’’’’’’’’’’’’’’’’’’ (siehe 2.). ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q ’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’” ’F’’’’’’’’’’’’’’’’’’’ń ’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1”’G’’’’’’’’’’’’’’’’’’’”’O’’’’’’’’’’’’’’’’’’’į”’P’’’’’’’’’’’’’’’’’’’A¢’P’’’’’’’’’’’’’’’’’’’”¢’N’’’’’’’’’’’’’’’’’’’ń¢’G’’’’’’’’’’’’’’’’’’’A£’K’’’’’’’’’’’’’’’’’’’‘£’N’’’’’’’’’’’’’’’’’’’ᣒO’’’’’’’’’’’’’’’’’’’’’ fahren. ’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A¤’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q¤’J’’’’’’’’’’’’’’’’’’’Į¤’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’„’K’’’’’’’’’’’’’’’’’’’Q„’N’’’’’’’’’’’’’’’’’’’”„’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń„’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!¦’Q’’’’’’’’’’’’’’’’’’’¦’O’’’’’’’’’’’’’’’’’’’ᦒI’’’’’’’’’’’’’’’’’’’1§’d’’’’’’’’’’’’’’’’’’’”§’P’’’’’’’’’’’’’’’’’’’Ø’Q’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’nutzen. ’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aØ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ø’B’’’’’’’’’’’’’’’’’’’ᨒJ’’’’’’’’’’’’’’’’’’’1©’Q’’’’’’’’’’’’’’’’’’’‘©’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń©’M’’’’’’’’’’’’’’’’’’’!Ŗ’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŖ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ŗ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ŗ’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’«’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1«’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q«’P’’’’’’’’’’’’’’’’’’’Ń«’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!¬’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q¬’L’’’’’’’’’’’’’’’’’’’”¬’F’’’’’’’’’’’’’’’’’’’ń¬’M’’’’’’’’’’’’’’’’’’’A­’R’’’’’’’’’’’’’’’’’’’”­’D’’’’’’’’’’’’’’’’’’’ń­’H’’’’’’’’’’’’’’’’’’’A®’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ PROC dynamo ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘®’N’’’’’’’’’’’’’’’’’’’į®’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Æ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aÆ’L’’’’’’’’’’’’’’’’’’’±Æ’P’’’’’’’’’’’’’’’’’’’°’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Beispiel: ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1°’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a°’J’’’’’’’’’’’’’’’’’’’±°’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ѱ’/’’’’’’’’’’’’’’’’’’’±’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A±’J’’’’’’’’’’’’’’’’’’’‘±’K’’’’’’’’’’’’’’’’’’’į±’K’’’’’’’’’’’’’’’’’’’1²’O’’’’’’’’’’’’’’’’’’’‘²’I’’’’’’’’’’’’’’’’’’’į²’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Beispiel: ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³’)’’’’’’’’’’’’’’’’’’’A³’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³’Q’’’’’’’’’’’’’’’’’’’į³’H’’’’’’’’’’’’’’’’’’’1“’G’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”“’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń“’K’’’’’’’’’’’’’’’’’’’!µ’L’’’’’’’’’’’’’’’’’’’qµ’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įµ’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńµ’P’’’’’’’’’’’’’’’’’’’Q¶’S’’’’’’’’’’’’’’’’’’’±¶’O’’’’’’’’’’’’’’’’’’’·’S’’’’’’’’’’’’’’’’’’’q·’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’·’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±·’N’’’’’’’’’’’’’’’’’’’ø’O’’’’’’’’’’’’’’’’’’’aø’T’’’’’’’’’’’’’’’’’’’Įø’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¹’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A¹’L’’’’’’’’’’’’’’’’’’’‘¹’J’’’’’’’’’’’’’’’’’’’į¹’O’’’’’’’’’’’’’’’’’’’Aŗ’Q’’’’’’’’’’’’’’’’’’’”ŗ’S’’’’’’’’’’’’’’’’’’’»’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A»’$’’’’’’’’’’’’’’’’’’’q»’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘»’Q’’’’’’’’’’’’’’’’’’’ń»’Q’’’’’’’’’’’’’’’’’’’Q¼’O’’’’’’’’’’’’’’’’’’’±¼’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ѽ’S’’’’’’’’’’’’’’’’’’’1½’U’’’’’’’’’’’’’’’’’’’‘½’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į½’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¾’O’’’’’’’’’’’’’’’’’’’q¾’S’’’’’’’’’’’’’’’’’’’Ѿ’O’’’’’’’’’’’’’’’’’’’1æ’W’’’’’’’’’’’’’’’’’’’‘æ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±æ’R’’’’’’’’’’’’’’’’’’’Ą’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QĄ’S’’’’’’’’’’’’’’’’’’’’’ gen : ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ą’L’’’’’’’’’’’’’’’’’’’Į’M’’’’’’’’’’’’’’’’’’’QĮ’K’’’’’’’’’’’’’’’’’’’”Į’Q’’’’’’’’’’’’’’’’’’’Ā’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ā’K’’’’’’’’’’’’’’’’’’’Ā’L’’’’’’’’’’’’’’’’’’’ŃĀ’S’’’’’’’’’’’’’’’’’’’1Ć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QĆ’J’’’’’’’’’’’’’’’’’’’”Ć’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńĆ’V’’’’’’’’’’’’’’’’’’’QÄ’U’’’’’’’’’’’’’’’’’’’±Ä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įÄ’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Å’Q’’’’’’’’’’’’’’’’’’’‘Å’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮÅ’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńÅ’N’’’’’’’’’’’’’’’’’’’AĘ’I’’’’’’’’’’’’’’’’’’’‘Ę’O’’’’’’’’’’’’’’’’’’’ńĘ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ē’I’’’’’’’’’’’’’’’’’’’aĒ’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ run ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ē’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ run ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńĒ’N’’’’’’’’’’’’’’’’’’’AČ’M’’’’’’’’’’’’’’’’’’’‘Č’L’’’’’’’’’’’’’’’’’’’įČ’N’’’’’’’’’’’’’’’’’’’1É’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qÉ’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±É’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ? ’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńÉ’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ quit ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ź’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ help ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŹ’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ź’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃŹ’’’’’’’’’’’’’’’’’’’’ńŹ’Q’’’’’’’’’’’’’’’’’’’QĖ’’’’’’’’’’’’’’’’’’’’qĖ’+’’’’’’’’’’’’’’’’’’’”Ė’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńĖ’’’’’’’’’’’’’’’’’’’’Ģ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ģ’N’’’’’’’’’’’’’’’’’’’Ģ’*’’’’’’’’’’’’’’’’’’’±Ģ’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’gen ’’’’’’’’’’’’.- Maximal 800 EintrŁge im Beweisbaum ’’’’’’’’>- Maximal 4000 Bezeichner fŪr Atome und Variablen ’’’’’’’’’’>- Maximal 16000 Buchstaben fŪr alle Bezeichner zusammen ’’’’’.Wie sieht ein Prolog-Programm aus? ’’’’’’’’’’’.Ein Prolog-Programm besteht aus ’’’’’’’’’’’’’’> - Fakten Ūber Objekte und ihre Beziehungen ’’’’’’’’’’’’’’> - Regeln Ūber Objekte und ihre Beziehungen ’’’’’’’’’’’’’’und besonders wichtig: ’’’’’’’N - Der Benutzer kann Prolog Ūber die Fakten und Regeln ausfragen. ’’’’’’’’NFakten aus einer Wissensbasis, nŁmlich dem Prolog-Programm, sind z.B.: ’’’’’’’. enthaelt (wisky, aethanol). ’’’’’’’’’’’NDas wird gelesen als: "Wisky enthŁlt Aethanol.". GrundzŪge der sehr’’’’’’’’’’’Neinfachen Syntax lassen sich hieran erklŁren. Ein Faktum wird geschrieben’’’’’wie in diesem Beispiel:’’’’’’’N - Erst kommt der Name der Relation, geschrieben wie ein Elan-Name in’’’’’ kleinen Buchstaben. ’’’N - Dann folgt in runden Klammern und durch Kommata getrennt eine Liste’’’’ von Objektnamen. ’’’’’’. - Zum Schluū steht ein Punkt. ’’’’’’’’’’’NRegeln sind Problembeschreibungen in der Form von logischen AusdrŪcken der’’’’>symbolischen Logik, wie z.B. die folgende Regel: ’’’’’’’’’’’’’N bewirkt (A, B, kopfschmerz) :- enthaelt (A, aethanol), ’’’’’’’’’’’’’’N enthaelt (B, aspirin ). ’’’’’’’’’’’’’’NDas wird gelesen als: "Wenn man eine Droge A, die Aethanol enthŁlt,’’’’’’’’’’’Nund eine Droge B, die Aspirin enthŁlt gleichzeitig einnimmt, dann bewirkt’’’’’Ndas Kopfschmerzen." Wie man sieht werden logische Variablen mit groūen’’’’’’’NBuchstaben (wie Elan-Operatoren) geschrieben. Das Zeichen ":-" steht fŪr das’’Nlogische Wenn, und das Komma(",") fŪr die logische Konjunktion. Die logische’’>Disjunktion wird durch Semikolon(";") ausgedrŪckt. ’’’’’’’’’’’NNeben der hiermit vorgestellten Prefix-Schreibweise fŪr Relationen gibt es in’NELAN-Prolog auch noch eine Infix-Schreibweise fŪr zweistellige Relationen.’’’’>Hierbei werden die Relationen als Infix-Operatoren in groūen’’NBuchstaben geschrieben (wie in ELAN) und zwischen die beiden Operanden’’’’’’’’Ngesetzt. Als Operatoren sind auch die in Elan Ūblichen Operatoren ’’’’’’’’’’’’> ( +, -, *, /, MOD, =, <, >, <=, >=, <> ) ’’’’’’’NIn InfixausdrŪcken (wie z.B. 2+3*4) gelten die bekannten Vorrangregeln. Auch’’NKlammern sind zulŁssig. Selbstdefinierte Operatoren haben niedrigste ’’’’’’’’’.Obiges Beispiel in Infix-Schreibweise: ’’’’’’’. wisky ENTHAELT aethanol. ’’’’’’’’’’’’’’> bewirkt (A, B, kopfschmerz) :- A ENTHAELT aethanol, ’’> B ENTHAELT aspirin. ’’’NObjekte in Prolog kŚnnen Atome oder Listen sein. FŪr Atome gibt es zwei ’’’’’’Schreibweisen: ’’’’’’’’’’’’’’’N - genau so wie Elan-Bezeichner, also bestehend aus kleinen Buchstaben’’’’’> und Blanks. Dabei werden die Blanks eliminiert. ’’’’’’’’N - genauso wie Elan-Texte, nŁmlich in GŁnsefŪūchen eingeschlossen. ’’’’’’’’NFŪr Listen von Objekten gibt es wiederrum zwei Schreibweisen, wie folgende’’’’Nzwei unterschiedlichen Notationen des gleichen Beispiels zeigen: ’’’’’’’’’’’’’> - [ das, ist, [ zum, beispiel ], eine, liste ] ’’’’’’’’’’’> - [ das, ist, [ zum | [ beispiel | [] ] ], eine, liste ] ’NIm zweiten Fall ist die als drittes Element in der Gesamtlisten enthaltene’’’’NTeilliste mit dem Konstruktor "|" und der leeren Liste "[]" zusammengesetzt.’’NDie Grundoperationen, die aus der Programmiersprache LISP bekannt sind,’’’’’’’NkŚnnen als Prolog-Fakten unmittelbar wie folgt definiert werden: ’’’’’’’’’’’’’ eq (X, X). ’’’’’’’ head ([X|Y], X). ’ tail ([X|Y], Y). ’. cons (X, Y, [X|Y]). ’’’’’’’’’’’’’’>#on("u")#Standard - Operatoren von Elan-Prolog:#off("u")# ’’’’NIm System sind nur ganz wenige Standardoperatoren eingebaut. Es sind die’’’’’’folgenden Fakten: ’’’’’’’’’’’’N - ! . der CUT-Operator schaltet des Backtracking ab. ’’’’’’’’’> - bye. beendet die prolog Anwendung. ’’’’’’’’’’> - listing. zeigt alle insertierten Regeln. ’’’’’’’’> - listing (X). zeigt alle insertierten Regeln Ūber X. ’. - call (X). X wird ausgefŪhrt. ’’’’’N - write (X). das an X gebundenen Prolog-Objekts wird ausgegeben, ’’’’> writeq (X). und wenn nicht eindeutig, gequotet, ’’’’N put (X). das Zeichen, dessen ASCII-Code X ist wird ausgegeben, ’’N name (X,[Y]). unifiziert das Atom X mit der Liste seiner Buchstaben. ’N - read (X). ein Objekt wird gelesen und an die Variable gebunden. ’’> get0 (X). das nŁchste Zeichen wird gelesen, ’’’’’’N get (X). das nŁchste druckbare Zeichen wird gelesen, ’’’’’’’’’’’’N - X = Y . Die an X und Y gebundenen Objekte sind gleich, ’’’’’’’’’. X <> Y . sie sind ungleich, ’’’’’> X <= Y . sie sind kleiner oder gleich, ’’’’’’’’’’> X == Y . sie sind wŚrtlich gleich, ’’’’’’’’’’’’’’N X =.. [F|A] . X ist der Term mit Funktor F und Argumentliste A. ’’’’’’. - X + Y . sie sollen addiert, ’’’’. X - Y . subtrahiert, ’’’’’’’’’’’. X * Y . multipliziert, ’’’’’’’’’. X / Y . dividiert, ’’’’’’’’’’’’’N X MOD Y . der Divisionsrest soll ermittelt werden, ’’’’’’’’’’’’’’’N die Auswertung geschieht durch den 'is'-Operators. ’’’’’N - X IS EXPR . Das Ergebnis des arithmetischen Ausdrucks EXPR wird’’’’’> gebildet und mit X unifiziert. ’’’’’’’’’N - incr (X). der arithmetische Wert von X wird um eins erhŚht. ’’’’’’N - assertz ([X]). insertiert die Regel X am Ende einfŪgend. ’’’’’’’’’’’’’’N asserta ([–]). insertiert die Regel X am Anfang einfŪgend. ’’’’’’’’’’’’> retract ([X]). entfernt die Regel X wieder. ’’’’’’’’’’’N clause (X,[Y]). holt die Regel Y mit dem Kopf X aus der Knowledgebase. ’N - functor (X,Y,Z) Y ist der Funktor von X und Z ist seine AritŁt. ’’’’’’’’> arg (X,Y,Z). Z ist das x-te Argument der Funktion Y. N - elan (X). AusfŪhrung der insertierten ELAN-Prozedur X ’’’’’’’’’’’’N elan (X,Y). AusfŪhrung von X mit dem TEXT-CONST-Parameter Y ’’’’’’’’N - elan(trace,on). schaltet den dynamischen Ablaufverfolger ein und ’’’’’’’. elan(trace,off) schaltet ihn wieder ab. N - elan(consult,X) lŁdt das Prologprogramm aus der Datei namens X hinzu. ’N elan(reconsult,X) ersetzt das Prologprogramm aus der Datei X. ’’’’’’’’’N elan(abolish,X) entfernt alle Regeln mit dem Namen X. ’’’’’’’’’’’’’’’>#on("u")#Das Dialogverhalten von Elan-Prolog:#off("u")# ’’’’’’NElan-Prolog wird, sobald es in das Eumel-System insertiert ist, als Prozedur’’Nmit dem Namen "prolog" und einem optionalen TEXT-Parameter aufgerufen. Der’’’’NTextparameter enthŁlt den Namen einer Datei, die ein Prolog-Programm enthŁlt,’Ndas geladen werden soll. Fehlt der Parameter, wird, wie Ūblich, die zuletzt’’’Nbearbeitete Datei genommen. Im Prolog-Dialog kŚnnen spŁter weitere’’’’’’’’’’’’NProlog-Programme mit der Prozedur namens "consult" hinzugeladen werden. ’’’’’’.einfachster Aufruf: prolog ("") ’’’’’’’’’’Antwort: ?- ’’’.Beispiel-Eingabe: 3 = 3 ’’’’’’’’’’’’.Antwort: yes ’’’’’’’’’’’’’’ ?- ’’’.Eingabe: 4 = -5 ’’’’’’’’’’’.Antwort: no ’’’’’’’’’’’’’’’ ?- ’’’Besondere Dialogkommandos: ’’’ ?- ’’’Eingabe: Ķ’R’’’’’’’’’’’’’’’’’’’aĶ’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ķ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮĶ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įĶ’’’’’’’’’’’’’’’’’’’’Ī’V’’’’’’’’’’’’’’’’’’’aĪ’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ī’%’’’’’’’’’’’’’’’’’’’ĮĪ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńĪ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ļ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ļ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aĻ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ļ’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃĻ’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Š’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŠ’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Š’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŠ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŠ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ń’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŃ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŃ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ń’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŃ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŃ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’1Ņ’7’’’’’’’’’’’’’’’’’’’qŅ’=’’’’’’’’’’’’’’’’’’’±Ņ’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŅ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ó’’’’’’’’’’’’’’’’’’’’AÓ’Q’’’’’’’’’’’’’’’’’’’”Ó’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃÓ’’’’’’’’’’’’’’’’’’’’ńÓ’O’’’’’’’’’’’’’’’’’’’QŌ’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ō’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ō’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įŌ’,’’’’’’’’’’’’’’’’’’’Õ’Q’’’’’’’’’’’’’’’’’’’qÕ’Q’’’’’’’’’’’’’’’’’’’’’ den. ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃÕ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ö’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ö’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aÖ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ö’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ö’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įÖ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’×’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!×’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q×’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’×’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±×’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į×’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ų’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ų’’’’’’’’’’’’’’’’’’’’QŲ’K’’’’’’’’’’’’’’’’’’’”Ų’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃŲ’’’’’’’’’’’’’’’’’’’’ńŲ’’’’’’’’’’’’’’’’’’’’Ł’(’’’’’’’’’’’’’’’’’’’AŁ’$’’’’’’’’’’’’’’’’’’’qŁ’'’’’’’’’’’’’’’’’’’’’”Ł’*’’’’’’’’’’’’’’’’’’’ŃŁ’6’’’’’’’’’’’’’’’’’’’Ś’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŚ’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ś’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ś’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃŚ’’’’’’’’’’’’’’’’’’’’ńŚ’N’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŪ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŪ’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ū’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŪ’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŪ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ü’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QÜ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qÜ’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ü’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńÜ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ż’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŻ’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŻ’#’’’’’’’’’’’’’’’’’’’”Ż’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŻ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’1Ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŽ’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ž’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŽ’(’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŽ’%’’’’’’’’’’’’’’’’’’’!ß’’’’’’’’’’’’’’’’’’’’Aß’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qß’J’’’’’’’’’’’’’’’’’’’Įß’N’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ą’D’’’’’’’’’’’’’’’’’’’aą’P’’’’’’’’’’’’’’’’’’’’’werden: ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įą’’’’’’’’’’’’’’’’’’’’ńą’J’’’’’’’’’’’’’’’’’’’Aį’N’’’’’’’’’’’’’’’’’’’‘į’’’’’’’’’’’’’’’’’’’’±į’L’’’’’’’’’’’’’’’’’’’ā’I’’’’’’’’’’’’’’’’’’’Qā’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’H’’’’’’’’’’’’’’’’’’’Ńā’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ć’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ać’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ć’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńć’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ä’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qä’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ä’P’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įä’J’’’’’’’’’’’’’’’’’’’1å’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’å’O’’’’’’’’’’’’’’’’’’’įå’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ę’+’’’’’’’’’’’’’’’’’’’1ę’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qę’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ę’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įę’E’’’’’’’’’’’’’’’’’’’’’#foot# ’’’’’’’’’’’’’’1ē’[’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ē’L’’’’’’’’’’’’’’’’’’’įē’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!č’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ač’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ač’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”č’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įč’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įč’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’é’’’’’’’’’’’’’’’’’’’’Aé’’’’’’’’’’’’’’’’’’’’aé’’’’’’’’’’’’’’’’’’’’é’’’’’’’’’’’’’’’’’’’’”é’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įé’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įé’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ź’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ź’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ź’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńź’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ė’'’’’’’’’’’’’’’’’’’’’aė’%’’’’’’’’’’’’’’’’’’’‘ė’'’’’’’’’’’’’’’’’’’’’Įė’%’’’’’’’’’’’’’’’’’’’ńė’'’’’’’’’’’’’’’’’’’’’!ģ’,’’’’’’’’’’’’’’’’’’’Qģ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ģ’S’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įģ’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ķ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qķ’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ķ’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įķ’'’’’’’’’’’’’’’’’’’’’ī’%’’’’’’’’’’’’’’’’’’’Aī’'’’’’’’’’’’’’’’’’’’’qī’%’’’’’’’’’’’’’’’’’’’”ī’'’’’’’’’’’’’’’’’’’’’Ńī’%’’’’’’’’’’’’’’’’’’’ļ’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ļ’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ļ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ļ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńļ’R’’’’’’’’’’’’’’’’’’’1š’J’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įš’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įš’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ń’’’’’’’’’’’’’’’’’’’’ ? .Antwort z.B.: 13.5 SEC ’’’’’’’’’ ?- ’’’.Eingabe: listing ’’’’’’’’’’NAntwort: { zeigt alle aktuell verfŪgbaren Regeln } ’’’’’’’’ ?- ’’’.Eingabe: {ESCAPE} q ’’’’’’’.Ausgabe: gib kommando: ’’’’’’’’.Eingabe: prolog again ’’’’’Ausgabe: ?- ’’’NEingabe: [sum, permute] {in eckigen Klammern!} ’’’’’’’’’N { konsultiert diese beiden Dateien } ’’’’’’’’’’’’’.Antwort z.B.: 25 rules inserted. ’’’ ?- ’’’.Eingabe: [-sum, -permute] ’N { lŚscht und rekonsultiert aus diesen Dateien } ’’.Antwort z.B.: 25 rules inserted. ’’’.Eingabe: {ESCAPE} {ESCAPE} .Antwort: gib kommado: ’’’’’’’’’>Elan-Eingabe z.B.: show ("standard") ’’’’’’’> { zeigt die Datei dieses Namens }  ?- ’’’NAuf diese Weise kŚnnen bequem Eumel-Kommandos gegeben werden. Die’’’’’’’’’’’’’NUmschaltung vom Prolog- zum Eumelmonitor-Betrieb erfolgt durch die Tasten’’’’’N{ESCAPE},{ESCAPE} und {RETURN}. Wie Ūblich ist das zuletzt verwendete’’’’’’’’’NKommando auch im Prolog-Dialog mit dem Escapekommando "{ESCAPE} k"’’’’’’’’’’’’Nwiederzubekommen. Das Kommando "{ESCAPE} q" beendet den Dialog. ’’’’’’’’’’’’’’>#on("u")#Ausprobieren der Prolog-Programmbeispiele:#off("u")# NZum Ausprobieren sind die Prologbeispiele "eq", "permute" und "mann"’’’’’’’’’’Beispiel: ?- ’’’NEingabe: [permute] {in eckigen Klammern!} ’’’’’’’’’’’’.Antwort: 5 rules inserted. ’’’’ ?- ’’’.Eingabe: marquise(X) ’’’’’’NAntwort: beautiful marquise your beautiful eyes make me die of love ’’Eingabe: {Semicolon} ’NAntwort: your beautiful eyes beautiful marquise make me die of love ’’ { usw } ’’’’’Eingabe: {Return} ’’’’Antwort: ?- ’’’’’’’’’’nJede #on("u")#Eingabe von Semicolon#off("u")# liefert als Antwort die nŁchste Permutation. Wenn’’’’’’’’’’’’’’’Neine andere Taste gedrŪckt wird, bricht die Ausgabe weiterer Ergebnisse ab. ’’^#on("u")#Eingabe von Fragezeichen#off("u")# liefert neben der Angabe der benŚtigten’’’’’’’’’’’NRechenzeit eine ErklŁrung der letzten Antwort durch Ausgabe aller zu dieser’’’NAntwort fŪhrenden Schluūfolgerungen. Dabei wird der Beweisbaum in Form einer’’NEinrŪckstruktur dargestellt. Die EinrŪckung stellt die ErklŁrungstiefe dar. ’’N#on("u")#Benutzung von Prolog von Elan-Programmen aus#off("u")# ’’’’’’’’’’’’’’NWenn man Prolog als Unterprogramm von Elan aus aufrufen will, geht man’’’’’’’’folgendermaūen vor: ’’’’’’’’’’1. Laden einer Wissensbasis, N die in einer Datei namens z.B."permute" bereitsteht: ’’’’’ push ("bye"13""); ’’’ prolog ("permute"); ’.2. Abfragen an diese Wissensbasis: ’’’’’’’’’’. TEXT VAR query, answer; ’’’’’’’’’’’’’. query:= "marquise (X)"; ’’’’’’’’’’’’’. IF prolog ( query, answer) ’’’’’’’’ THEN put (answer) ’’’ ELSE put ("NO") ’’’’’NIn diesem Anwendungsbeispiel liefert die Ausgabeanweisung 'put (answer)': ’’’’N beautiful marquise your beatiful eyes make me die of love ’’’’’’’’’’’#on("u")#Literatur:#off("u")# .1.) W.F.Clocksin, C.S.Mellish: ’’’’’’’’’’’’’’ Programming in Prolog ’’’ Springer 1984 ’’’’’’’’’’’2.) M.H.van Emden: ’’’’’’’’’’> An interpreting algorithm for prolog programs ’’’’’’’’’’’> in Implementations of Prolog, Ellis Herwood Ltd, 1984 ’’’3.) Alain Colmerauer: ’’’’’’’ Prolog in 10 Figures ’’’’. Communications of the ACM December 1985 ’4.) J. Cohen: ’’’’’’’’’’’’’’’> Describing Prolog by its Interpretation and Compilation ’. Communications of the ACM December 1985 ’5.) Alain Colmerauer: ’’’’’’’N Les system q ou un formalisme pour alalyser et synthetiser des phrases’’’ sur ordinateur. ’’’’’’’’’N Intern.Rep. 43, Departement d'informatique. Universite de Montreal ’’’’’’ Sept. 1970 ’’’’’’’’’’’’’’N(*************************************************************************) ’’N(* *) ’’N(* Elan-Prolog *) ’’N(* *) ’’N(* Programm-Beispiele: *) ’’N(* *) ’’N(****************** standard (nach Clocksin-Mellish) ********************) ’’>abolish (X) :- elan (abolish, X). ’’’’’’’’’.append ([], X, X) :- !. ’’’’’’’’’>append ([X|Y], Z, [X|W]) :- append (Y, Z, W). ’’’’’’’’’’>atom (X) :- functor (X, Y, 0). ’’’’’’’’’>atomic (X) :- atom (X); integer (X). ’’’’’>consult (X) :- elan (consult, X). ’’’’’’’’’.end :- bye. ’’’’’’’.fail :- []. ’’’’’’’’Nfindall (X, Y, Z) :- tell ("$$"), write ("("), findall (X,Y); ’’’N write (")"), told, see ("$$"), read (Z), ’’> seen, elan (forget, "$$"). ’Nfindall (X, Y) :- call (Y), writeq (X), write (","), []. ’’’’’>integer (X) :- functor (X, Y, -1). ’’’’’’’’listing (X). ’’’’’’’’’’’’’’member (X, [X|Z]). >member (X, [Y|Z]) :- member (X, Z). ’’’’’’’’’’’’’>nl :- elan (line). ’’’’’’’’’’’’’’’>non var (X) :- var (X), !, []; . ’’’’’’’’’’>not (X) :- call (X), !, []; . ’’’’’’’’’>notrace :- elan (trace, off). ’’’’’’’’’>reconsult (X) :- elan (reconsult, X). ’’’’’’’.repeat :- repeat. ’’’’>see (X) :- elan (sysin, X). ’’’’’’’’’’’>seen :- elan (sysin, ""). ’’’’’’’’’’.tab (X) :- tab(X,1). ’’Ntab (X,Y) :- Y<=X, !, put (32), incr(Y), tab(X,Y);. ’’’’’>tell (X) :- elan (sysout, X). ’’’’’’’’’’>told :- elan (sysout, ""). ’’’’’’’’’>trace :- elan (trace, on). ’’’’’’’’’’>< (X, Y) :- <= (X, Y), <> (X, Y). ’’’’’’.> (X, Y) :- <= (Y, X). ’.>= (X, Y) :- < (Y, X). ’N(**************************** sum ***********************************) ’’>suc (0, 1). suc (1, 2). suc (2, 3). suc (3, 4). suc (4, 5). ’’>suc (5, 6). suc (6, 7). suc (7, 8). suc (8, 9). ’’’’’’’’’’’’’’sum (0, X, X). ’’’’’’’’’’’’’’’>sum (X, Y, Z):- suc (V, X), sum (V, Y, W), suc (W, Z). ’’’’’’plus (X, [0,0], X):- !. ’’’’’Nplus (X, Y, Z):- plus one (V, Y), plus (X, V, W), !, plus one (W, Z). ’’’’’’’>plus one ([X, Y], [V, W]):- suc (Y, W), X = V, !; ’’’’’’’’’’’> Y = 9, suc (X, V), W = 0. ’’’’’’’>treereverse (X,Y):- rev (X,Y), !; rev (Y,X), !. ’’’’’’’’’’’’’rev ([], []). Nrev ([X|Y], Z):- X <> [H|T], rev (Y, W), !, append (W, [X], Z); ’’’’’’’’’’’’’N rev (X, V), rev (Y, W), !, append (W, [V], Z). ’’’’’’’’’’’’’N(**************************** permute ************************************) ’’permute ([], [’’ ’’’’’’’’’’’’’’’’’’’’ań’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ń’K’’’’’’’’’’’’’’’’’’’ńń’Q’’’’’’’’’’’’’’’’’’’Qņ’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’&’’’’’’’’’’’’’’’’’’’±ņ’’’’’’’’’’’’’’’’’’’’Ńņ’’’’’’’’’’’’’’’’’’’’ńņ’’’’’’’’’’’’’’’’’’’’ó’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ó’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qó’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ó’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńó’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ō’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qō’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ō’M’’’’’’’’’’’’’’’’’’’įō’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’õ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1õ’'’’’’’’’’’’’’’’’’’’’aõ’%’’’’’’’’’’’’’’’’’’’‘õ’'’’’’’’’’’’’’’’’’’’’Įõ’%’’’’’’’’’’’’’’’’’’’ńõ’'’’’’’’’’’’’’’’’’’’’!ö’+’’’’’’’’’’’’’’’’’’’Qö’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ö’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńö’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’÷’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1÷’N’’’’’’’’’’’’’’’’’’’÷’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”÷’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į÷’%’’’’’’’’’’’’’’’’’’’ń÷’%’’’’’’’’’’’’’’’’’’’!ų’'’’’’’’’’’’’’’’’’’’’Qų’%’’’’’’’’’’’’’’’’’’’ų’'’’’’’’’’’’’’’’’’’’’±ų’+’’’’’’’’’’’’’’’’’’’įų’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ł’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ał’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ł’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ł’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įł’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ś’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qś’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńś’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qū’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ū’K’’’’’’’’’’’’’’’’’’’ü’Q’’’’’’’’’’’’’’’’’’’aü’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ü’&’’’’’’’’’’’’’’’’’’’Įü’’’’’’’’’’’’’’’’’’’’įü’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’!ż’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aż’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ż’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńż’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ž’n’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ž’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńž’E’’’’’’’’’’’’’’’’’’’!’’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’H’’’’’’’’’’’’’’’’’’’²’O’’’’’’’’’’’’’’’’’’’’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’,’’’’’’’’’’’’’’’’’’’’’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’J’’’’’’’’’’’’’’’’’’’"’N’’’’’’’’’’’’’’’’’’’r’N’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’0’’’’’’’’’’’’’’’’’’’’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’'’’’’’’’’’’’’’’’’’’’ā’)’’’’’’’’’’’’’’’’’’’ ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B ’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’ ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā ’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’" ’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b ’#’’’’’’’’’’’’’’’’’’’’ ’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā ’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’" ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r ’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’² ’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ ’'’’’’’’’’’’’’’’’’’’’" ’#’’’’’’’’’’’’’’’’’’’R ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚ ’P’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B ’I’’’’’’’’’’’’’’’’’’’’ ’B’’’’’’’’’’’’’’’’’’’ā ’]’’’’’’’’’’’’’’’’’’’B’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’Ā’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’%’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’N’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’Ā’7’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’)’’’’’’’’’’’’’’’’’’’]). ’’’’’’’’’’’’permute ([E|X], Z):- ’’’’’’’’’. permute (X, Y), insert (E, Y, Z). ’’’’insert (E, X, [E|X]). ’’’’’’’insert (E, [F|X], [F|Y]):- ’’ insert (E, X, Y). ’’’’marquise(RESULT):- ’’’’’’’’’’’. permute (["beautiful marquise", ’’’’’’’’’’’’. "your beautiful eyes", ’’’’’’’ "make me", ’ "die", ’’’. "of love" ’’’’’’’’’’’’’’ ], ’’’. RESULT). ’’’’’’’’’’’N(**************************** puzzle ************************************) ’’. {Solution: 9,5,6,7,0,8,2} ’’’’>puzzle:- repeat, permute ((9,8,7,6,5,2,0), SENDMORY), ’’’’’’’’. write (SENDMORY), ’’’’’’’’’’’> puzzle (SENDMORY, SEND, MORE, MONEY), ’’’’’’’ elan (line), . write (SEND), write (+), ’’’’. write (MORE), write (=), ’’’’. write (MONEY). ’’’’’’’’’’’’’’.puzzle([S,E,N,D,O,R,Y], SEND, MORE, MONEY):- ’> SEND IS ((S * 10 + E) * 10 + N) * 10 + D, ’’’’’’’’’’’’’’’. MORE IS ((10 + O) * 10 + R) * 10 + E, ’’’> MONEY IS (((10 + O) * 10 + N) * 10 + E) * 10 + Y, ’’’’’’’’ MONEY IS SEND + MORE. ’’’’permute ([], []). ’’’’’’’’’’’’>permute ([E|X], Z):- permute (X, Y), insert (E, Y, Z). ’’’’’’’insert (E, X, [E|X]). ’’’’’’’.insert (E, [F|X], [F|Y]):- insert (E, X, Y). repeat:- repeat. ’’’’’’’’’’’’’N(**************************** prieks ***********************************) ’’ist priek (bo priek). ’’’’’’’’ist priek (ki priek). ’’’’’’’’ist priek (bla priek). ’’’’’’’.WER GNASELT WEN :- population (B), ’’’’’’’’’’’. member ([WEN, WER, _], B), . bedingungen (B). ’’’’’’’’’’.WER KNAUDERT WEN:- population (B), ’’’’’’’’’’’. member ([WER, _, WEN], B), . bedingungen (B). ’’’’’’’’’’.population (B):- sind prieks (U, V, W), ’’’’> sind knauderarten (R, S, T), ’’’’’’’’’’’’’’> B = [ [drausla puemfe, U, R], ’’’’’’’’’’’’’> [glessla puemfe, V, S], ’’’’’’’’’’’’’> [hapla puemfe, W, T] ]. ’’’’’’’’’’.sind prieks (X,Y,Z):- ist priek (G), ’’’’’’’’’. ist priek (H), H<>G, ’’’> ist priek (I), I<>G, I<>H, !, ’’’’’’’’’’> permute ([G,H,I], [X,Y,Z]). ’’’’’’’’>sind knauderarten (X,Y,Z):- ist knauderart (G), ’’’’’’’’’’’’’’> ist knauderart (H), H<>G, ’’’’’’’’N ist knauderart (I), I<>G, I<>H, !, ’’’’’’’’’’’’’’’> permute ([G,H,I],[X,Y,Z]). ’’’ist knauderart (an). ’’’’’’’’’ist knauderart (ab). ’’’’’’’’’ist knauderart (ueber). ’’’’’’>bedingungen (B):- not member ([hapla puemfe,ki priek,_],B) , > not member ([hapla puemfe,_,ueber],B) , ’’’N not member ([drausla puemfe,bo priek,_],B) , ’’’’’’’’’’’’’’> not member ([_,bo priek,ab],B) , ’’’’’’’’’’. noch ne bedingung (B) , ’’’> weitere bedingungen (B) , !. ’’’’’’’’’’’’’’>weitere bedingungen (B):- not member([_,ki priek,ueber],B), ’> not member([_,bo priek,ueber],B) ’’ ; ’> member([drausla puemfe,_,an],B). ’’Nnoch ne bedingung (B):- not member ([drausla puemfe,ki priek,_],B) ’’’’’’’’ ; ’N not member ([glessla puemfe,_,ueber],B). ’’’’’’’’’’permute ([], []). ’’’’’’’’’’’’>permute (X, [Y|Z]):- delete (Y ,X, E), permute (E, Z). ’’’’’’’delete (X, [X|Z], Z). ’’’’’’’’.delete (X, [Y|Z], [Y|E]):- delete (X, Z, E). ’member (X, [X|Z]). ’’’’.member (X, [Y|Z]):- member (X, Z). ’’’’’’’’’’not member (X, []). ’’’’’’’’’’>not member (X, [Y|Z]):- X <> Y, not member (X,Z). ’’’’’’’’’’’’N(**************************** calc ************************************) ’’>{ CALC evaluates arithmetic expressions with store } ’’’’’’’’’>calc:- eval ([], RS), write (result store), write (RS), nl. ’’eval (SI, SO):- ’’’’’’’’’’’’’’> read (CALC), nonvar (CALC), eval member (CALC, SI, SO). ’’’eval member (CALC, SI, SO):- ’. member (CALC, [stop,end,bye,eof]), SO=SI; ’> eval (CALC,I,SI,ST), write (I), eval (ST,SO); ’’’’’’’’’’’’’> write (error in), write (CALC), nl, eval (SI, SO). ’’’’’’’’.eval (I, I, S, S):- integer (I). ’’’’’’’’’’’’’>eval (N, I, S, S):- atom (N), eval atom (N, I, S). ’’’’’’’’’’’eval atom (N, I, S):- ’’’’’’’’ member (N=I, S); ’’’’’’’’’’’. write ("error: Cell"), write (N), ’’’’’’’’’> write("not found in store. 0 substituted."), nl, I=0. ’’’’Neval ( L+R,I,SI,SO):- eval (L,J,SI,ST), eval (R,K,ST,SO), I IS J+K. ’’’’’’’’’’Neval ( L-R,I,SI,SO):- eval (L,J,SI,ST), eval (R,K,ST,SO), I IS J-K. ’’’’’’’’’’Neval ( L*R,I,SI,SO):- eval (L,J,SI,ST), eval (R,K,ST,SO), I IS J*K. ’’’’’’’’’’Neval ( L/R,I,SI,SO):- eval (L,J,SI,ST), eval (R,K,ST,SO), I IS J/K. ’’’’’’’’’’eval (N=O, I, SI, SO):- ’’’’’’> atom (N), eval (O,I,SI,ST), eval repl (N,I,ST,SO). ’’’’’’’’’.eval repl (N, I, [], [=(N,I)]). ’’’’’’’’’’’’’’.eval repl (N, I, [=(N,_)|S], [=(N,I)|S]). ’’’’Neval repl (N, I, [=(M,J)|SI], [=(M,J)|SO]):- eval repl (N, I, SI, SO). ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’prolog’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’+Ą’’’’’’’’’Ą’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2źa€ė’’ŗ · T’’’’TT» M’’’’’’prolog’’’’’’’’’’’’’’’’’’’’ŗ ’’’’’’’’’’’’’’’’’’a€’K’’’’’’’’’’’’’’’’’’’±€’K’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ { GLOBALS } ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’ nil = 0; ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’E’’’’’’’’’’’’’’’’’’’ń’B’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’L’’’’’’’’’’’’’’’’’’’R’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’P’’’’’’’’’’’’’’’’’’’ņ’P’’’’’’’’’’’’’’’’’’’R’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’Q’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’J’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’P’’’’’’’’’’’’’’’’’’’B’L’’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’ā’K’’’’’’’’’’’’’’’’’’’2’E’’’’’’’’’’’’’’’’’’’‚’P’’’’’’’’’’’’’’’’’’’ā’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’N’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"’8’’’’’’’’’’’’’’’’’’’b’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’L’’’’’’’’’’’’’’’’’’’ņ’K’’’’’’’’’’’’’’’’’’’B’T’’’’’’’’’’’’’’’’’’’¢’P’’’’’’’’’’’’’’’’’’’ ’U’’’’’’’’’’’’’’’’’’’b ’P’’’’’’’’’’’’’’’’’’’Ā ’P’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"!’2’’’’’’’’’’’’’’’’’’’b!’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’!’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā!’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ!’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R"’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r"’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢"’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ"’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’#’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B#’P’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢#’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā#’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’$’F’’’’’’’’’’’’’’’’’’’b$’Q’’’’’’’’’’’’’’’’’’’Ā$’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ$’6’’’’’’’’’’’’’’’’’’’2%’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b%’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚%’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²%’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"&’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b&’P’’’’’’’’’’’’’’’’’’’Ā&’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ&’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"'’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R'’!’’’’’’’’’’’’’’’’’’’‚'’!’’’’’’’’’’’’’’’’’’’²'’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā'’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"(’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R(’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚(’K’’’’’’’’’’’’’’’’’’’Ņ(’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’)’"’’’’’’’’’’’’’’’’’’’B)’’’’’’’’’’’’’’’’’’’’b)’’’’’’’’’’’’’’’’’’’’‚)’(’’’’’’’’’’’’’’’’’’’²)’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ)’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"*’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B*’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b*’E’’’’’’’’’’’’’’’’’’’²*’K’’’’’’’’’’’’’’’’’’’+’P’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b+’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚+’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²+’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ+’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’",’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b,’M’’’’’’’’’’’’’’’’’’’²,’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ,’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’-’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R-’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r-’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā-’L’’’’’’’’’’’’’’’’’’’.’J’’’’’’’’’’’’’’’’’’’b.’K’’’’’’’’’’’’’’’’’’’².’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ.’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’/’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"/’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r/’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²/’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ/’G’’’’’’’’’’’’’’’’’’’"0’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B0’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b0’%’’’’’’’’’’’’’’’’’’’’0’'’’’’’’’’’’’’’’’’’’’Ā0’'’’’’’’’’’’’’’’’’’’’ņ0’%’’’’’’’’’’’’’’’’’’’"1’'’’’’’’’’’’’’’’’’’’’R1’+’’’’’’’’’’’’’’’’’’’‚1’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²1’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B2’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b2’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²2’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ2’%’’’’’’’’’’’’’’’’’’’3’%’’’’’’’’’’’’’’’’’’’23’'’’’’’’’’’’’’’’’’’’’b3’%’’’’’’’’’’’’’’’’’’’’3’'’’’’’’’’’’’’’’’’’’’Ā3’+’’’’’’’’’’’’’’’’’’’ņ3’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"4’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b4’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚4’’’’’’’’’’’’’’’’’’’’¢4’-’’’’’’’’’’’’’’’’’’’Ņ4’"’’’’’’’’’’’’’’’’’’’5’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’25’L’’’’’’’’’’’’’’’’’’’‚5’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā5’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’6’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R6’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢6’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā6’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā6’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"7’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b7’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’A‚’)’’’’’’’’’’’’’’’’’’’q‚’7’’’’’’’’’’’’’’’’’’’±‚’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į‚’%’’’’’’’’’’’’’’’’’’’ƒ’E’’’’’’’’’’’’’’’’’’’aƒ’%’’’’’’’’’’’’’’’’’’’‘ƒ’9’’’’’’’’’’’’’’’’’’’у’0’’’’’’’’’’’’’’’’’’’„’I’’’’’’’’’’’’’’’’’’’a„’'’’’’’’’’’’’’’’’’’’’‘„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±„’’’’’’’’’’’’’’’’’’’’ф’I’’’’’’’’’’’’’’’’’’’!…’>’’’’’’’’’’’’’’’’’’’a…’4’’’’’’’’’’’’’’’’’’’”…’F’’’’’’’’’’’’’’’’’’’ń…’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1†’’’’’’’’’’’’’’’’’’’’Q†’I’’’’’’’’’’’’’’’’’’’”†’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ц’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A‡’’’’’’’’’’’’’’’’’’’’a‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’”‡’&’’’’’’’’’’’’’’’’’’’ч’)’’’’’’’’’’’’’’’’’’’ˆ’"’’’’’’’’’’’’’’’’’’’1ˆ’$’’’’’’’’’’’’’’’’’’’aˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ˆ’’’’’’’’’’’’’’’’’’’’±ˆ’)’’’’’’’’’’’’’’’’’’’ሒ-’’’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’1‰’#’’’’’’’’’’’’’’’’’’’a‰’&’’’’’’’’’’’’’’’’’’’‘‰’6’’’’’’’’’’’’’’’’’’’щ’1’’’’’’’’’’’’’’’’’’’Š’+’’’’’’’’’’’’’’’’’’’AŠ’:’’’’’’’’’’’’’’’’’’’Š’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Š’’’’’’’’’’’’’’’’’’’’ъ’2’’’’’’’’’’’’’’’’’’’‹’1’’’’’’’’’’’’’’’’’’’Q‹’*’’’’’’’’’’’’’’’’’’’‹’,’’’’’’’’’’’’’’’’’’’±‹’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į‹’?’’’’’’’’’’’’’’’’’’’1Œ’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Œ’$’’’’’’’’’’’’’’’’’’’ь’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’э’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ž’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ž’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŽ’’’’’’’’’’’’’’’’’’’’Ž’,’’’’’’’’’’’’’’’’’’’±Ž’+’’’’’’’’’’’’’’’’’’’įŽ’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’N’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’>’’’’’’’’’’’’’’’’’’’ѐ’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q‘’’’’’’’’’’’’’’’’’’’’q‘’’’’’’’’’’’’’’’’’’’’‘‘’’’’’’’’’’’’’’’’’’’’±‘’’’’’’’’’’’’’’’’’’’’ё’"’’’’’’’’’’’’’’’’’’’’’$’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’ђ’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’1“’’’’’’’’’’’’’’’’’’’’Q“’’’’’’’’’’’’’’’’’’’’q“’’’’’’’’’’’’’’’’’’’’‘“’’’’’’’’’’’’’’’’’’’’±“’’’’’’’’’’’’’’’’’’’’ѓ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń“’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’1”’’’’’’’’’’’’’’’’’’’’Q”’J’’’’’’’’’’’’’’’’’’’””’$’’’’’’’’’’’’’’’’’’’є’’’’’’’’’’’’’’’’’’’’ń”’’’’’’’’’’’’’’’’’’’’•’’’’’’’’’’’’’’’’’’’’1•’9’’’’’’’’’’’’’’’’’’’q•’’’’’’’’’’’’’’’’’’’’‘•’’’’’’’’’’’’’’’’’’’’±•’’’’’’’’’’’’’’’’’’’’ѕ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’ń•’$’’’’’’’’’’’’’’’’’’’’’ line; ’’’’’’’’’’’’!–’’’’’’’’’’’’’’’’’’’’A–’’’’’’’’’’’’’’’’’’’’a–’’’’’’’’’’’’’’’’’’’’q–’8’’’’’’’’’’’’’’’’’’’±–’’’’’’’’’’’’’’’’’’’’і’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’ń–’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ bootstrap: ’’’’’’’’’—’’’’’’’’’’’’’’’’’’’’1—’’’’’’’’’’’’’’’’’’’’Q—’0’’’’’’’’’’’’’’’’’’’‘—’’’’’’’’’’’’’’’’’’’’±—’$’’’’’’’’’’’’’’’’’’’į—’’’’’’’’’’’’’’’’’’’’˜’’’’’’’’’’’’’’’’’’’’!˜’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’A˜’’’’’’’’’’’’’’’’’’’’a˜’’’’’’’’’’’’’’’’’’’’˜’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±˜’’’’’’’’’’’’’’’’’’’’Į˜’’’’’’’’’’’’’’’’’’’’ᘒ’’’’’’’’’’’’’’’’’’’™’’’’’’’’’’’’’’’’’’’’!™’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’A™’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a™’’’’’’’’’’’’’’’’’’’’™’’’’’’’’’’’’’’’’’’’’”™’’’’’’’’’’’’’’’’’’’’Į™’&’’’’’’’’’’’’’’’’’’’ń™’,’’’’’’’’’’’’’’’’’’’!š’$’’’’’’’’’’’’’’’’’’’Qš’!’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”š’’’’’’’’’’’’’’’’’’’’Įš’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᚒ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’›’6’’’’’’’’’’’’’’’’’’’A›’’’’’’’’’’’’’’’’’’’’a›’’’’’’’’’’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’”›’ ’’’’’’’’’’’’’’’’’’’ћ’%’’’’’’’’’’’’’’’’’’’’’ result . ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ read goals: ’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’!œ’0’’’’’’’’’’’’’’’’’’’aœ’’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’”œ’#’’’’’’’’’’’’’’’’’’’ќ’’’’’’’’’’’’’’’’’’’’ńœ’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’A’?’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’#’’’’’’’’’’’’’’’’’’’Į’"’’’’’’’’’’’’’’’’’’’’’ THEN ’’’’’’’’’’’’’ń’B’’’’’’’’’’’’’’’’’’’Až’/’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’”ž’!’’’’’’’’’’’’’’’’’’’ў’’’’’’’’’’’’’’’’’’’’ńž’’’’’’’’’’’’’’’’’’’’Ÿ’ ’’’’’’’’’’’’’’’’’’’AŸ’’’’’’’’’’’’’’’’’’’’aŸ’’’’’’’’’’’’’’’’’’’’’’ FI . ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’”Ÿ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŸ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’្’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’! ’0’’’’’’’’’’’’’’’’’’’a ’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’” ’7’’’’’’’’’’’’’’’’’’’į ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’!”’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’A”’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ read goals: ’’’’’’’’”’’’’’’’’’’’’’’’’’’’’””’’’’’’’’’’’’’’’’’’’’Į”’"’’’’’’’’’’’’’’’’’’’ń”’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’1¢’(’’’’’’’’’’’’’’’’’’’a¢’!’’’’’’’’’’’’’’’’’’’‘¢’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’±¢’(’’’’’’’’’’’’’’’’’’’ᢒD’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1£’’’’’’’’’’’’’’’’’’’’A£’2’’’’’’’’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’”£’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’Į£’!’’’’’’’’’’’’’’’’’’’ń£’&’’’’’’’’’’’’’’’’’’’!¤’,’’’’’’’’’’’’’’’’’’’Q¤’’’’’’’’’’’’’’’’’’’’¤’5’’’’’’’’’’’’’’’’’’’Į¤’6’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’!„’B’’’’’’’’’’’’’’’’’’’q„’*’’’’’’’’’’’’’’’’’’’”„’+’’’’’’’’’’’’’’’’’’’Ń„’<’’’’’’’’’’’’’’’’’’’¦’@’’’’’’’’’’’’’’’’’’’a¦’9’’’’’’’’’’’’’’’’’’’”¦’ ’’’’’’’’’’’’’’’’’’’Ѧ’’’’’’’’’’’’’’’’’’’’ń¦’ ’’’’’’’’’’’’’’’’’’’!§’+’’’’’’’’’’’’’’’’’’’Q§’’’’’’’’’’’’’’’’’’’’q§’’’’’’’’’’’’’’’’’’’’‘§’$’’’’’’’’’’’’’’’’’’’Į§’%’’’’’’’’’’’’’’’’’’’ń§’’’’’’’’’’’’’’’’’’’’!Ø’1’’’’’’’’’’’’’’’’’’’aØ’+’’’’’’’’’’’’’’’’’’’‘Ø’'’’’’’’’’’’’’’’’’’’’ĮØ’'’’’’’’’’’’’’’’’’’’’ńØ’E’’’’’’’’’’’’’’’’’’’A©’*’’’’’’’’’’’’’’’’’’’q©’’’’’’’’’’’’’’’’’’’’‘©’&’’’’’’’’’’’’’’’’’’’Į©’’’’’’’’’’’’’’’’’’’’į©’A’’’’’’’’’’’’’’’’’’’1Ŗ’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŖ’’’’’’’’’’’’’’’’’’’’qŖ’’’’’’’’’’’’’’’’’’’’‘Ŗ’#’’’’’’’’’’’’’’’’’’’ĮŖ’>’’’’’’’’’’’’’’’’’’’«’&’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1«’’’’’’’’’’’’’’’’’’’’Q«’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q«’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘«’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’Ń«’’’’’’’’’’’’’’’’’’’’ń«’’’’’’’’’’’’’’’’’’’’¬’’’’’’’’’’’’’’’’’’’’1¬’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q¬’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’7’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ7’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’8’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’28’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚8’"’’’’’’’’’’’’’’’’’’’²8’’’’’’’’’’’’’’’’’’’’Ņ8’’’’’’’’’’’’’’’’’’’’ņ8’’’’’’’’’’’’’’’’’’’’9’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’29’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b9’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²9’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā9’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’:’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B:’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r:’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’:’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā:’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’;’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B;’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r;’I’’’’’’’’’’’’’’’’’’’Ā;’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā;’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2<’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R<’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚<’Q’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā<’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’=’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B=’E’’’’’’’’’’’’’’’’’’’’=’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā=’’’’’’’’’’’’’’’’’’’’>’’’’’’’’’’’’’’’’’’’’2>’’’’’’’’’’’’’’’’’’’’R>’’’’’’’’’’’’’’’’’’’’r>’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’>’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ>’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’?’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R?’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚?’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²?’O’’’’’’’’’’’’’’’’’’’@’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R@’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚@’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢@’)’’’’’’’’’’’’’’’’’’’Ņ@’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bA’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚A’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀA’&’’’’’’’’’’’’’’’’’’’ņA’"’’’’’’’’’’’’’’’’’’’"B’@’’’’’’’’’’’’’’’’’’’rB’;’’’’’’’’’’’’’’’’’’’²B’’’’’’’’’’’’’’’’’’’’ŅB’"’’’’’’’’’’’’’’’’’’’C’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"C’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RC’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚C’!’’’’’’’’’’’’’’’’’’’²C’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āC’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BD’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bD’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢D’K’’’’’’’’’’’’’’’’’’’ņD’P’’’’’’’’’’’’’’’’’’’RE’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚E’ ’’’’’’’’’’’’’’’’’’’²E’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņE’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"F’!’’’’’’’’’’’’’’’’’’’RF’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚F’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŅF’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’G’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2G’I’’’’’’’’’’’’’’’’’’’‚G’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢G’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀG’%’’’’’’’’’’’’’’’’’’’ņG’%’’’’’’’’’’’’’’’’’’’"H’'’’’’’’’’’’’’’’’’’’’RH’&’’’’’’’’’’’’’’’’’’’‚H’'’’’’’’’’’’’’’’’’’’’²H’+’’’’’’’’’’’’’’’’’’’āH’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’I’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bI’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢I’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀI’H’’’’’’’’’’’’’’’’’’’J’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2J’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RJ’%’’’’’’’’’’’’’’’’’’’‚J’%’’’’’’’’’’’’’’’’’’’²J’'’’’’’’’’’’’’’’’’’’’āJ’%’’’’’’’’’’’’’’’’’’’K’'’’’’’’’’’’’’’’’’’’’BK’+’’’’’’’’’’’’’’’’’’’rK’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢K’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņK’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’L’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BL’O’’’’’’’’’’’’’’’’’’’¢L’N’’’’’’’’’’’’’’’’’’’ņL’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"M’6’’’’’’’’’’’’’’’’’’’bM’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²M’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’N’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"N’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BN’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚N’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢N’%’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŅN’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņN’Q’’’’’’’’’’’’’’’’’’’RO’I’’’’’’’’’’’’’’’’’’’¢O’G’’’’’’’’’’’’’’’’’’’ņO’M’’’’’’’’’’’’’’’’’’’BP’R’’’’’’’’’’’’’’’’’’’¢P’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŅP’F’’’’’’’’’’’’’’’’’’’’’ gestellt: ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"Q’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rQ’C’’’’’’’’’’’’’’’’’’’ĀQ’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’G’’’’’’’’’’’’’’’’’’’RR’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’R’G’’’’’’’’’’’’’’’’’’’āR’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"S’F’’’’’’’’’’’’’’’’’’’rS’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²S’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āS’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2T’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bT’U’’’’’’’’’’’’’’’’’’’ĀT’S’’’’’’’’’’’’’’’’’’’"U’H’’’’’’’’’’’’’’’’’’’rU’N’’’’’’’’’’’’’’’’’’’ĀU’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’V’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BV’[’’’’’’’’’’’’’’’’’’’¢V’\’’’’’’’’’’’’’’’’’’’W’K’’’’’’’’’’’’’’’’’’’RW’O’’’’’’’’’’’’’’’’’’’²W’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀW’#’’’’’’’’’’’’’’’’’’’ņW’>’’’’’’’’’’’’’’’’’’’2X’’’’’’’’’’’’’’’’’’’’RX’ ’’’’’’’’’’’’’’’’’’’‚X’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢X’N’’’’’’’’’’’’’’’’’’’ņX’P’’’’’’’’’’’’’’’’’’’RY’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚Y’N’’’’’’’’’’’’’’’’’’’ŅY’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’"Z’R’’’’’’’’’’’’’’’’’’’‚Z’M’’’’’’’’’’’’’’’’’’’ŅZ’M’’’’’’’’’’’’’’’’’’’"[’A’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r[’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢[’M’’’’’’’’’’’’’’’’’’’ņ[’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2\’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b\’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢\’A’’’’’’’’’’’’’’’’’’’’’’’’’’’q¬’+’’’’’’’’’’’’’’’’’’’”¬’’’’’’’’’’’’’’’’’’’’Į¬’’’’’’’’’’’’’’’’’’’’ᬒ’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’­’’’’’’’’’’’’’’’’’’’’1­’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a­’’’’’’’’’’’’’’’’’’’’­’?’’’’’’’’’’’’’’’’’’’Ń­’<’’’’’’’’’’’’’’’’’’’®’’’’’’’’’’’’’’’’’’’’1®’"’’’’’’’’’’’’’’’’’’’a®’4’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”®’.’’’’’’’’’’’’’’’’’’’Ń®’:’’’’’’’’’’’’’’’’’’’Æ’’’’’’’’’’’’’’’’’’’’1Æ’’’’’’’’’’’’’’’’’’’’QÆ’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qÆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Æ’’’’’’’’’’’’’’’’’’’’ĮÆ’’’’’’’’’’’’’’’’’’’’ᯒ$’’’’’’’’’’’’’’’’’’’°’’’’’’’’’’’’’’’’’’’’1°’’’’’’’’’’’’’’’’’’’’Q°’’’’’’’’’’’’’’’’’’’’q°’’’’’’’’’’’’’’’’’’’’‘°’"’’’’’’’’’’’’’’’’’’’Į°’!’’’’’’’’’’’’’’’’’’’ń°’4’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1±’6’’’’’’’’’’’’’’’’’’’q±’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’±±’’’’’’’’’’’’’’’’’’’’ѱ’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ push frame: ’’’’’’’’²’’’’’’’’’’’’’’’’’’’’!²’ ’’’’’’’’’’’’’’’’’’’Q²’’’’’’’’’’’’’’’’’’’’q²’’’’’’’’’’’’’’’’’’’’‘²’’’’’’’’’’’’’’’’’’’’±²’’’’’’’’’’’’’’’’’’’’Ѳ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ pop frame: ’’’’’’’’’ń²’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’A³’&’’’’’’’’’’’’’’’’’’’q³’%’’’’’’’’’’’’’’’’’’’”³’#’’’’’’’’’’’’’’’’’’’ѳ’$’’’’’’’’’’’’’’’’’’’“’$’’’’’’’’’’’’’’’’’’’1“’’’’’’’’’’’’’’’’’’’’Q“’’’’’’’’’’’’’’’’’’’’q“’’’’’’’’’’’’’’’’’’’’‘“’’’’’’’’’’’’’’’’’’’’±“’’’’’’’’’’’’’’’’’’’’Ń“’:’’’’’’’’’’’’’’’’’’’µ’8’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’Qµ’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’µ’$’’’’’’’’’’’’’’’’’’’±µ’"’’’’’’’’’’’’’’’’’’’įµ’@’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’1¶’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’Q¶’’’’’’’’’’’’’’’’’’’’q¶’)’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’”¶’*’’’’’’’’’’’’’’’’’’’Ѷ’’’’’’’’’’’’’’’’’’’’’’ FALSE. ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ next call: ’’’’’’’’’·’!’’’’’’’’’’’’’’’’’’’1·’’’’’’’’’’’’’’’’’’’’Q·’’’’’’’’’’’’’’’’’’’’a·’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’·’’’’’’’’’’’’’’’’’’’’”·’H’’’’’’’’’’’’’’’’’’’ń·’0’’’’’’’’’’’’’’’’’’’1ø’$’’’’’’’’’’’’’’’’’’’aø’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ø’’’’’’’’’’’’’’’’’’’’±ø’’’’’’’’’’’’’’’’’’’’Ńø’’’’’’’’’’’’’’’’’’’’ńø’9’’’’’’’’’’’’’’’’’’’1¹’N’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¹’’’’’’’’’’’’’’’’’’’’”¹’%’’’’’’’’’’’’’’’’’’’ѹ’’’’’’’’’’’’’’’’’’’’ń¹’’’’’’’’’’’’’’’’’’’’ŗ’C’’’’’’’’’’’’’’’’’’’aŗ’#’’’’’’’’’’’’’’’’’’’‘ŗ’A’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’įŗ’’’’’’’’’’’’’’’’’’’’»’’’’’’’’’’’’’’’’’’’’!»’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A»’ ’’’’’’’’’’’’’’’’’’’q»’’’’’’’’’’’’’’’’’’’’‘»’/’’’’’’’’’’’’’’’’’’’Ń»’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¼’’’’’’’’’’’’’’’’’’’’¼’’’’’’’’’’’’’’’’’’’’1¼’*’’’’’’’’’’’’’’’’’’’a¼’1’’’’’’’’’’’’’’’’’’’”¼’)’’’’’’’’’’’’’’’’’’’Ѽ’’’’’’’’’’’’’’’’’’’’’’ ts. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń¼’/’’’’’’’’’’’’’’’’’’’1½’=’’’’’’’’’’’’’’’’’’’q½’’’’’’’’’’’’’’’’’’’’‘½’A’’’’’’’’’’’’’’’’’’’į½’)’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’!¾’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’A¾’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a¾’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’”¾’’’’’’’’’’’’’’’’’’’’Į¾’’’’’’’’’’’’’’’’’’’’į¾’-’’’’’’’’’’’’’’’’’’’æ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ son: ’’’’’’’’’’’’’’’Aæ’J’’’’’’’’’’’’’’’’’’’‘æ’4’’’’’’’’’’’’’’’’’’’Ńæ’A’’’’’’’’’’’’’’’’’’’!Ą’:’’’’’’’’’’’’’’’’’’’’’ } ’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aĄ’’’’’’’’’’’’’’’’’’’’Ą’’’’’’’’’’’’’’’’’’’’‘Ą’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ą’’’’’’’’’’’’’’’’’’’’ŃĄ’’’’’’’’’’’’’’’’’’’’ńĄ’.’’’’’’’’’’’’’’’’’’’!Į’#’’’’’’’’’’’’’’’’’’’QĮ’’’’’’’’’’’’’’’’’’’’qĮ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’‘Į’’’’’’’’’’’’’’’’’’’’±Į’’’’’’’’’’’’’’’’’’’’ŃĮ’’’’’’’’’’’’’’’’’’’’ńĮ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ā’)’’’’’’’’’’’’’’’’’’’QĀ’#’’’’’’’’’’’’’’’’’’’’’ IF ’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’”Ā’’’’’’’’’’’’’’’’’’’’ĮĀ’@’’’’’’’’’’’’’’’’’’’Ć’’’’’’’’’’’’’’’’’’’’’’ THEN ’’’’’’’’’’’’’1Ć’6’’’’’’’’’’’’’’’’’’’qĆ’’’’’’’’’’’’’’’’’’’’‘Ć’’’’’’’’’’’’’’’’’’’’±Ć’)’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įĆ’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ forget son: ’’’’’’’’Ä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ä’’’’’’’’’’’’’’’’’’’’QÄ’$’’’’’’’’’’’’’’’’’’’Ä’)’’’’’’’’’’’’’’’’’’’±Ä’*’’’’’’’’’’’’’’’’’’’įÄ’,’’’’’’’’’’’’’’’’’’’Å’9’’’’’’’’’’’’’’’’’’’QÅ’'’’’’’’’’’’’’’’’’’’’Å’9’’’’’’’’’’’’’’’’’’’ĮÅ’*’’’’’’’’’’’’’’’’’’’ńÅ’’’’’’’’’’’’’’’’’’’’Ę’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ę’#’’’’’’’’’’’’’’’’’’’aĘ’+’’’’’’’’’’’’’’’’’’’‘Ę’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’ apply rule: ’’’’’’’’ŃĘ’ ’’’’’’’’’’’’’’’’’’’Ē’9’’’’’’’’’’’’’’’’’’’AĒ’E’’’’’’’’’’’’’’’’’’’‘Ē’E’’’’’’’’’’’’’’’’’’’įĒ’&’’’’’’’’’’’’’’’’’’’Č’.’’’’’’’’’’’’’’’’’’’AČ’)’’’’’’’’’’’’’’’’’’’qČ’"’’’’’’’’’’’’’’’’’’’”Č’'’’’’’’’’’’’’’’’’’’’ŃČ’"’’’’’’’’’’’’’’’’’’’É’!’’’’’’’’’’’’’’’’’’’1É’’’’’’’’’’’’’’’’’’’’QÉ’?’’’’’’’’’’’’’’’’’’’”É’!’’’’’’’’’’’’’’’’’’’ŃÉ’,’’’’’’’’’’’’’’’’’’’Ź’&’’’’’’’’’’’’’’’’’’’1Ź’9’’’’’’’’’’’’’’’’’’’qŹ’+’’’’’’’’’’’’’’’’’’’”Ź’’’’’’’’’’’’’’’’’’’’ĮŹ’8’’’’’’’’’’’’’’’’’’’Ė’’’’’’’’’’’’’’’’’’’’!Ė’'’’’’’’’’’’’’’’’’’’’QĖ’’’’’’’’’’’’’’’’’’’’qĖ’;’’’’’’’’’’’’’’’’’’’±Ė’,’’’’’’’’’’’’’’’’’’’įĖ’/’’’’’’’’’’’’’’’’’’’!Ģ’2’’’’’’’’’’’’’’’’’’’aĢ’.’’’’’’’’’’’’’’’’’’’‘Ģ’4’’’’’’’’’’’’’’’’’’’ŃĢ’,’’’’’’’’’’’’’’’’’’’Ķ’"’’’’’’’’’’’’’’’’’’’1Ķ’$’’’’’’’’’’’’’’’’’’’aĶ’'’’’’’’’’’’’’’’’’’’’‘Ķ’4’’’’’’’’’’’’’’’’’’’ŃĶ’$’’’’’’’’’’’’’’’’’’’Ī’9’’’’’’’’’’’’’’’’’’’AĪ’"’’’’’’’’’’’’’’’’’’’qĪ’’’’’’’’’’’’’’’’’’’’‘Ī’'’’’’’’’’’’’’’’’’’’’ĮĪ’4’’’’’’’’’’’’’’’’’’’Ļ’8’’’’’’’’’’’’’’’’’’’AĻ’’’’’’’’’’’’’’’’’’’’aĻ’(’’’’’’’’’’’’’’’’’’’‘Ļ’’’’’’’’’’’’’’’’’’’’±Ļ’(’’’’’’’’’’’’’’’’’’’įĻ’,’’’’’’’’’’’’’’’’’’’Š’;’’’’’’’’’’’’’’’’’’’QŠ’"’’’’’’’’’’’’’’’’’’’Š’G’’’’’’’’’’’’’’’’’’’ŃŠ’D’’’’’’’’’’’’’’’’’’’!Ń’’’’’’’’’’’’’’’’’’’’AŃ’’’’’’’’’’’’’’’’’’’’aŃ’(’’’’’’’’’’’’’’’’’’’‘Ń’’’’’’’’’’’’’’’’’’’’±Ń’(’’’’’’’’’’’’’’’’’’’įŃ’&’’’’’’’’’’’’’’’’’’’Ņ’0’’’’’’’’’’’’’’’’’’’QŅ’+’’’’’’’’’’’’’’’’’’’Ņ’.’’’’’’’’’’’’’’’’’’’±Ņ’&’’’’’’’’’’’’’’’’’’’įŅ’&’’’’’’’’’’’’’’’’’’’Ó’.’’’’’’’’’’’’’’’’’’’AÓ’G’’’’’’’’’’’’’’’’’’’‘Ó’C’’’’’’’’’’’’’’’’’’’įÓ’’’’’’’’’’’’’’’’’’’’Ō’/’’’’’’’’’’’’’’’’’’’AŌ’>’’’’’’’’’’’’’’’’’’’Ō’+’’’’’’’’’’’’’’’’’’’±Ō’’’’’’’’’’’’’’’’’’’’ŃŌ’'’’’’’’’’’’’’’’’’’’’Õ’’’’’’’’’’’’’’’’’’’’!Õ’3’’’’’’’’’’’’’’’’’’’aÕ’$’’’’’’’’’’’’’’’’’’’‘Õ’*’’’’’’’’’’’’’’’’’’’ĮÕ’,’’’’’’’’’’’’’’’’’’’ńÕ’8’’’’’’’’’’’’’’’’’’’1Ö’4’’’’’’’’’’’’’’’’’’’qÖ’C’’’’’’’’’’’’’’’’’’’ĮÖ’’’’’’’’’’’’’’’’’’’’įÖ’'’’’’’’’’’’’’’’’’’’’×’1’’’’’’’’’’’’’’’’’’’Q×’'’’’’’’’’’’’’’’’’’’’×’*’’’’’’’’’’’’’’’’’’’±×’/’’’’’’’’’’’’’’’’’’’ń×’,’’’’’’’’’’’’’’’’’’’!Ų’,’’’’’’’’’’’’’’’’’’’QŲ’,’’’’’’’’’’’’’’’’’’’Ų’=’’’’’’’’’’’’’’’’’’’ĮŲ’’’’’’’’’’’’’’’’’’’’įŲ’B’’’’’’’’’’’’’’’’’’’1Ł’’’’’’’’’’’’’’’’’’’’QŁ’'’’’’’’’’’’’’’’’’’’’Ł’1’’’’’’’’’’’’’’’’’’’ĮŁ’'’’’’’’’’’’’’’’’’’’’ńŁ’*’’’’’’’’’’’’’’’’’’’!Ś’/’’’’’’’’’’’’’’’’’’’aŚ’,’’’’’’’’’’’’’’’’’’’‘Ś’,’’’’’’’’’’’’’’’’’’’ĮŚ’,’’’’’’’’’’’’’’’’’’’ńŚ’=’’’’’’’’’’’’’’’’’’’1Ū’’’’’’’’’’’’’’’’’’’’QŪ’B’’’’’’’’’’’’’’’’’’’”Ū’’’’’’’’’’’’’’’’’’’’ĮŪ’'’’’’’’’’’’’’’’’’’’’ńŪ’1’’’’’’’’’’’’’’’’’’’1Ü’'’’’’’’’’’’’’’’’’’’’aÜ’*’’’’’’’’’’’’’’’’’’’‘Ü’(’’’’’’’’’’’’’’’’’’’ĮÜ’/’’’’’’’’’’’’’’’’’’’Ż’-’’’’’’’’’’’’’’’’’’’1Ż’>’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ\’M’’’’’’’’’’’’’’’’’’’B]’N’’’’’’’’’’’’’’’’’’’’]’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²]’&’’’’’’’’’’’’’’’’’’’ā]’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’^’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r^’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’^’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā^’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’_’I’’’’’’’’’’’’’’’’’’’b_’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’_’L’’’’’’’’’’’’’’’’’’’ā_’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"`’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b`’P’’’’’’’’’’’’’’’’’’’Ā`’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Beispiel: ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’"’’’’’’’’’’’’’’’’’’’2a’’’’’’’’’’’’’’’’’’’’’’ -a ’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’ a ’’’’’’’’’’’’ END IF ’’’’’’’’Ra’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ra’;’’’’’’’’’’’’’’’’’’’²a’’’’’’’’’’’’’’’’’’’’Ņa’’’’’’’’’’’’’’’’’’’’ņa’8’’’’’’’’’’’’’’’’’’’2b’!’’’’’’’’’’’’’’’’’’’bb’’’’’’’’’’’’’’’’’’’’’’ summe ’’’’’’’’’‚b’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢b’,’’’’’’’’’’’’’’’’’’’Ņb’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņb’E’’’’’’’’’’’’’’’’’’’Bc’I’’’’’’’’’’’’’’’’’’’’c’T’’’’’’’’’’’’’’’’’’’ņc’N’’’’’’’’’’’’’’’’’’’’’ erhŚhen. ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’dynamo handbuchation.03.08.88’''’’’’’’’’’’’’’’>#block##pageblock##page (2)##setcount (1)##count per page# ’’’#center#DYNAMO-Compiler ’’’’’’N#center#____________________________________________________________ ’’’’’’’’’N#center#____________________________________________________________ ’’’’’’’’’GMD #right#DYNAMO - % ’’’’’’’’#bottom even# N#center#____________________________________________________________ ’’’’’’’’’DYNAMO - % #right#GMD ’’’’’’’’#ib#1. Einleitung#ie# ’’’’’’’’NDiese Handbuch beschreibt die Funktion des EUMEL-DYNAMO-Compilers in der’’’’’’NVersion 3.3+ und seine EinschrŁnkungen oder Önderungen gegenŪber dem’’’’’’’’’’NDYNAMO-Sprachstandard. In keiner Weise kann diese Beschreibung eine EinfŪhŻ’’’>rung in die Programmiersprache DYNAMO ersetzen! ’’’’’’’’’’’’’’^Die beschriebene Compilerversion enthŁlt nun auch ein Modul zur UnterstŪtzung von’’’’’’’’’’’’’NhochauflŚsender Grafik durch die hŁufig in IBM-PC/AT-Kompatiblen eingesetzte’’^CGA-Grafikkarte. Dennoch ist es einfach mŚglich, diesen Grafikmodus auszuschalŻ ’’’’’’’’’’’’’’Nten, und somit die alte, zeichenorientierte Grafik weiter zu verwenden. ’’’’’’NDer DYNAMO-Compiler wurde 1983 von Robert Keil und Torsten FrŚhlich (HelmŻ’’’’Nholtz-Gymnasium, Bonn) im Rahmen des MIKROS-Projektes am Informatik-Kolleg ’’’^der GMD entwickelt. FŪr Spezifikation und Betreuung der Entwicklung war Dr. Diether’’’’’’’’’’’NCraemer verantwortlich, software-technische UnterstŪtzung kam von Prof. John’’NHenize, Dr. Peter Heyderhoff, Rudolf Legde und Dipl.- Math. Lothar Oppor. Die .Grafik wurde von D.Giffeler beigesteuert. ’’’’.#ib#1.1. Referenzliteratur#ie# ’’’’’’’’’’’’’’’ [1] Craemer, Diether ’’’’’’> "Mathematisches Modellieren dynamischer VorgŁnge" ’’’’’> e. Einf. in die Programmiersprache DYNAMO ’’’’’’’’’’’’’. Stuttgart, Teuber, 1985 ’’’’’’’’’’’’’’’ ISBN 3-519-02477-2 ’’’’ [2] Craemer, Diether ’’’’’’N "Fluū und Zustand - Simulation dynamischer VorgŁnge in DYNAMO" ’’’’’’’’. in: LOGIN 5 (1985), Heft 1, S. 20-23 ’’ [3] Pugh, Alexander L. ’’’’. "DYNAMO II User's Manual" ’’’’’’’’’’’’’. Cambridge, London 1973: MIT-Press ’’’’’ ISBN 0-262-66018-0 ’’’’.#ib#1.2. Die Programmiersprache DYNAMO#ie# ’’’NDYNAMO wurde von einer Gruppe um Jay FORRESTER am Massachusetts Institute’’’’’^of Technology (MIT) um 1960 entwickelt. Die Sprache basiert auf der #on ("i")# System’’’’’’’’’.Dynamic#off ("i")# von FORRESTER. ’’’’’’’’’’’’®In DYNAMO (#on ("u")##on ("b")#Dyna#off ("b")##off ("u")#mic #on ("u")##on ("b")#Mo#off ("b")##off ("u")#delling Language) kŚnnen Systeme, in denen VerŁnderunŻ ’’’’’’’’’’’’’’Ngen kontinuierlich geschehen, modelliert und simuliert werden. ’’’’’’’’’’’’’’’NKontinuierliche VerŁnderungen von GrŚūen werden Ūber deren VerŁnderungsrate im>Wesentlichen nach folgender Gleichung berechnet ’’’’’’’’’’’’’’>GrŚūe jetzt = GrŚūe frŪher + DT * VerŁnderungsrate, ’’’’’’’’’’Ndabei ist DT die LŁnge des Zeitintervalls von "frŪher" bis "jetzt". ’’’’’’’’’’NAuūer diesen Gleichungen fŪr GrŚūen braucht man Gleichungen fŪr die VerŁndeŻ’’^rungsraten, fŪr HilfsgrŚūen, zur Initialisierung von GrŚūen, zur Definition von KonstanŻ’’’’’’^ten und Tabellen, zu Angaben von SimulationslŁufen und zur Wiedergabe von ErgebŻ’’’’’’’’’’’’’’.nissen in Zahlentabellen oder Diagrammen. ’’’’^Alle diese Gleichungen kŚnnen einfach in der Form, wie man sie aus dem MathemaŻ’’’’’’’’’’’’’’’^tik-Unterricht der Sekundarstufe kennt, hingeschrieben werden, ohne sich Gedanken’’’’’’’’’’’’’>Ūber den Ablauf des Programms machen zu mŪssen. ’’’’’’’’’’’’’’^DYNAMO ist also eine einfache funktional-applikative, nicht-prozedurale Sprache.#off ("b")# ’’^Das macht ihren Reiz und ihre LeistungsfŁhigkeit aus, die zur Formulierung der beŻ’’’’’’’’’’’’Nkannten Weltmodelle von FORRESTER, MEADOWS ("Die Grenzen des Wachstums"),’’’’’>PESTEL, MESAROVIC u.a. in dieser Sprache fŪhrten. ’’’’’’’’’’’’^Anwendungsgebiete der Sprache sind Śkologische, gesellschaftliche, wirtschaftliche’’’’’’’’’’’’^und technische Systeme, deren dynamisches Verhalten der Modellbildner nachbilden’’’’’’’’’’’’’’und studieren mŚchte. ’’’’’’’’^Im Allgemeinen verfolgt der Modellbildner mit seinem Modell einen Zweck (VerhaltensŻ’’’’’’’’’’NŁnderung des nachgebildeten Systems), so daū auch neben gesicherten Fakten die>Wertvorstellungen des Modellbildners in das Modell eingehen. ’.#ib#1.3 Kurz-EinfŪhrung in die DYNAMO-’’’’’’’’Schreibweise#ie# ’’’’’’’’’’’’’^Die System Dynamic Methode benutzt als Analogie-Bild den Archetyp des Flusses: ’’’’’’’’’’’’’’’N - Wasser flieūt durch das Fluūbett, kann in Seen gestaut und in der GeŻ’’’’N schwindigkeit durch Schleusen und Wehre reguliert werden. ’’’’’’’’’’’’’’’^ - Analog dazu "flieūt" Geld auf dem Ųberweisungsweg, wird in Konten gestaut,’’’’’’’’’’’’’’’N und die LiquiditŁt kann durch ZinssŁtze reguliert werden. ’’’’’’’’’’’’’’’N - Gedanken "flieūen" auf Nervenbahnen, werden im Gehirn gespeichert, und’’’> GedankenstrŚme werden Ūber Synapsen reguliert. ’’’’’’’’’’^ - Autos "flieūen" Ūber Straūen, werden auf ParkplŁtzen gestaut, und der VerŻ’’’’’’’’’’’’’’’. kehrsfluū wird Ūber Ampeln reguliert. ’’’N - Menschen "flieūen" Ūber Wanderwege, halten sich in Wohnorten auf, und dieN BevŚlkerungsdynamik wird durch ein komplexes, rŪckgekoppeltes ZusammenŻ’’N spiel von Ein- und Auswanderungsraten sowie Geburts- und Sterberaten’’’’’ reguliert. ’’’’’’’’’’’’’’^Am letzten Beispiel wird deutlich, daū sich ein soziales PhŁnomen nur im ZusamŻ’’’’’’’’’’’’’’’^menwirken vieler netzartig miteinander verbundener Variablen beschreiben lŁūt (wenn’’’’’’’’’’’NSolange jedoch einigen Variablen ZUSTANDS-CHARAKTER ("Wasserstand") und’’’’’’’Nanderen VERÖNDERUNGS-CHARAKTER ("Fluūgeschwindigkeit") zugeordnet’’’’’’’’’’’’’^werden kann, kŚnnen die GrŚūen fŪr Berechnungen folgender Art verwendet werden: ’’’’’’’’’’’’’’> Wasserstand jetzt = Wasserstand frŪher + vergangene Zeit * ’> (Zufluūr’’’’’’’’qŻ’’’’’’’’’’’’’’’’’’’’‘Ż’B’’’’’’’’’’’’’’’’’’’įŻ’’’’’’’’’’’’’’’’’’’’Ž’'’’’’’’’’’’’’’’’’’’’1Ž’4’’’’’’’’’’’’’’’’’’’qŽ’'’’’’’’’’’’’’’’’’’’’”Ž’9’’’’’’’’’’’’’’’’’’’įŽ’’’’’’’’’’’’’’’’’’’’ß’’’’’’’’’’’’’’’’’’’’!ß’'’’’’’’’’’’’’’’’’’’’Qß’!’’’’’’’’’’’’’’’’’’’ß’@’’’’’’’’’’’’’’’’’’’Ńß’C’’’’’’’’’’’’’’’’’’’!ą’@’’’’’’’’’’’’’’’’’’’qą’2’’’’’’’’’’’’’’’’’’’±ą’?’’’’’’’’’’’’’’’’’’’į’ ’’’’’’’’’’’’’’’’’’’1į’'’’’’’’’’’’’’’’’’’’’aį’&’’’’’’’’’’’’’’’’’’’‘į’D’’’’’’’’’’’’’’’’’’’įį’)’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’1ā’/’’’’’’’’’’’’’’’’’’’qā’"’’’’’’’’’’’’’’’’’’’”ā’,’’’’’’’’’’’’’’’’’’’Ńā’’’’’’’’’’’’’’’’’’’’ć’!’’’’’’’’’’’’’’’’’’’1ć’0’’’’’’’’’’’’’’’’’’’qć’3’’’’’’’’’’’’’’’’’’’±ć’0’’’’’’’’’’’’’’’’’’’ńć’!’’’’’’’’’’’’’’’’’’’!ä’4’’’’’’’’’’’’’’’’’’’aä’’’’’’’’’’’’’’’’’’’’ä’'’’’’’’’’’’’’’’’’’’’±ä’!’’’’’’’’’’’’’’’’’’’įä’*’’’’’’’’’’’’’’’’’’’å’3’’’’’’’’’’’’’’’’’’’Qå’.’’’’’’’’’’’’’’’’’’’å’’’’’’’’’’’’’’’’’’’’”å’:’’’’’’’’’’’’’’’’’’’įå’6’’’’’’’’’’’’’’’’’’’!ę’)’’’’’’’’’’’’’’’’’’’Qę’’’’’’’’’’’’’’’’’’’’qę’/’’’’’’’’’’’’’’’’’’’±ę’'’’’’’’’’’’’’’’’’’’’įę’!’’’’’’’’’’’’’’’’’’’ē’'’’’’’’’’’’’’’’’’’’’Aē’9’’’’’’’’’’’’’’’’’’’ē’’’’’’’’’’’’’’’’’’’’”ē’'’’’’’’’’’’’’’’’’’’’Ńē’)’’’’’’’’’’’’’’’’’’’č’’’’’’’’’’’’’’’’’’’’!č’!’’’’’’’’’’’’’’’’’’’Qč’9’’’’’’’’’’’’’’’’’’’‘č’%’’’’’’’’’’’’’’’’’’’Įč’8’’’’’’’’’’’’’’’’’’’é’8’’’’’’’’’’’’’’’’’’’Aé’0’’’’’’’’’’’’’’’’’’’é’A’’’’’’’’’’’’’’’’’’’Ńé’@’’’’’’’’’’’’’’’’’’’!ź’>’’’’’’’’’’’’’’’’’’’aź’D’’’’’’’’’’’’’’’’’’’±ź’8’’’’’’’’’’’’’’’’’’’ńź’*’’’’’’’’’’’’’’’’’’’!ė’#’’’’’’’’’’’’’’’’’’’Qė’>’’’’’’’’’’’’’’’’’’’‘ė’9’’’’’’’’’’’’’’’’’’’Ńė’6’’’’’’’’’’’’’’’’’’’ģ’<’’’’’’’’’’’’’’’’’’’Qģ’4’’’’’’’’’’’’’’’’’’’‘ģ’F’’’’’’’’’’’’’’’’’’’įģ’"’’’’’’’’’’’’’’’’’’’ķ’C’’’’’’’’’’’’’’’’’’’aķ’’’’’’’’’’’’’’’’’’’’ķ’’’’’’’’’’’’’’’’’’’’”ķ’'’’’’’’’’’’’’’’’’’’’Ńķ’’’’’’’’’’’’’’’’’’’’ńķ’$’’’’’’’’’’’’’’’’’’’!ī’E’’’’’’’’’’’’’’’’’’’qī’%’’’’’’’’’’’’’’’’’’’”ī’8’’’’’’’’’’’’’’’’’’’įī’)’’’’’’’’’’’’’’’’’’’ļ’*’’’’’’’’’’’’’’’’’’’Aļ’4’’’’’’’’’’’’’’’’’’’ļ’7’’’’’’’’’’’’’’’’’’’Įļ’8’’’’’’’’’’’’’’’’’’’š’>’’’’’’’’’’’’’’’’’’’Aš’’’’’’’’’’’’’’’’’’’’aš’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’”š’3’’’’’’’’’’’’’’’’’’’įš’'’’’’’’’’’’’’’’’’’’’ń’!’’’’’’’’’’’’’’’’’’’Ań’&’’’’’’’’’’’’’’’’’’’qń’(’’’’’’’’’’’’’’’’’’’”ń’&’’’’’’’’’’’’’’’’’’’Ńń’*’’’’’’’’’’’’’’’’’’’ņ’F’’’’’’’’’’’’’’’’’’’Qņ’,’’’’’’’’’’’’’’’’’’’ņ’,’’’’’’’’’’’’’’’’’’’±ņ’@’’’’’’’’’’’’’’’’’’’ó’*’’’’’’’’’’’’’’’’’’’1ó’F’’’’’’’’’’’’’’’’’’’ó’’’’’’’’’’’’’’’’’’’’”ó’%’’’’’’’’’’’’’’’’’’’Ńó’+’’’’’’’’’’’’’’’’’’’ō’L’’’’’’’’’’’’’’’’’’’Qō’'’’’’’’’’’’’’’’’’’’’ō’$’’’’’’’’’’’’’’’’’’’±ō’@’’’’’’’’’’’’’’’’’’’õ’"’’’’’’’’’’’’’’’’’’’1õ’:’’’’’’’’’’’’’’’’’’’qõ’(’’’’’’’’’’’’’’’’’’’”õ’*’’’’’’’’’’’’’’’’’’’Ńõ’(’’’’’’’’’’’’’’’’’’’ö’8’’’’’’’’’’’’’’’’’’’Aö’ ’’’’’’’’’’’’’’’’’’’qö’#’’’’’’’’’’’’’’’’’’’”ö’6’’’’’’’’’’’’’’’’’’’įö’;’’’’’’’’’’’’’’’’’’’!÷’;’’’’’’’’’’’’’’’’’’’a÷’H’’’’’’’’’’’’’’’’’’’±÷’’’’’’’’’’’’’’’’’’’’Ń÷’4’’’’’’’’’’’’’’’’’’’ų’+’’’’’’’’’’’’’’’’’’’Aų’)’’’’’’’’’’’’’’’’’’’qų’I’’’’’’’’’’’’’’’’’’’Įų’F’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’1ł’’’’’’’’’’’’’’’’’’’’Qł’'’’’’’’’’’’’’’’’’’’’ł’ ’’’’’’’’’’’’’’’’’’’±ł’=’’’’’’’’’’’’’’’’’’’ńł’@’’’’’’’’’’’’’’’’’’’Aś’=’’’’’’’’’’’’’’’’’’’ś’’’’’’’’’’’’’’’’’’’’”ś’'’’’’’’’’’’’’’’’’’’’Ńś’=’’’’’’’’’’’’’’’’’’’ū’>’’’’’’’’’’’’’’’’’’’Qū’B’’’’’’’’’’’’’’’’’’’”ū’’’’’’’’’’’’’’’’’’’’Įū’C’’’’’’’’’’’’’’’’’’’ü’6’’’’’’’’’’’’’’’’’’’Qü’A’’’’’’’’’’’’’’’’’’’”ü’3’’’’’’’’’’’’’’’’’’’įü’!’’’’’’’’’’’’’’’’’’’ż’E’’’’’’’’’’’’’’’’’’’aż’’’’’’’’’’’’’’’’’’’’ż’,’’’’’’’’’’’’’’’’’’’±ż’M’’’’’’’’’’’’’’’’’’’ž’@’’’’’’’’’’’’’’’’’’’Qž’C’’’’’’’’’’’’’’’’’’’”ž’?’’’’’’’’’’’’’’’’’’’ńž’H’’’’’’’’’’’’’’’’’’’A’’K’’’’’’’’’’’’’’’’’’’‘’’H’’’’’’’’’’’’’’’’’’’į’’4’’’’’’’’’’’’’’’’’’’"’,’’’’’’’’’’’’’’’’’’’R’4’’’’’’’’’’’’’’’’’’’’’>’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’#’’’’’’’’’’’’’’’’’’’b’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’!’’’’’’’’’’’’’’’’’’’ā’ ’’’’’’’’’’’’’’’’’’’’=’’’’’’’’’’’’’’’’’’’R’@’’’’’’’’’’’’’’’’’’’¢’=’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’2’'’’’’’’’’’’’’’’’’’’’b’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’:’’’’’’’’’’’’’’’’’’’ņ’,’’’’’’’’’’’’’’’’’’’"’L’’’’’’’’’’’’’’’’’’’r’0’’’’’’’’’’’’’’’’’’’²’0’’’’’’’’’’’’’’’’’’’ņ’9’’’’’’’’’’’’’’’’’’’2’2’’’’’’’’’’’’’’’’’’’r’C’’’’’’’’’’’’’’’’’’’Ā’/’’’’’’’’’’’’’’’’’’’’0’’’’’’’’’’’’’’’’’’’B’1’’’’’’’’’’’’’’’’’’’‚’*’’’’’’’’’’’’’’’’’’’²’0’’’’’’’’’’’’’’’’’’’ņ’C’’’’’’’’’’’’’’’’’’’B’.’’’’’’’’’’’’’’’’’’’r’>’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’*’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’2’-’’’’’’’’’’’’’’’’’’’b’/’’’’’’’’’’’’’’’’’’’¢’4’’’’’’’’’’’’’’’’’’’ā’)’’’’’’’’’’’’’’’’’’’ ’8’’’’’’’’’’’’’’’’’’’R ’1’’’’’’’’’’’’’’’’’’’’ ’B’’’’’’’’’’’’’’’’’’’ā ’<’’’’’’’’’’’’’’’’’’’" ’@’’’’’’’’’’’’’’’’’’’r ’.’’’’’’’’’’’’’’’’’’’¢ ’’’’’’’’’’’’’’’’’’’’Ā ’>’’’’’’’’’’’’’’’’’’’ ’*’’’’’’’’’’’’’’’’’’’2 ’&’’’’’’’’’’’’’’’’’’’b ’2’’’’’’’’’’’’’’’’’’’¢ ’7’’’’’’’’’’’’’’’’’’’ā ’5’’’’’’’’’’’’’’’’’’’" ’"’’’’’’’’’’’’’’’’’’’R ’1’’’’’’’’’’’’’’’’’’’’ ’7’’’’’’’’’’’’’’’’’’’Ņ ’7’’’’’’’’’’’’’’’’’’’ ’H’’’’’’’’’’’’’’’’’’’b ’4’’’’’’’’’’’’’’’’’’’¢ ’C’’’’’’’’’’’’’’’’’’’ņ ’ ’’’’’’’’’’’’’’’’’’’"’>’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’B’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’=’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’N’’’’’’’’’’’’’’’’’’’Ā’A’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’B’(’’’’’’’’’’’’’’’’’’’r’%’’’’’’’’’’’’’’’’’’’¢’$’’’’’’’’’’’’’’’’’’’Ņ’,’’’’’’’’’’’’’’’’’’’’$’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’9’’’’’’’’’’’’’’’’’’’’’<’’’’’’’’’’’’’’’’’’’Ņ’9’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’B’1’’’’’’’’’’’’’’’’’’’‚’*’’’’’’’’’’’’’’’’’’’²’*’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’;’’’’’’’’’’’’’’’’’’’B’:’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’$’’’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’B’(’’’’’’’’’’’’’’’’’’’r’%’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’1’’’’’’’’’’’’’’’’’’’’4’’’’’’’’’’’’’’’’’’’R’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’)’’’’’’’’’’’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’2’)’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ find clause: ’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’F’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’Ā’%’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’$’’’’’’’’’’’’’’’’’’’Ā’'’’’’’’’’’’’’’’’’’’’ņ’$’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’1’’’’’’’’’’’’’’’’’’’¢’)’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’’ command. ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’(’’’’’’’’’’’’’’’’’’’2’8’’’’’’’’’’’’’’’’’’’r’;’’’’’’’’’’’’’’’’’’’²’G’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’2’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’’ line. ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’ate - Abfluūrate) ’’’’’’’’’’’’’’> BevŚlkerung jetzt = BevŚlkerung frŪher + vergangene Zeit * ’> (Geburtsrate - Sterberate) ’’’’’’’’’’’’’NDiese Schreibweise kann praktisch so in ein Computerprogramm Ūbernommen werŻ’’^den. Mit geringfŪgigen Önderungen handelt es sich bei diesen Gleichungen schon um’’’’’’’’’’’’’>gŪltige Zeilen in der Programmiersprache DYNAMO. ’’’’’’’’’’’’’^In DYNAMO wird er Zeitpunkt "jetzt" durch das AnhŁngsel .K, der Zeitpunkt "frŪher"’’’’’’’’’’’’^durch das AnhŁngsel .J, die Zeitspanne von jetzt bis spŁter durch das AnhŁngsel .KL,’’’’’’’’’’^die Zeitspanne von frŪher bis jetzt durch das AnhŁnsel .JK und die vergangene Zeit’’’’’’’’’’’’^mit DT (wie "Delta Tempus": Zeitdifferenz) bezeichnet. Die Variablen mit Zustands-’’’’’’’’’’’’NCharakter heiūen LEVELS (Niveaus) und die VerŁnderungs-Charakter heiūen RATES’^(VerŁnderungsraten, Geschwindigkeiten). Die entsprechenden Gleichungen werden mit’’’’’’’’’’’’’>L bzw. R gekennzeichnet. Es gib weitere Kennzeichnungen: ’’’’’> C fŪr Konstantendefinition (constant) ’’’’’’’’’’> T fŪr Tabellendefintion (table) ’’’’’’’’’’’’’> A fŪr HilfsgrŚūen (auxiliaries) ’’’’’’’> N fŪr Anfangswerte (initial) ’’’’’’’’’’’> X fŪr Folgezeile (extension) ’’’’’’’’’. PRINT fŪr Ausgabe von Zahlen ’’’’’’’’’’’’’’’. PLOT fŪr Ausgabe von Diagrammen ’’’’’’’’’’’’NEin einfaches BevŚlkerungsmodell kŚnnte z.B. so geschriben werden: ’’’’’’’’’’’> L BEV×LKERUNG.K=BEV×LKERUNG.J+DT*(GEBURTENRATE.JK ’’’’’’’’’’. X -STERBERATE.JK) ’’’’’’’’’’’’ R STERBERATE.KL=5 ’’’’’’’’’’ R GEBURTENRATE.KL=20 ’’’’’’’ N BEV×LKERUNG=1000 ’’’’’’’’’> C DT=1 (jedes Jahr wird neu berechnet) > C LENGTH=60 (60 Jahre werden simuliert) ’’’’ PRINT BEV×LKERUNG ’’’’’’’’’’NFŪr eine tiefere EinfŪhrung in DYNAMO sollte man die Referenzliteratur zu Rate.#ib#1.4 Eine erste, kleine Sitzung mit dem’’’’DYNAMO-System#ie# ’’’’’’’’’’’’NWir gehen davon aus, daū das DYNAMO-System in ihrer Task generiert worden ist’N 1. Tippen Sie das obrige Programm mittels des EUMEL-Editors ab. ’’’’’’’’’’’’N 2. Verlassen Sie den Editor mit und starten Sie den DYNAMO-’’’’’’’’> Compiler durch die Eingabe des Befehls "dynamo". ’’’’’’’’N 3. Nach erfolgreichem Ųbersetzen sollte Ihnen nun das DYNAMO-Runtime-’’’’’’’^ System zur VerfŪgung stehen. Durch den Befehl 'run' wird das Programm ausŻ’’’’’’’’’’’’’’’^ gefŪhrt und Sie erhalten eine Zahlenkolonne, die die Entwicklung der BevŚlŻ’’’’’’’’’’’’’’^ kerung in den zu untersuchenden 60 Jahren angibt. Falls Ihnen beim Abtippen’’’’’’’’’’’’’’N des Programms Fehler unterlaufen sein sollten, so kann das Programm nichtN fehlerfrei Ūbersetzt werden. Fehlermeldunggen zur Compile-Zeit des’’’’’’’N DYNAMO-Compilers werden im Paralleleditor angezeigt; das Programm kann’’’N im oberen der beiden Editorfenster (in diesem befinden Sie sich auch nach^ Fehlern) korrigiert werden. Danach kŚnnen Sie erneut wie nach Punkt 2 verŻ’’’’’’’’’’’’’’’.#ib#2. Generierung des DYNAMO-Compilers#ie# ’’NDer DYNAMO-Compiler, seine Funktionen und die Beispielprogramme werden auf’’’’>zwei Archiv-Disketten a#b#' 360 KB ausgeliefert. ’’’’’’’’’’’’’NZum Generieren des DYNAMO-Systems legen Sie bitte die erste Diskette in das’’’NDikettenlaufwerk Ihres Rechners und durch folgende Kommandozeile lesen Sie den.Generator vom Archiv und starten ihn: ’’’’’’’’N archive ("dynamo"); fetch ("dyn.inserter", archive); run ’’’’’’’’’’’’’’^Danach holt der Generator alle benŚtigten Dateien vom eingelegten Archiv bzw. von’’’’’’’’’’’’’^dem zweiten Archiv (nachdem er Sie zum Wechseln der Diskette aufgefordert hat).’’’’’’’’’’’’’’’NAnschlieūend wird der DYNAMO-Compiler insertiert. Am Ende der Generierung’’’’’nwerden Sie gefragt werden, ob Sie den Compiler mit Grafik#u##count ("Grafik")##e# oder ohne benutzen’’’’’’’’’’^wollen. Nach der Meldung "dynamo system generiert" kŚnnen Sie den Compiler#foot#’’’’’’’’’’’’’’^#u##value ("Grafik")##e# Es kann z.Zt. nur eine CGA-Grafikkarte betrieben werden ’’’’’’’’’’’’’.#ib#3. Der EUMEL-DYNAMO-Compiler#ie# ’’’’’’’’’NDer im EUMEL-System implementierte DYNAMO-Compiler ist ein 2-Pass-’’’’’’’’’’’’NCompiler, der die DYNAMO-Programme zunŁchst in ELAN Ūbersetzt. Der Vorteil’’’’^dieser Methode besteht darin, daū es mŚglich ist, Ūbersetzte Programme unabhŁngig’’’’’’’’’’’’’>vom DYNAMO-Compiler zur AusfŪhrung bringen zu kŚnnen. ’’’’’’’’NDie Notation der im folgenden aufgefŪhrten ELAN-Prozeduren des Compilers entŻ’Nspricht der in den EUMEL-HandbŪchern Ūblichen Prozedurkopf-Schreibweise. ’’’’’Als Beispiel: . dynamo ("dyn.grasshasenfuchs") ’’’’’’’’’’’’’Nein Beispiel fŪr den Aufruf der Prozedur mit der Prozedurkopf-Schreibweise ’’’. PROC dynamo (TEXT CONST filename) ’’’’’’’’’’>auf der Kommando-Ebene des Betriebssystems EUMEL. ’’’’’’’’’’’’^Der Prozedur 'dynamo' wird beim Aufruf der Dateiname (TEXT) 'filename' Ūbergeben’’’’’’’’’’’’’’Nund dadurch der Compiler auf die Datei mit dem Namen 'filename' angewendet. ’’.#ib#3.1. Benutzung des DYNAMO-Compiler#ie# ’’’NUm ein DYNAMO-Programm zu Ųbersetzen, gibt es grundsŁtzlich zwei MŚglichkeiŻ’’Nten. Erst einmal kann man ein DYNAMO-Programm in ein ELAN-Programm umŻ’’’’’’’’Nwandeln, jedoch ohne es dabei zur AusfŪhrung zu bringen. Dieses ELAN-Programm’^kann man nun unabhŁngig vom eingentlichen Compiler starten. Die zweite, wohl Śfter’’’’’’’’’’’’Nangewendete Methode ist, ein DYNAMO-Programm in ein ELAN-Programm zu’’’’’’’’’’Ncompilieren, wobei es danach direkt ausgefŪhrt wird. Ob danach ein ELAN-’’’’’’NProgramm zur VerfŪgung stehen soll, kann der Benutzer selbst entscheiden. ’’’’N Zweck: Aufruf des DYNAMO-Compilers mit 'quelldatei' = 'last param', d.h. dasN zu Ūbersetzende Programm steht in der zuletzt bearbeiteten Datei. ’’’.PROC dynamo (TEXT CONST quelldatei) ’’’’’’’’’’N Zweck: Ruft den DYNAMO-Compiler fŪr die Datei 'quelldatei' auf. Anmerkung:’’^ Gleichbedeutend mit 'dynamoß(quelltext, quelltextß+ß".elan", TRUE)', s.’’’’’’’’’’’’’’ nŁchste Prozedur. ’’’. dynamo ("dyn.grashasenfuchs") ’’’’’N Der DYNAMO-Compiler wird auf die Datei "dyn.grashasenfuchs" angeŻ’’’’ wendet. ’’’’’’’’’’’’’>PROC dynamo (TEXT CONST quelldatei, zieldatei, ’’’’’’’’’’’’’’’. BOOL CONST pass2 ausfuehren) ’’’’N Zweck: Diese Prozedur startet den DYNAMO-Compiler. 'quelldatei' gibt den’’’’N Namen der Datei an, in welcher der DYNAMO-Quelltext enthalten ist,’’’N 'zieldatei' ist der Name der Datei, die das erzeugte ELAN-Programm’’’^ beinhalten soll. Wenn 'pass2 ausfuehren' = TRUE, dann wird dieses auch’’’’’’’’’’’’’’’N durch den ELAN-Compiler weiterverarbeitet (das Programm wird zur’’’’’. AusfŪhrung gebracht). ’’’’’’’’’’’’’’’. dynamo ("dyn.grashasenfuchs", ’’’’’> "grashasenfuchs.elanprogramm", FALSE) ’’’’’^ Im obigen Beispiel wird der in der Datei "dyn.grashasenfuchs" enthaltene’’’’’’’’’’’’’N DYNAMO-Quelltext in die Datei "grashasenfuchs.elanprogramm" als’’’’’’N ELAN-Programm geschrieben. Das ELAN-Programm wird nicht ausgeŻ’’’’’’’ fŪhrt. ’’’’’’’’’’’’’’.PROC erase (BOOL CONST erase option) ’’’’’’’’’N Zweck: Wenn 'erase option' = TRUE, so werden die erzeugten ELAN-Programme’’’N nach Beendigung der AusfŪhrung gelŚscht, bei 'erase option' = FALSE’’N bleiben sie erhalten (Voreinstellung: 'erase option' = FALSE). ’’’’’’.PROC error listing (TEXT CONST fehlerdatei) ’’^ Zweck: Falls’’’’’’’’’*’’’’’’’’’’’’’’’’’’’2’@’’’’’’’’’’’’’’’’’’’‚’ ’’’’’’’’’’’’’’’’’’’²’/’’’’’’’’’’’’’’’’’’’ņ’:’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’r’0’’’’’’’’’’’’’’’’’’’²’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’L’’’’’’’’’’’’’’’’’’’B’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’ THEN TRUE ’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2 ’#’’’’’’’’’’’’’’’’’’’b ’$’’’’’’’’’’’’’’’’’’’’ ’2’’’’’’’’’’’’’’’’’’’Ņ ’ ’’’’’’’’’’’’’’’’’’’!’ ’’’’’’’’’’’’’’’’’’’2!’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’R!’’’’’’’’’’’’’’’’’’’’r!’#’’’’’’’’’’’’’’’’’’’¢!’$’’’’’’’’’’’’’’’’’’’Ņ!’2’’’’’’’’’’’’’’’’’’’"’ ’’’’’’’’’’’’’’’’’’’B"’ ’’’’’’’’’’’’’’’’’’’r"’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’²"’’’’’’’’’’’’’’’’’’’’Ņ"’"’’’’’’’’’’’’’’’’’’’#’.’’’’’’’’’’’’’’’’’’’2#’1’’’’’’’’’’’’’’’’’’’r#’/’’’’’’’’’’’’’’’’’’’²#’2’’’’’’’’’’’’’’’’’’’ņ#’/’’’’’’’’’’’’’’’’’’’2$’’’’’’’’’’’’’’’’’’’’R$’/’’’’’’’’’’’’’’’’’’’’$’,’’’’’’’’’’’’’’’’’’’Ā$’)’’’’’’’’’’’’’’’’’’’ņ$’’’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’’2%’.’’’’’’’’’’’’’’’’’’’b%’1’’’’’’’’’’’’’’’’’’’¢%’/’’’’’’’’’’’’’’’’’’’ā%’2’’’’’’’’’’’’’’’’’’’"&’/’’’’’’’’’’’’’’’’’’’b&’’’’’’’’’’’’’’’’’’’’‚&’/’’’’’’’’’’’’’’’’’’’Ā&’2’’’’’’’’’’’’’’’’’’’'’/’’’’’’’’’’’’’’’’’’’B'’’’’’’’’’’’’’’’’’’’’b'’’’’’’’’’’’’’’’’’’’’‚'’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’’²'’F’’’’’’’’’’’’’’’’’’’(’!’’’’’’’’’’’’’’’’’’’2(’1’’’’’’’’’’’’’’’’’’’r(’’’’’’’’’’’’’’’’’’’’’(’I’’’’’’’’’’’’’’’’’’’ā(’’’’’’’’’’’’’’’’’’’’)’I’’’’’’’’’’’’’’’’’’’R)’’’’’’’’’’’’’’’’’’’’r)’’’’’’’’’’’’’’’’’’’’¢)’’’’’’’’’’’’’’’’’’’’Ā)’%’’’’’’’’’’’’’’’’’’’ņ)’#’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’’ TRUE. ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"*’’’’’’’’’’’’’’’’’’’’B*’’’’’’’’’’’’’’’’’’’’b*’’’’’’’’’’’’’’’’’’’’‚*’F’’’’’’’’’’’’’’’’’’’Ņ*’I’’’’’’’’’’’’’’’’’’’"+’F’’’’’’’’’’’’’’’’’’’r+’8’’’’’’’’’’’’’’’’’’’²+’7’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’ņ+’>’’’’’’’’’’’’’’’’’’’2,’A’’’’’’’’’’’’’’’’’’’‚,’>’’’’’’’’’’’’’’’’’’’Ā,’’’’’’’’’’’’’’’’’’’’ā,’’’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’’"-’$’’’’’’’’’’’’’’’’’’’R-’’’’’’’’’’’’’’’’’’’’r-’,’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’¢-’’’’’’’’’’’’’’’’’’’’Ā-’’’’’’’’’’’’’’’’’’’’’’ TRUE ’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā-’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’".’’’’’’’’’’’’’’’’’’’’B.’>’’’’’’’’’’’’’’’’’’’‚.’A’’’’’’’’’’’’’’’’’’’Ņ.’>’’’’’’’’’’’’’’’’’’’/’5’’’’’’’’’’’’’’’’’’’R/’7’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’/’>’’’’’’’’’’’’’’’’’’’Ņ/’A’’’’’’’’’’’’’’’’’’’"0’>’’’’’’’’’’’’’’’’’’’b0’’’’’’’’’’’’’’’’’’’’‚0’’’’’’’’’’’’’’’’’’’’¢0’’’’’’’’’’’’’’’’’’’’Ā0’$’’’’’’’’’’’’’’’’’’’ņ0’’’’’’’’’’’’’’’’’’’’1’,’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’B1’’’’’’’’’’’’’’’’’’’’b1’’’’’’’’’’’’’’’’’’’’’’ TRUE ’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’‚1’’’’’’’’’’’’’’’’’’’’¢1’H’’’’’’’’’’’’’’’’’’’ņ1’’’’’’’’’’’’’’’’’’’’2’,’’’’’’’’’’’’’’’’’’’B2’$’’’’’’’’’’’’’’’’’’’r2’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’²2’’’’’’’’’’’’’’’’’’’’Ņ2’,’’’’’’’’’’’’’’’’’’’3’$’’’’’’’’’’’’’’’’’’’23’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R3’’’’’’’’’’’’’’’’’’’’b3’’’’’’’’’’’’’’’’’’’’‚3’ ’’’’’’’’’’’’’’’’’’’²3’B’’’’’’’’’’’’’’’’’’’4’F’’’’’’’’’’’’’’’’’’’R4’C’’’’’’’’’’’’’’’’’’’¢4’’’’’’’’’’’’’’’’’’’’Ā4’’’’’’’’’’’’’’’’’’’’ā4’$’’’’’’’’’’’’’’’’’’’5’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’25’’’’’’’’’’’’’’’’’’’’B5’’’’’’’’’’’’’’’’’’’’b5’ ’’’’’’’’’’’’’’’’’’’’5’C’’’’’’’’’’’’’’’’’’’ā5’@’’’’’’’’’’’’’’’’’’’26’=’’’’’’’’’’’’’’’’’’’r6’’’’’’’’’’’’’’’’’’’’’6’’’’’’’’’’’’’’’’’’’’²6’$’’’’’’’’’’’’’’’’’’’ā6’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’7’’’’’’’’’’’’’’’’’’’’"7’’’’’’’’’’’’’’’’’’’’27’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b7’’’’’’’’’’’’’’’’’’’’‚7’’’’’’’’’’’’’’’’’’’’’7’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā7’’’’’’’’’’’’’’’’’’’’Ņ7’’’’’’’’’’’’’’’’’’’’ā7’G’’’’’’’’’’’’’’’’’’’28’J’’’’’’’’’’’’’’’’’’’‚8’G’’’’’’’’’’’’’’’’’’’Ņ8’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ8’’’’’’’’’’’’’’’’’’’’9’’’’’’’’’’’’’’’’’’’’9’G’’’’’’’’’’’’’’’’’’’b9’J’’’’’’’’’’’’’’’’’’’²9’G’’’’’’’’’’’’’’’’’’’:’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’":’’’’’’’’’’’’’’’’’’’’B:’’’’’’’’’’’’’’’’’’’’b:’>’’’’’’’’’’’’’’’’’’’¢:’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā:’+’’’’’’’’’’’’’’’’’’’ņ:’?’’’’’’’’’’’’’’’’’’’B;’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’;’"’’’’’’’’’’’’’’’’’’’Ā;’"’’’’’’’’’’’’’’’’’’’ņ;’’’’’’’’’’’’’’’’’’’’<’.’’’’’’’’’’’’’’’’’’’B<’ ’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’r<’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚<’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²<’’’’’’’’’’’’’’’’’’’’Ņ<’’’’’’’’’’’’’’’’’’’’=’’’’’’’’’’’’’’’’’’’’2=’’’’’’’’’’’’’’’’’’’’R=’4’’’’’’’’’’’’’’’’’’’’=’7’’’’’’’’’’’’’’’’’’’Ņ=’4’’’’’’’’’’’’’’’’’’’>’4’’’’’’’’’’’’’’’’’’’R>’7’’’’’’’’’’’’’’’’’’’’>’4’’’’’’’’’’’’’’’’’’’Ņ>’!’’’’’’’’’’’’’’’’’’’?’ ’’’’’’’’’’’’’’’’’’’2?’!’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’b?’’’’’’’’’’’’’’’’’’’’’’ ENDOP =; ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚?’5’’’’’’’’’’’’’’’’’’’Ā?’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’ā?’0’’’’’’’’’’’’’’’’’’’"@’6’’’’’’’’’’’’’’’’’’’b@’’’’’’’’’’’’’’’’’’’’‚@’&’’’’’’’’’’’’’’’’’’’²@’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ@’ ’’’’’’’’’’’’’’’’’’’A’:’’’’’’’’’’’’’’’’’’’BA’’’’’’’’’’’’’’’’’’’’bA’(’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’²A’3’’’’’’’’’’’’’’’’’’’ņA’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’2B’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ forget n: ’’’’’’’’’’RB’’’’’’’’’’’’’’’’’’’’rB’’’’’’’’’’’’’’’’’’’’’B’#’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’ĀB’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņB’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"C’’’’’’’’’’’’’’’’’’’’BC’E’’’’’’’’’’’’’’’’’’’’C’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢C’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀC’%’’’’’’’’’’’’’’’’’’’ņC’=’’’’’’’’’’’’’’’’’’’2D’’’’’’’’’’’’’’’’’’’’RD’’’’’’’’’’’’’’’’’’’’‚D’E’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’ŅD’’’’’’’’’’’’’’’’’’’’ņD’’’’’’’’’’’’’’’’’’’’E’’’’’’’’’’’’’’’’’’’’2E’’’’’’’’’’’’’’’’’’’’RE’-’’’’’’’’’’’’’’’’’’’‚E’$’’’’’’’’’’’’’’’’’’’²E’’’’’’’’’’’’’’’’’’’’ŅE’’’’’’’’’’’’’’’’’’’’ņE’’’’’’’’’’’’’’’’’’’’F’’’’’’’’’’’’’’’’’’’’2F’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’RF’’’’’’’’’’’’’’’’’’’’rF’’’’’’’’’’’’’’’’’’’’’F’’’’’’’’’’’’’’’’’’’’²F’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’ŅF’’’’’’’’’’’’’’’’’’’’ņF’’’’’’’’’’’’’’’’’’’’G’’’’’’’’’’’’’’’’’’’’2G’)’’’’’’’’’’’’’’’’’’’bG’’’’’’’’’’’’’’’’’’’’‚G’#’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’²G’ ’’’’’’’’’’’’’’’’’’’’’ line . ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āG’’’’’’’’’’’’’’’’’’’’ņG’’’’’’’’’’’’’’’’’’’’H’’’’’’’’’’’’’’’’’’’’2H’’’’’’’’’’’’’’’’’’’’RH’’’’’’’’’’’’’’’’’’’’rH’:’’’’’’’’’’’’’’’’’’’²H’4’’’’’’’’’’’’’’’’’’’ņH’#’’’’’’’’’’’’’’’’’’’"I’#’’’’’’’’’’’’’’’’’’’RI’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’rI’ ’’’’’’’’’’’’’’’’’’’¢I’’’’’’’’’’’’’’’’’’’’ĀI’"’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’ņI’’’’’’’’’’’’’’’’’’’’"J’’’’’’’’’’’’’’’’’’’’BJ’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’bJ’’’’’’’’’’’’’’’’’’’’’J’’’’’’’’’’’’’’’’’’’’²J’’’’’’’’’’’’’’’’’’’’ŅJ’’’’’’’’’’’’’’’’’’’’ņJ’’’’’’’’’’’’’’’’’’’’K’6’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’ gewŪnscht ist, die Fehlermeldungen, die ggf. beim Ųbersetzen einŻ’’’’’’’’’’’’’’^ treten, auch in eine Datei zu schreiben, so kŚnnen Sie hier unter 'fehlerŻ’’’’’’’’’’’^ datei' einen Dateinamen angeben. Bei der Angabe von "" wird die UmleiŻ’’’’’’’’’’’’’’’^ tung in die Datei ausgeschaltet werden (Voreingestellt ist 'fehlerdatei' =’’’’’’’’’’’ ""). .PROC graphic (BOOL CONST graphic option) ’’’’’N Zweck: Mit dieser Prozedur lŁūt sich einstellen, ob bei der DYNAMO-Anweisung^ PLOT die hochauflŚsende Grafik ('graphic option' = TRUE) oder die zeiŻ’’’’’’’’’’’’’’’^ chenorientierte Grafik ('grafik option' = FALSE) verwendet werden soll. Die’’’’’’’’’’N Voreinstellung wird bei der Installation des Compilers erfragt. ’’’’’.PROC protokoll (BOOL CONST protokoll option) ’N Zweck: Bei 'protokoll option' = TRUE werden alle Textausgaben, die bei der’’N Laufzeit des DYNAMO-Programmes auftreten, nicht nur auf dem BildŻ’’’’^ schirm dargestellt, sondern auch in eine Datei mit dem Namen "dyn.out"’’’’’’’’’’’’’’’^ protokolliert (voreingestellt ist 'protokoll option' = FALSE). Die Datei’’’’’’’’’’’’’^ "dyn.out" enthŁlt auch Seitenvorschubbefehle ('ŽpageŽ') und sollte nur mit’’’’’’’’’’’> einem EUMEL-Printer ausgedruckt werden. ’’’’’’’’’’’’’.#ib#3.2. Abweichungen gegenŪber dem ’’’’’’’’’’ Sprachstandard#ie# ’’’’’’^ - Die LŁnge der Namen ist nicht auf 7 Zeichen festgelegt, sondern praktisch beŻ’’’’’’’’’’’’’^ liebig (32000). Dies ist eine Erweiterung; wer seine Programme auch auf andeŻ’’’’’’’’’’’’’^ ren DYNAMO-Compilern laufen lassen will, sollte sich aber auf 7 Zeichen beŻ’’’’’’’’’’’’’’’ schrŁnken. ’’’’’’’’’’’’’’’^ - Zahlen werden intern mit einer Mantisse von 13 Stellen abgespeichert, von denen’’’’’’’’’’’^ nur die ersten 7 bei der Ausgabe dargestellt werden. Die grŚūte darstellbare Zahl’’’’’’’’’. ist daher 9.999999999999e126. ’’’’’’’’’’’’N - Die maximale Anzahl der Gleichungen ist auf 950 festgelegt. ’’’’’’’’’’’’’’^ - Der Compiler akzeptiert aus GrŪnden der besseren Lesbarkeit auch Programme,’’’’’’’’’’’’’’’^ die in Kleinschrift geschrieben sind. Dabei ist es sinnvoll, die Quellprogramme’’’’’’’’’’’^ konsistent zu halten (d.h. Groū- und Kleinschrift nicht zu vermischen). Man’’’’’’’’’’’’’’’^ sollte grundsŁtzlich Kleinschrift vorziehen, da diese vom Compiler auch effizienter’’’’’’’ verarbeitet werden kann. ’^ - Quellprogramme dŪrfen eine beliebige Zahl von Leerzeilen enthalten. X - BefehŻ’’’’’’’’’’’’> le (Fortschreibungszeilen) werden davon nicht beeinfluūt. ^ - In der augenblicklichen Version 3.3 des Compilers gelten folgende EinschrŁnkunŻ’’’’’’’’’’’N 1. Bei der Verarbeitung von Array-Gleichungen werden Compilerseitig keine’’N Semantik-ŲberprŪfungen auf eventuell unzureichende Initialisierung oder’N Ųberlappung (d.h. mehrfaches Setzen desselben Elements) durchgefŪhrt.’’’^ DefaultmŁūig bekommen alle Elemente einer Array-Gleichung bei der InitialiŻ’’’’’’’’’’’’’. sierung den Wert '0.0' zugewiesen. ’’’’’N 2. Die maximale GrŚūe von Tables und Array-Gleichungen ist durch VerwenŻ’’’N dung des Vector-Pakets auf 4000 Elemente festgelegt. Da pro Table-EleŻ’’^ ment aber zur Zeit eine Zeile im Zielprogramm generiert wird, sollte man dies’’’’’’’’’’’ besser nicht ausnutzen. N 3. Supplementary-Gleichungen werden aus KompatibilitŁts-GrŪnden korrekt’’’’N Ūbersetzt, aber sonst wie Auxiliary-Gleichungen behandelt. ’’’’’’’’’’’’’^ 4. Print ('prtper')- und Plotperiode ('pltper') werden nur als Konstanten verarbeiŻ’’’’’’’’^ tet. Falls Gleichungen fŪr 'prtper' oder 'pltper' angegeben werden, so bewirken’’’’’’’’’. diese keine VerŁnderung. ’’’’’’’’’’’’’’’N 5. Array-Gleichungen dŪrfen nicht mehr als eine Dimension besitzen. ’’’’’’’^ 6. FŪr Gleichungen, die Makro-Aufrufe enthalten, sollten Initialisierungs (N)-’’’’’’’’’’’’’. Gleichungen angegeben werden. ’’’’’’’’’’.#ib#3.3. Das DYNAMO Runtime-System#ie# ’’’’’’’NNach erfolgreicher Ųbersetzung wird vom Zielprogramm das Runtime-System aufgeŻNrufen. In diesem Modus (das DYNAMO-Runtime-System meldet sich mit "dynamo’’’’’^runtime system :") ist es mŚglich, Konstanten zu Łndern und DynamoProgramme zur’’’’’’’’’’’’’’’AusfŪhrung zu bringen. ’’’’’’’NIm DYNAMO-Runtime-System stehen folgende Kommandos zur VerfŪgung (nŁheres’’’’’Nzur Notation siehe Kapitel 4, S. #to page ("Anweisungen und Funktionen")#). ’’> Zweck: AusfŪhren des Ūbersetzten Programms ’’’’’’’’’’’’’’’N Zweck: AusfŪhren des Ūbersetzten Programms und retten des KonstantendatenŻN raums in des Datenraum mit dem Namen ".const". Existiert der’N Datenraum bereits, werden die Konstanten aus dem Datenraum in den’’N Lauf Ūbernommen. Somit ermŚglicht der Compiler, Konstantenwerte aus> einem frŪheren Lauf wieder zu verwenden. ’’’’’’’’’’> c =Wert [/=Wert [...]] ’’’’’> Zweck: Önderung einer oder mehrerer Konstanten ’’’’’’’’’’’> Zweck: Anzeigen der Konstanten und ihrer Werte ’’’’’’’’’’’. Zweck: Verlassen des Runtime-Systems ’’’’’. Zweck: Zeigt eine kurze ErklŁrung ’’’’’’’’>Bei PRINT- und PLOT-Ausgaben sind folgende Kommandos mŚglich:  + NŁchster Bildschirm ^ o (Off), keine Unterbrechung der Ausgabe (nicht mŚglich bei hochauflŚsenŻ’’’’’’’’’’’’’ der Grafik) ’’’’’’’’. e (End), ZurŪck zum Runtime System ’’’N p Phasendiagramm (nur bei hochauflŚsender Grafik mŚglich) ’’’’’’’’’’’’#ib#3.4. Fehlermeldungen des ’ DYNAMO-Compilers#ie# ’’’’NFalls der Compiler einen Fehler im DYNAMO-Programm entdeckt, gibt er eine FehŻ.lermeldung nach dem folgenden Muster aus: ’’’’N"Fehler in Zeile bei >> << : . ’’’’’^Im folgenden sind alle Fehlermeldungen und MŚglichkeiten zur Abhilfe aufgelistet,’’’’’’’’’’’’.sofern diese nicht klar ersichtlich sind: ’’’’. 1 GLEICHUNG DOPPELT DEFINIERT ’’’’’’’’’’’’’ 2 DOPPELTE INITIALISIERUNG  3 FALSCHER ZEILENTYP ’’’’’’^ -> Erlaubt sind : a, c, l, n, r, s, print, plot, note, spec, *, x, macro, mend,’’’’’’’’. for, noise, run. ’’’’. 4 VERSCHACHTELTE MAKRO-DEFINITION ’’’’’’’’’. -> 'mend' - Befehl fehlt. ’’’’’’’’’’’’’’ 5 MAKRO-NAME ERWARTET ’’’’’ 6 '(' ERWARTET ’’’’’’’’’’’’. 7 FORMALER PARAMETER ERWARTET ’’’’’’’’’’’’’. 8 ')' NACH PARAMETERLISTE ERWARTET ’’’’’’’’’> 9 BEI AUXILIARIES NUR SUBSKRIPTION MIT '.K' ERLAUBT ’’’’’’’’.10 BEI KONSTANTEN-DEFINITION NAME ERWARTET ’’>11 BEI LEVELS NUR SUBSKRIPTION MIT '.K' ERLAUBT ’’’’’’’’’’’’’>12 BEI RATES NUR SUBSKRIPTTION MIT '.KL' ERLAUBT ’’’’’’’’’’’’>13 BEI TABLE-DEFINITIONEN KEINE SUBSKRIPTION ERLAUBT ’’’’’’’’.14 X - BEFEHL HIER NICHT ERLAUBT ’’’’’’’’’’’’.15 BEI FOR-DEFINITION NAME ERWARTET ’’’’’’’’’.16 '=' NACH FOR-VARIABLE ERWARTET ’’’’’’’’’’’17 BEREICHSANGABE ERWARTET ’’18 ',' ERWARTET ’’’’’’’’’’’’’.19 LOKALE GLEICHUNG NUR IN MAKRO ERLAUBT ’’’’.20 BEI DEFINITION NAME ERWARTET ’’’’’’’’’’’’’21 '=' ERWARTET ’’’’’’’’’’’’’22 INDEX NICHT KORREKT ’’’’’’> -> Als Index ist nur erlaubt : !, ’’’’’’’> !. ’> ::= "+"; "-". ’’.23 ')' NACH INDIZIERUNG ERWARTET ’’’’’’’’’’’’24 PRTPER NICHT DEFINIERT ’’’^ -> Wenn das Programm einen Print-Befehl enthŁlt, muū 'prtper' (Printperiode)’’’’’’’’’’’’’. als Konstante definiert werden. ’’’’’’25 PLTPER NICHT DEFINIERT ’’’^ -> Wenn d’’’’’’’’RK’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rK’’’’’’’’’’’’’’’’’’’’’K’’’’’’’’’’’’’’’’’’’’²K’’’’’’’’’’’’’’’’’’’’ŅK’&’’’’’’’’’’’’’’’’’’’L’,’’’’’’’’’’’’’’’’’’’2L’$’’’’’’’’’’’’’’’’’’’bL’!’’’’’’’’’’’’’’’’’’’’L’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²L’’’’’’’’’’’’’’’’’’’’ŅL’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņL’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’M’'’’’’’’’’’’’’’’’’’’’BM’=’’’’’’’’’’’’’’’’’’’‚M’’’’’’’’’’’’’’’’’’’’¢M’’’’’’’’’’’’’’’’’’’’ŅM’I’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’"N’’’’’’’’’’’’’’’’’’’’BN’’’’’’’’’’’’’’’’’’’’bN’’’’’’’’’’’’’’’’’’’’‚N’’’’’’’’’’’’’’’’’’’’¢N’-’’’’’’’’’’’’’’’’’’’ŅN’$’’’’’’’’’’’’’’’’’’’O’’’’’’’’’’’’’’’’’’’’"O’’’’’’’’’’’’’’’’’’’’BO’’’’’’’’’’’’’’’’’’’’bO’(’’’’’’’’’’’’’’’’’’’’O’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’²O’’’’’’’’’’’’’’’’’’’’ŅO’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņO’’’’’’’’’’’’’’’’’’’’P’’’’’’’’’’’’’’’’’’’’"P’’’’’’’’’’’’’’’’’’’’BP’’’’’’’’’’’’’’’’’’’’bP’’’’’’’’’’’’’’’’’’’’‚P’:’’’’’’’’’’’’’’’’’’’ĀP’4’’’’’’’’’’’’’’’’’’’Q’#’’’’’’’’’’’’’’’’’’’2Q’#’’’’’’’’’’’’’’’’’’’bQ’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’‚Q’ ’’’’’’’’’’’’’’’’’’’²Q’’’’’’’’’’’’’’’’’’’’ŅQ’"’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’2R’’’’’’’’’’’’’’’’’’’’RR’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’rR’’’’’’’’’’’’’’’’’’’’¢R’’’’’’’’’’’’’’’’’’’’ĀR’’’’’’’’’’’’’’’’’’’’āR’’’’’’’’’’’’’’’’’’’’S’’’’’’’’’’’’’’’’’’’’"S’6’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’bS’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚S’’’’’’’’’’’’’’’’’’’’¢S’’’’’’’’’’’’’’’’’’’’ĀS’’’’’’’’’’’’’’’’’’’’āS’&’’’’’’’’’’’’’’’’’’’T’,’’’’’’’’’’’’’’’’’’’BT’$’’’’’’’’’’’’’’’’’’’rT’!’’’’’’’’’’’’’’’’’’’¢T’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀT’’’’’’’’’’’’’’’’’’’’āT’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’U’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"U’#’’’’’’’’’’’’’’’’’’’RU’H’’’’’’’’’’’’’’’’’’’¢U’&’’’’’’’’’’’’’’’’’’’ŅU’F’’’’’’’’’’’’’’’’’’’"V’’’’’’’’’’’’’’’’’’’’’’ } ’’’’’’’’’’’’’’’’BV’’’’’’’’’’’’’’’’’’’’bV’’’’’’’’’’’’’’’’’’’’‚V’’’’’’’’’’’’’’’’’’’’¢V’ ’’’’’’’’’’’’’’’’’’’ŅV’’’’’’’’’’’’’’’’’’’’ņV’@’’’’’’’’’’’’’’’’’’’BW’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’bW’%’’’’’’’’’’’’’’’’’’’’W’"’’’’’’’’’’’’’’’’’’’ĀW’=’’’’’’’’’’’’’’’’’’’X’$’’’’’’’’’’’’’’’’’’’2X’’’’’’’’’’’’’’’’’’’’RX’"’’’’’’’’’’’’’’’’’’’‚X’,’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²X’’’’’’’’’’’’’’’’’’’’ŅX’’’’’’’’’’’’’’’’’’’’ņX’’’’’’’’’’’’’’’’’’’’Y’’’’’’’’’’’’’’’’’’’’2Y’D’’’’’’’’’’’’’’’’’’’‚Y’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’’ c1:= c2. ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢Y’’’’’’’’’’’’’’’’’’’’ĀY’'’’’’’’’’’’’’’’’’’’’ņY’’’’’’’’’’’’’’’’’’’’Z’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2Z’’’’’’’’’’’’’’’’’’’’RZ’’’’’’’’’’’’’’’’’’’’rZ’’’’’’’’’’’’’’’’’’’’’Z’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²Z’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’ŅZ’#’’’’’’’’’’’’’’’’’’’[’F’’’’’’’’’’’’’’’’’’’R[’&’’’’’’’’’’’’’’’’’’’‚[’F’’’’’’’’’’’’’’’’’’’Ņ[’’’’’’’’’’’’’’’’’’’’’’ } ’’’’’’’’’’’’’’’’ņ[’’’’’’’’’’’’’’’’’’’’\’’’’’’’’’’’’’’’’’’’’2\’’’’’’’’’’’’’’’’’’’’R\’ ’’’’’’’’’’’’’’’’’’’‚\’’’’’’’’’’’’’’’’’’’’¢\’@’’’’’’’’’’’’’’’’’’’ņ\’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’]’%’’’’’’’’’’’’’’’’’’’B]’"’’’’’’’’’’’’’’’’’’’r]’1’’’’’’’’’’’’’’’’’’’²]’!’’’’’’’’’’’’’’’’’’’ā]’"’’’’’’’’’’’’’’’’’’’^’,’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B^’’’’’’’’’’’’’’’’’’’’b^’’’’’’’’’’’’’’’’’’’’‚^’’’’’’’’’’’’’’’’’’’’¢^’’’’’’’’’’’’’’’’’’’’Ā^’D’’’’’’’’’’’’’’’’’’’_’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’’ c1:= c2. ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2_’’’’’’’’’’’’’’’’’’’’R_’’’’’’’’’’’’’’’’’’’’‚_’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢_’’’’’’’’’’’’’’’’’’’’Ā_’’’’’’’’’’’’’’’’’’’’ā_’ ’’’’’’’’’’’’’’’’’’’`’F’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’b`’’’’’’’’’’’’’’’’’’’’‚`’’’’’’’’’’’’’’’’’’’’¢`’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā`’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’ā`’#’’’’’’’’’’’’’’’’’’’a’4’’’’’’’’’’’’’’’’’’’Ra’(’’’’’’’’’’’’’’’’’’’‚a’’’’’’’’’’’’’’’’’’’’¢a’’’’’’’’’’’’’’’’’’’’Āa’’’’’’’’’’’’’’’’’’’’ņa’G’’’’’’’’’’’’’’’’’’’Bb’’’’’’’’’’’’’’’’’’’’bb’-’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’²b’’’’’’’’’’’’’’’’’’’’Ņb’’’’’’’’’’’’’’’’’’’’ņb’’’’’’’’’’’’’’’’’’’’c’’’’’’’’’’’’’’’’’’’’2c’C’’’’’’’’’’’’’’’’’’’‚c’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’’ c1:= c2. ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢c’’’’’’’’’’’’’’’’’’’’²c’’’’’’’’’’’’’’’’’’’’Ņc’’’’’’’’’’’’’’’’’’’’ņc’"’’’’’’’’’’’’’’’’’’’"d’3’’’’’’’’’’’’’’’’’’’bd’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ retract c2: ’’’’’’’’‚d’*’’’’’’’’’’’’’’’’’’’²d’’’’’’’’’’’’’’’’’’’’Ņd’’’’’’’’’’’’’’’’’’’’ņd’’’’’’’’’’’’’’’’’’’’e’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2e’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’Re’$’’’’’’’’’’’’’’’’’’’‚e’H’’’’’’’’’’’’’’’’’’’Ņe’’’’’’’’’’’’’’’’’’’’ņe’(’’’’’’’’’’’’’’’’’’’"f’’’’’’’’’’’’’’’’’’’’’’ THEN REP ’’’’’’’’’Bf’’’’’’’’’’’’’’’’’’’’bf’"’’’’’’’’’’’’’’’’’’’’f’’’’’’’’’’’’’’’’’’’’²f’6’’’’’’’’’’’’’’’’’’’ņf’7’’’’’’’’’’’’’’’’’’’2g’’’’’’’’’’’’’’’’’’’’Rg’"’’’’’’’’’’’’’’’’’’’‚g’'’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’ PER ’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²g’’’’’’’’’’’’’’’’’’’’Ņg’’’’’’’’’’’’’’’’’’’’ņg’’’’’’’’’’’’’’’’’’’’h’’’’’’’’’’’’’’’’’’’’2h’’’’’’’’’’’’’’’’’’’’Rh’’’’’’’’’’’’’’’’’’’’rh’1’’’’’’’’’’’’’’’’’’’²h’’’’’’’’’’’’’’’’’’’’Ņh’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņh’’’’’’’’’’’’’’’’’’’’i’’’’’’’’’’’’’’’’’’’’"i’’’’’’’’’’’’’’’’’’’’Bi’"’’’’’’’’’’’’’’’’’’’ri’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ retract c2: ’’’’’’’’²i’*’’’’’’’’’’’’’’’’’’’āi’’’’’’’’’’’’’’’’’’’’j’’’’’’’’’’’’’’’’’’’’"j’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Bj’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’bj’'’’’’’’’’’’’’’’’’’’’’j’’’’’’’’’’’’’’’’’’’’’’ THEN TRUE ’’’’’’’’¢j’’’’’’’’’’’’’’’’’’’’Āj’’’’’’’’’’’’’’’’’’’’Ņj’’’’’’’’’’’’’’’’’’’’ņj’ ’’’’’’’’’’’’’’’’’’’"k’’’’’’’’’’’’’’’’’’’’Bk’’’’’’’’’’’’’’’’’’’’bk’ ’’’’’’’’’’’’’’’’’’’’k’’’’’’’’’’’’’’’’’’’’²k’6’’’’’’’’’’’’’’’’’’’ņk’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’l’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"l’6’’’’’’’’’’’’’’’’’’’bl’2’’’’’’’’’’’’’’’’’’’¢l’’’’’’’’’’’’’’’’’’’’Āl’’’’’’’’’’’’’’’’’’’’āl’’’’’’’’’’’’’’’’’’’’m’’’’’’’’’’’’’’’’’’’’"m’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’Bm’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bm’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚m’’’’’’’’’’’’’’’’’’’’¢m’’’’’’’’’’’’’’’’’’’’Ām’’’’’’’’’’’’’’’’’’’’ām’’’’’’’’’’’’’’’’’’’’n’’’’’’’’’’’’’’’’’’’’"n’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2n’’’’’’’’’’’’’’’’’’’’Rn’’’’’’’’’’’’’’’’’’’’rn’’’’’’’’’’’’’’’’’’’’¢n’’’’’’’’’’’’’’’’’’’’Ān’’’’’’’’’’’’’’’’’’’’ān’%’’’’’’’’’’’’’’’’’’’o’(’’’’’’’’’’’’’’’’’’’Bo’%’’’’’’’’’’’’’’’’’’’ro’’’’’’’’’’’’’’’’’’’’’o’’’’’’’’’’’’’’’’’’’’²o’’’’’’’’’’’’’’’’’’’’Ņo’@’’’’’’’’’’’’’’’’’’’"p’’’’’’’’’’’’’’’’’’’’Bp’ ’’’’’’’’’’’’’’’’’’’rp’’’’’’’’’’’’’’’’’’’’¢p’"’’’’’’’’’’’’’’’’’’’Ņp’$’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’ PER; ’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’"q’’’’’’’’’’’’’’’’’’’’Bq’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’bq’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ stepping: ’’’’’’’’’’’q’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņq’’’’’’’’’’’’’’’’’’’’ņq’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’as Programm einen Plot-Befehl enthŁlt, muū 'pltper' (Plotperiode)’’’’’’’’’’’’’’’. als Konstante definiert werden. ’’’’’’.26 '/' ODER ',' BEI PLOT ERWARTET ’’’’’’’’’’’.27 NAME ALS PLOTPARAMETER ERWARTET ’’’’’’’’’’.28 DOPPELTE SCALE - ANGABE IN EINER GRUPPE ’’^ -> Wenn mehrere Plotparameter mit ',' getrennt werden (also die gleiche SkaŻ’’’’’’’’’’’’’^ lierung erhalten), dŪrfen nicht mehrere feste Skalierungen angegeben werŻ’’’’’’’’’’’’’.29 ERSTE SCALE - ANGABE ERWARTET ’’’’’’’’’’’’.30 ZWEITE SCALE - ANGABE ERWARTET ’’’’’’’’’’’.31 ')' NACH SCALE - ANGABE FEHLT ’’’’’’’’’’’’.32 PRINTPARAMETER NICHT DEFINIERT ’’’’’’’’’’’33 PRINTPARAMETER ERWARTET ’’.34 TIME DARF NUR INITIALISIERT WERDEN ’’’’’’’35 DT NICHT DEFINIERT ’’’’’’’36 LENGTH NICHT DEFINIERT ’’’.37 BEI KONSTANTEN - DEFINITION ZAHL ERWARTET .38 BEI INITIALISIERUNG KONSTANTE ERWARTET ’’’.39 LEVELS MUESSEN INITIALISIERT WERDEN ’’’’’’.40 KONSTANTE BEI TABLE ERWARTET ’’’’’’’’’’’’’41 '/' ODER "," ERWARTET ’’’’.42 TABLE - DEFINITION OHNE BENUTZUNG ’’’’’’’’43 SIMULTANE GLEICHUNGEN ’’’’N -> Bei dem Versuch, A, R, oder N - Gleichungen zu sortieren, trat eine’’’. direkte oder indirekte Rekursion auf. 44 FAKTOR ERWARTET ’’’’’’’’’’ -> Erwartet : ; ’’. ; ’’’’’’. ; ’’’’’’’’’’. ; ’’’’’’’. '(', , ')'; ’’’’> , . ’’’’’’’’> ::= '+'; '-'. ’’’’’>45 TIME MUSS MIT '.J' ODER '.K' SUBSKRIBIERT WERDEN ’’’’’’’’’46 SYMBOL NICHT DEFINIERT ’’’47 FUNKTION NICHT DEFINIERT ’48 UNZULAESSIGE INDIZIERUNG ’N -> Die Indices auf beiden Seiten der Gleichung mŪssen immer gleich sein. 49 FALSCHE PARAMETERANZAHL ’’.50 FALSCHES TRENNSYMBOL ZWISCHEN PARAMETERN ’.51 ALS PARAMETER TABLE ERWARTET ’’’’’’’’’’’’’.52 FALSCHER PARAMETER IN TABLEFUNKTION ’’’’’’.53 ZU VIELE AKTUELLE PARAMETER ’’’’’’’’’’’’’’.54 ')' NACH MAKROAUFRUF FEHLT ’’’’’’’’’’’’’’’55 REKURSIVER MAKROAUFRUF ’’’>56 BEI N - GLEICHUNG KEINE SUBSKRIPTION ERLAUBT ’’’’’’’’’’’’’>57 FALSCHE SUBSKRIPTION IN AUXILIARY - GLEICHUNG ’’’’’’’’’’’’58 ')' ERWARTET ’’’’’’’’’’’’’.59 FALSCHE SUBSKRIPTION IN LEVEL - GLEICHUNG .60 FALSCHE SUBSKRIPTION IN RATE - GLEICHUNG ’.61 FOR - VARIABLE NICHT DEFINIERT ’’’’’’’’’’’N -> Eine FOR - Variable muū vor der ersten Benutzung definiert werden. ’’’62 KONSTANTE ERWARTET ’’’’’’’63 FALSCHES REAL - FORMAT ’’’ -> Exponent fehlt ’’’’’’’.64 GLOBALE GLEICHUNG IN MACRO NICHT ERLAUBT ’>65 DOPPELTE DEFINITION BEI MEHRFACHEM MAKROAFRUF ’’’’’’’’’’’’.66 ALS NOISE - PARAMETER ZAHL ERWARTET ’’’’’’.#ib#4. Anweisungen und Funktionen des’’’’’’’’’ EUMEL-DYNAMO-Compilers#ie# .#goal page ("Anweisungen und Funktionen")# ’’’NDieses Kapitel gibt eine alphabetische Ųbersicht Ūber die im EUMEL-DYNAMO-’’’’NCompiler realisierten Anweisungen und Funktionen (wertliefernde Algorithmen). NDie Beschreibung der Anweisungen und Funktionen ist nach der DYNAMO-’’’’’’’’’’^Syntaxregel angegeben, wobei folgende Zeichen mit besonderer Bedeutung verwendet’’’’’’’’’’’’’’. [] optionale Angabe ’’’’’’’’’’’’’’’N [...] beliebig hŁufige Wiederholung der letzten optionalen Angabe ’’’’N <ß> in spitzen Klammern stehende Namen sind Variablen- bzw. KonstanŻ tennamen ’’’’’’’N steht fŪr einen beliebigen Bezeichner gemŁū der DYNAMO-Syntax ’’N bezeichnet einen beliebigen Wert (also auch eine Ausdruck) ’’’’’. {} Alternative Angabe ’’’’’’’’’’’’’N X DYNAMO Anweisung, kennzeichnet eine Fortsetzungsszeile der’’’’’’> vorhergegangenen Anweiung (S. #to page ("X")#) ’NAlle Anweisungen und Funktionen werden nach dem gleichen Schema dargestellt: ’>Funktionsname#right#Typ (Funkt. oder Anweisung) ’’’’’’’’’’’’’’.Zweck: Schlagwort zur Wirkung ’’’’’’’’’’’’>Format: Beschreibung des Formates (spezielle Zeichen s.o.) >ErklŁrung: kurze Beschreibung der Anweisung/Funktion ’’’’’’’’’.Beispiel: Anwendung der Anweisung/Funktion ’’^Programm: Beispielprogramm, in welchem die Anweisung/Funktion angewendet wird. ’’’’’’’’’’’’’’NReferenz: Verweis auf Łhnliche oder Łquivalente Anweisungen/Funktionen im’’’’N Format ', Seitennummer'. ’’’’’’’’’’^Eine oder mehrere dieser Felder kŚnnen fehlen (z.B. wenn es keine Referenz oder’’’’’’’’’’’’’’’kein Beispielprogramm gibt). ’.#ib#4.1. Ųbersicht Ūber die Anweisungen und’’’ Funktionen#ie# ’’’’’’’’’’N#goal page ("A")##ib (2)#A#ie (2)##on ("i")##right#Anweisung#off ("i")# ’’’’’’>Zweck: Auxiliary-Gleichung (A-Gleichung, Hilfsgleichung) ’NFormat: A .K=#u##count ("Ausdruck")##e# ’’’’’’’’’^#u##value ("Ausdruck")##e# genaueres Ūber die Definition eines Ausdruckes siehe [1], S. 93 ’’’NErklŁrung: Mit Hilfe von Auxiliary-Gleichungen werden Level- und HilfsgrŚūen’’> (Auxiliaries) zum selben Zeitpunkt verknŪpft. ’’’’’Beispiel: A JM.K=MM.K/MEJ ’’’Programm: "dyn.workfluc" ’’’’>#ib (2)#ABS#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’’’’Zweck: Absolutbetrag ’’’’’Format: ABS() ’’’’’’’.ErklŁrung: Liefert den Absolutbetrag ’’’’’’’’’. IF >= 0 THEN ’’’’’’’’’’’’’’’ ’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’ - ’’’’’’’ END IF ’’’’’’’’’’’Beispiel: N X=ABS(A*2.0) ’’’’N#goal page ("ARCTAN")#ARCTAN#on ("i")##right#Funktion#off ("i")# ’’’’’’’’’’’’’NZweck: Berechnung der trigonometrischen Funktion Arcustangens ’’’’’’’’’’’’Format: ARCTAN() ’’’’NErklŁrung: Berechnet den Arcustangens von ; Ergebnis im Bogenmaū. ’’’’’’>Beispiel: N X=ARCTAN(TAN(1.3)) (X = 1.3) ’’’’’.Referenz: COSD, S. #to page ("COSD")# ’’’’’’’. SIN, S. #to page ("SIN")# ’’’’’’’’’. SIND, S. #to page ("SIND")# ’’’’’’’. TAN, S. #to page ("TAN")# ’’’’’’’’’. TAND, S. #to page ("TAND")# ’’’’’’’. ARCTAND, S. #to page ("ARCTAN")# ’’. COS, S. #to page ("COS")# ’’’’’’’’’^#goal page ("ARCTAND")##ib (2)#ARCTAND#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’’’’’’’’’NZweck: Berechnung der trigonometrischen Funktion Arcustangens ’’’’’’’’’’’’Format: ARCTAND() ’’’NErklŁrung: Berechnet den Arcustangens von ; Ergebnis im Gradmaū ’’’’’’’’>Beispiel: N X=ARCTAND(TAND(45.0)) (X = 45.0) ’’’’.Referenz: COSD, S. #to page ("COSD")# ’’’’’’’. SIN, S. #to page ("SIN")# ’’’’’’’’’. SIND, S. #to page ("SIND")# ’’’’’’’. TAN, S. #to page ("TAN")# ’’’’’’’’’. TAND, S. #to page ("TAND")# ’’’’’’’. COS, S. #to page ("COS")# ’’’’’’’’’. ARCTAN, S. #to page ("ARCTAND")# ’’N#goalpage ("C")##ib (2)#C#ie (2)##on ("i")##right#Anweisung#off ("i")# ’’’’’’’.Zweck: Konstantendefinition ’’’’’’’’’’’’’’Format: C = ’’’^ErklŁrung: Werte, die wŁhrend eines Simulationslaufes gleich bleiben, kŚnnen durch’’’’’’’’’’’’N die Konstantendefintion benannt werden (s. auch 'c' im Runtime-’’’’ System). ’’’’’’’’’’Beispiel: C POPI=30.3 ’’’’’’’Programm: "dyn.wohnen" ’’’’’’N#goal page ("CLIP")##ib (2)#CLIP#ie (2)##on ("i")##right#Funktion#off ("i")# ’.Zweck: Wert nach Bedingung ’’’’’’’’’’’’’’’>Format: CLIP(,,,) ’’’’’’’’’’’’’NErklŁrung: Liefert den Wert des ersten Argumentes, wenn das dritte Argument’’’^ grŚ’’’’’’’’2r’&’’’’’’’’’’’’’’’’’’’br’,’’’’’’’’’’’’’’’’’’’’r’$’’’’’’’’’’’’’’’’’’’Ār’&’’’’’’’’’’’’’’’’’’’ņr’’’’’’’’’’’’’’’’’’’’s’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2s’0’’’’’’’’’’’’’’’’’’’rs’1’’’’’’’’’’’’’’’’’’’²s’H’’’’’’’’’’’’’’’’’’’t’J’’’’’’’’’’’’’’’’’’’Rt’+’’’’’’’’’’’’’’’’’’’‚t’’’’’’’’’’’’’’’’’’’’¢t’’’’’’’’’’’’’’’’’’’’Āt’’’’’’’’’’’’’’’’’’’’āt’,’’’’’’’’’’’’’’’’’’’u’!’’’’’’’’’’’’’’’’’’’Bu’’’’’’’’’’’’’’’’’’’’bu’"’’’’’’’’’’’’’’’’’’’’u’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’’ FALSE ’’’’’’’’’’’’²u’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’Ņu’8’’’’’’’’’’’’’’’’’’’v’’’’’’’’’’’’’’’’’’’’2v’’’’’’’’’’’’’’’’’’’’Rv’’’’’’’’’’’’’’’’’’’’rv’’’’’’’’’’’’’’’’’’’’’v’’’’’’’’’’’’’’’’’’’’²v’’’’’’’’’’’’’’’’’’’’āv’%’’’’’’’’’’’’’’’’’’’w’’’’’’’’’’’’’’’’’’’’2w’’’’’’’’’’’’’’’’’’’’Rw’)’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’‚w’+’’’’’’’’’’’’’’’’’’’²w’1’’’’’’’’’’’’’’’’’’’ņw’)’’’’’’’’’’’’’’’’’’’"x’’’’’’’’’’’’’’’’’’’’Bx’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bx’$’’’’’’’’’’’’’’’’’’’’x’’’’’’’’’’’’’’’’’’’’’’ THEN ts ’’’’’’’’’’²x’9’’’’’’’’’’’’’’’’’’’ņx’+’’’’’’’’’’’’’’’’’’’"y’7’’’’’’’’’’’’’’’’’’’by’+’’’’’’’’’’’’’’’’’’’’y’ ’’’’’’’’’’’’’’’’’’’Āy’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’āy’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’z’ ’’’’’’’’’’’’’’’’’’’2z’’’’’’’’’’’’’’’’’’’’Rz’’’’’’’’’’’’’’’’’’’’rz’’’’’’’’’’’’’’’’’’’’’z’’’’’’’’’’’’’’’’’’’’²z’(’’’’’’’’’’’’’’’’’’’āz’+’’’’’’’’’’’’’’’’’’’{’)’’’’’’’’’’’’’’’’’’’’’ line; ’’’’’’’’’B{’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’b{’’’’’’’’’’’’’’’’’’’’‚{’’’’’’’’’’’’’’’’’’’’¢{’’’’’’’’’’’’’’’’’’’’Ā{’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā{’1’’’’’’’’’’’’’’’’’’’"|’:’’’’’’’’’’’’’’’’’’’b|’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’|’G’’’’’’’’’’’’’’’’’’’ā|’’’’’’’’’’’’’’’’’’’’}’5’’’’’’’’’’’’’’’’’’’B}’=’’’’’’’’’’’’’’’’’’’‚}’1’’’’’’’’’’’’’’’’’’’Ā}’!’’’’’’’’’’’’’’’’’’’ņ}’<’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’2~’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b~’-’’’’’’’’’’’’’’’’’’’’~’$’’’’’’’’’’’’’’’’’’’Ā~’6’’’’’’’’’’’’’’’’’’’’7’’’’’’’’’’’’’’’’’’’’’ ) ’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’$’’’’’’’’’’’’’’’’’’’’’5’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’Ņ’K’’’’’’’’’’’’’’’’’’’"€’’’’’’’’’’’’’’’’’’’’B€’’’’’’’’’’’’’’’’’’’’b€’’’’’’’’’’’’’’’’’’’’‚€’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’¢€’’’’’’’’’’’’’’’’’’’’’’ line ’’’’’’’’Ā€’?’’’’’’’’’’’’’’’’’’’’0’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’7’’’’’’’’’’’’’’’’’’’⁒K’’’’’’’’’’’’’’’’’’’2‚’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’R‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r‚’"’’’’’’’’’’’’’’’’’’’¢‚’3’’’’’’’’’’’’’’’’’’’ā‚’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’"ƒ’(’’’’’’’’’’’’’’’’’’’Rƒ’#’’’’’’’’’’’’’’’’’’’‚ƒ’’’’’’’’’’’’’’’’’’’’¢ƒ’4’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’⃒’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"„’)’’’’’’’’’’’’’’’’’’’R„’’’’’’’’’’’’’’’’’’’’r„’ ’’’’’’’’’’’’’’’’’’’¢„’’’’’’’’’’’’’’’’’’’’Ā„’’’’’’’’’’’’’’’’’’’’ā„’)’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’2…’C’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’‚…’’’’’’’’’’’’’’’’’’’’¢…’ ’’’’’’’’’’’’’’’’’’’Ņ…’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ…’’’’’’’’’’’’’’’’’’’’†’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚†’=’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’’’ THEN ’’’’’’’’’’’’’→8’’’’’’’’’’’’’’’’’’’"‡’’’’’’’’’’’’’’’’’’’’B‡’H’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’‡’E’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’ˆ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Bˆ’ ’’’’’’’’’’’’’’’’’’’rˆ’’’’’’’’’’’’’’’’’’’’’ˆ’ ’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’−’’’’’’’’’’’’’’’’’’’‰’)’’’’’’’’’’’’’’’’’’’2‰’3’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’r‰’’’’’’’’’’’’’’’’’’’’’‰’ ’’’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’≒’’’’’’’’’’’’’’’’’’’Š’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2Š’’’’’’’’’’’’’’’’’’’’BŠ’’’’’’’’’’’’’’’’’’’’rŠ’’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’²Š’H’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’"‹’’’’’’’’’’’’’’’’’’’’B‹’E’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²‹’’’’’’’’’’’’’’’’’’’’Ņ‹’’’’’’’’’’’’’’’’’’’’ņ‹’’’’’’’’’’’’’’’’’’’’Œ’ ’’’’’’’’’’’’’’’’’’’BŒ’$’’’’’’’’’’’’’’’’’’’rŒ’2’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’²Œ’’’’’’’’’’’’’’’’’’’’Ҍ’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’2Ž’ ’’’’’’’’’’’’’’’’’’’bŽ’’’’’’’’’’’’’’’’’’’’‚Ž’’’’’’’’’’’’’’’’’’’’¢Ž’(’’’’’’’’’’’’’’’’’’’ŅŽ’.’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’2’4’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’r’?’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’9’’’’’’’’’’’’’’’’’’’"’8’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ FI . ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ґ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’$’’’’’’’’’’’’’’’’’’’"‘’’’’’’’’’’’’’’’’’’’’B‘’’’’’’’’’’’’’’’’’’’’b‘’A’’’’’’’’’’’’’’’’’’’²‘’’’’’’’’’’’’’’’’’’’’Ņ‘’’’’’’’’’’’’’’’’’’’’ņ‘’?’’’’’’’’’’’’’’’’’’’B’’#’’’’’’’’’’’’’’’’’’’r’’K’’’’’’’’’’’’’’’’’’’Ā’’K’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’2“’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R“’>’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’²“’0’’’’’’’’’’’’’’’’’’’ņ“’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’2”’’’’’’’’’’’’’’’’’’’’R”’’’’’’’’’’’’’’’’’’’’r”’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’”’'’’’’’’’’’’’’’’’’’’’Ā”’/’’’’’’’’’’’’’’’’’’’•’’’’’’’’’’’’’’’’’’’’"•’!’’’’’’’’’’’’’’’’’’’R•’'’’’’’’’’’’’’’’’’’’’‚•’*’’’’’’’’’’’’’’’’’’’²•’&’’’’’’’’’’’’’’’’’’’ā•’E’’’’’’’’’’’’’’’’’’’2–’’’’’’’’’’’’’’’’’’’’R–’ ’’’’’’’’’’’’’’’’’’’‚–’A’’’’’’’’’’’’’’’’’’’Ņ–’"’’’’’’’’’’’’’’’’’’’—’?’’’’’’’’’’’’’’’’’’’R—’ ’’’’’’’’’’’’’’’’’’’‚—’7’’’’’’’’’’’’’’’’’’’Ā—’’’’’’’’’’’’’’’’’’’’ā—’’’’’’’’’’’’’’’’’’’’˜’’’’’’’’’’’’’’’’’’’’2˜’%’’’’’’’’’’’’’’’’’’’b˜’’’’’’’’’’’’’’’’’’’’’˜’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’²˜’’’’’’’’’’’’’’’’’’’’Ҙ’’’’’’’’’’’’’’’’’’’’ņ˜’6’’’’’’’’’’’’’’’’’’’2™’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’R™’’’’’’’’’’’’’’’’’’’’r™’’’’’’’’’’’’’’’’’’’’’™’’’’’’’’’’’’’’’’’’’’²™’’’’’’’’’’’’’’’’’’’’Ņ™’5’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ is escape: ’’’’’’’’’š’ ’’’’’’’’’’’’’’’’’’’Bš’%’’’’’’’’’’’’’’’’’’’rš’’’’’’’’’’’’’’’’’’’’¢š’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’⚒2’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’"›’’’’’’’’’’’’’’’’’’’’B›’&’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’r›’’’’’’’’’’’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’²›’ ’’’’’’’’’’’’’’’’’’’ā›’’’’’’’’’’’’’’’’’’’’œ’4’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’Bœ’ ’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rœ’’’’’’’’’’’’’’’’’’’’‚œ’’’’’’’’’’’’’’’’’’’’¢œ’’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’✒ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’ūer oder gleich dem vierten Argument ist. Andernfalls wird der Wert’’’’’’’’’’’’’. des zweiten Argumentes geliefert. ’. IF >= THEN ’’’’’’’’ ’’’’’’’’’ ELSE ’’’’’’’’’’’’’’ ’’’’’’’’’ END IF ’’’’’’’’’’’>Beispiel: N X=CLIP(1.0,2.0,3.0,4.0) (X = 2.0) ’’’’’’’.Programm: "dyn.welt/forrester" ’’’’’’’’’’’’’’NReferenz: FIFGE, S. #to page ("FIFGE")# (Łquivalente Funktion) ’’’’’’’’’’>#goalpage ("COS")#COS#on ("i")##right#Funktion#off ("i")# ’’’’>Zweck: Berechnung der trigonometrischen Funktion Cosinus ’Format: COS() ’’’’’’’NErklŁrung: Es wird der Cosinus des Wertes , welcher im Bogenmaū vorlieŻ’. gen muū, geliefert. ’’’’’’’’’’’’’’’Beispiel: N X=COS(1.6) ’’’’’.Referenz: COSD, S. #to page ("COSD")# ’’’’’’’. SIN, S. #to page ("SIN")# ’’’’’’’’’. SIND, S. #to page ("SIND")# ’’’’’’’. TAN, S. #to page ("TAN")# ’’’’’’’’’. TAND, S. #to page ("TAND")# ’’’’’’’. ARCTAN, S. #to page ("ARCTAN")# ’’’. ARCTAND, S. #to page ("ARCTAND")# ’N#goal page ("COSD")##ib (2)#COSD#ie (2)##on ("i")##right#Funktion#off ("i")# ’>Zweck: Berechnung der trigonometrischen Funktion Cosinus ’Format: COSD() ’’’’’’NErklŁrung: Es wird der Cosinus des Wertes , welcher im Gradmaū vorliegen muū, geliefert. ’’’Beispiel: N X=COSD(33.5) ’’’.Referenz: COS, S. #to page ("COS")# ’’’’’’’’’. SIN, S. #to page ("SIN")# ’’’’’’’’’. SIND, S. #to page ("SIND")# ’’’’’’’. TAN, S. #to page ("TAN")# ’’’’’’’’’. TAND, S. #to page ("TAND")# ’’’’’’’. ARCTAN, S. #to page ("ARCTAN")# ’’’. ARCTAND, S. #to page ("ARCTAND")# ’N#goal page ("EXP")##ib (2)#EXP#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’.Zweck: Exponentialfunktion zur Basis e ’’’Format: EXP() ’’’’’’’.ErklŁrung: Liefert e#u##e# ’’’’’’’’’’’’’NBeispiel: N X=EXP(1.0) (X = 2.71 = e) ’’’’’’’’’’’’’’>Referenz: LN, S. #to page ("LN")# (Umkehrfunktion) ^#goal page ("FIFGE")##ib (2)#FIFGE#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’’’’’’’’’’’’’žZweck: Wert nach Bedingung (#on ("u")#f#off ("u")#irst #on ("u")#if#off ("u")# #on ("u")#g#off ("u")#reater or #on ("u")#e#off ("u")#qual) ’’’’’’’’’’’’’’’>Format: FIFGE(,,,) ’’’’’’’’’’’’NErklŁrung: Liefert den Wert des ersten Argumentes, wenn das dritte Argument’’’^ grŚūer oder gleich dem vierten Argument ist. Andernfalls wird der Wert’’’’’’’’’’’’’. des zweiten Argumentes geliefert. ’. IF >= THEN ’’’’’’’’ ’’’’’’’’’ ELSE ’’’’’’’’’’’’’’ ’’’’’’’’’ END IF ’’’’’’’’’’’>Beispiel: N X=FIFGE(1.0,2.0,3.0,4.0) (X = 2.0) ’’’’’’NReferenz: CLIP, S. #to page ("CLIP")# (Łquivalente Funktion) ’’’’’’’^#goal page ("FIFZE")##ib (2)#FIFZE#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’’’’’’’’’’’’’nZweck: Wert nach Bedingung (#on ("u")#f#off ("u")#irst #on ("u")#if#off ("u")# #on ("u")#ze#off ("u")#ro) .Format: FIFZE(,,) ’’’’NErklŁrung: Wenn der Parameter den Wert 0 hat, so wird ’’’’’’’’’. geliefert, andernfalls ’’’’. IF = 0 THEN ’’’’’’’’’’’’’’’ ’’’’’’’’’ ELSE ’’’’’’’’’’’’’’ ’’’’’’’’’ END IF ’’’’’’’’’’’>Beispiel: N X=FIFZE(1.0,2.0,3.0) (X = 2.0) ’’’’’.Referenz: SWITCH, S. #to page ("SWITCH")# ’’’^#goal page ("FLOOR")##ib (2)#FLOOR#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’’’’’’’’’’’’’Zweck: Vorkommastellen ’’’Format: FLOOR() ’’’’’>ErklŁrung: Liefert die Vorkommastellen von ’’’’’’’’’’’’>Beipiel: N X=FLOOR(3.14) (X = 3.0) ’’’’.Referenz: FRAC, S. #to page ("FRAC")# ’’’’’’’>#ib (2)#FOR#ie (2)##on ("i")##right#Anweisung#off ("i")# ’’’’’.Zweck: Schleifen-Definition ’’’’’’’’’’’’’’.Format: FOR =, ’’’’’’’’NErklŁrung: bezeichnet eine Schleifenvariable, die von bis’’’’’’^ hochgezŁhlt wird. Somit ist es mŚglich, gleiche Berechnungen’’’’’’’’’’’’’’’N fŪr die verschiedenen Werte einer Tabelle durchzufŪhren. ’’’’’’’’’’.Beispiel: FOR BERECHNUNGSZEITRAUM=1900,2100 ’Programm: "dyn.bev" ’’’’’’’’’N#goal page ("FRAC")##ib (2)#FRAC#ie (2)##on ("i")##right#Funktion#off ("i")# ’Zweck: Nachkommastellen ’’Format: FRAC() ’’’’’’>ErklŁrung: Liefert die Nachkommastellen von ’’’’’’’’’’’>Beispiel: N X=FRAC(3.14) (X = 0.14) ’’.Referenz: FLOOR, S. #to page ("FLOOR")# ’’’’’N#goal page ("L")##ib (2)#L#ie (2)##on ("i")##right#Anweisung#off ("i")# ’’’’’’Zweck: Level-Gleichung ’’’.Format: L .K=.J+ ’’> ’’’’’’’’’NErklŁrung: Die Level-Gleichung stellt einen gegenwŁrtigen Wert in Bezug zu’’’’N seinem Wert in der Vergangenheit und seiner VerŁnderungsrate in derN bis dahin vergangenen Zeit (Vergangenheitsausdruck s. [1], S. 96). >Beispiel: L HASEN.K=CLIP(HASEN.J+DT*(HGRATE.JK ’’’’’’’’’’’’’’> X -HSRATE.JK),0,HASEN.J,0) ’’’’’’’’’’’’’’’.Programm: "dyn.grashasenfuchs" ’’’’’’’’’’’’’’N#goal page ("LN")##ib (2)#LN#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’’’.Zweck: Logarithmus-Funktion ’’’’’’’’’’’’’’Format: LN() ’’’’’’’’>ErklŁrung: Berechnet den natŪrlichen Logarithmus von ’’>Beispiel: N X=LN(1.0) (X = 0.0) ’’’Programm: "dyn.wasserŚko" ’’’.Referenz: LOG2, S. #to page ("LOG2")# ’’’’’’’. LOG10, S. #to page ("LOG10")# ’’’’’. EXP, S. #to page ("EXP")# ’’’’’’’’’N#goal page ("LOG2")##ib (2)#LOG2#ie (2)##on ("i")##right#Funktion#off ("i")# ’.Zweck: Logarithmus-Funktion ’’’’’’’’’’’’’’Format: LOG2() ’’’’’’>ErklŁrung: Berechnet den Logarithmus von zur Basis 2 ’’>Beispiel: N X=LOG2(8.0) (X = 3.0) ’’’.Referenz: LN, S. #to page ("LN")# ’’’’’’’’’’’. LOG10, S. #to page ("LOG10")# ’’’’’^#goal page ("LOG10")##ib (2)#LOG10#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’’’’’’’’’’’’’.Zweck: Logarithmus-Funktion ’’’’’’’’’’’’’’Format: LOG10() ’’’’’>ErklŁrung: Berechnet den Logarithmus von zur Basis 10 ’>Beispiel: N X=LOG10(100.0) (X = 2.0) ’’’.Referenz: LOG2, S. #to page ("LOG2")# ’’’’’’’. LN, S. #to page ("LN")# ’’’’’’’’’’’. EXP, S. #to page ("EXP")# ’’’’’’’’’^#goal page ("MACRO")##ib (2)#MACRO#ie (2)##on ("i")##right#Anweisung#off ("i")# ’’’’’’’’’’’’’’Zweck: Macro-Definition ’’>Format: MACRO ([,[...]]) ’’’’’’’’NErklŁrung: Durch die Verwendung der MACRO-Anweisung kŚnnen Sie einer oder’’’’’N mehreren DYNAMO-Gleichungen einen Namen geben ().’’’’’’’’’’’’^ Macros mŪssen durch MEND abgeschloūen werden und dŪrfen #on ("u")#nicht#off ("u")#’N rekursiv aufgerufen werden (vergl. Refinements in ELAN). ’’’’’’’’’’.Beispiel: MACRO SMOOTH(IN,DEL) ’’’’’’’’’’’’’’> L SMOOTH.K=SMOOTH.J+DT*(IN.J-SMOOTH.J)/DEL ’’’’ N SMOOTH=IN ’’’ MEND ’’’’’’’’’’’’’NProgramm: "dyn.mac" (diese Datei enthŁlt alle bisherigen Makros) ’’’’’’’’.Referenz: MEND, S. #to page ("MEND")# ’’’’’’’N#goal page ("MAX")##ib (2)#MAX#ie (2)##on ("i")##right#Funktio’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’!’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2ž’?’’’’’’’’’’’’’’’’’’’‚ž’0’’’’’’’’’’’’’’’’’’’Āž’.’’’’’’’’’’’’’’’’’’’ņž’’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’’’ ts:= nil ’’’’’’’’’2Ÿ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RŸ’ ’’’’’’’’’’’’’’’’’’’‚Ÿ’A’’’’’’’’’’’’’’’’’’’ҟ’’’’’’’’’’’’’’’’’’’’’’ } ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’" ’D’’’’’’’’’’’’’’’’’’’r ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’² ’’’’’’’’’’’’’’’’’’’’Ņ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’"”’’’’’’’’’’’’’’’’’’’’B”’’’’’’’’’’’’’’’’’’’’’’ ELSE TRUE ’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R”’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’¢”’’’’’’’’’’’’’’’’’’’’Ā”’ ’’’’’’’’’’’’’’’’’’’ņ”’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’2¢’*’’’’’’’’’’’’’’’’’’’b¢’&’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’²¢’:’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’ņ¢’’’’’’’’’’’’’’’’’’’’£’)’’’’’’’’’’’’’’’’’’’’’ FI . ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B£’)’’’’’’’’’’’’’’’’’’’r£’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’£’B’’’’’’’’’’’’’’’’’’’⣒’’’’’’’’’’’’’’’’’’’¤’M’’’’’’’’’’’’’’’’’’’R¤’’’’’’’’’’’’’’’’’’’’r¤’'’’’’’’’’’’’’’’’’’’’¢¤’0’’’’’’’’’’’’’’’’’’’⤒’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’"„’,’’’’’’’’’’’’’’’’’’’R„’$’’’’’’’’’’’’’’’’’’’‚„’+’’’’’’’’’’’’’’’’’’’²„’’’’’’’’’’’’’’’’’’’’Ņ„’4’’’’’’’’’’’’’’’’’’’¦’I’’’’’’’’’’’’’’’’’’’b¦’’’’’’’’’’’’’’’’’’’’‚¦’’’’’’’’’’’’’’’’’’’’¢¦’8’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’⦒’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’§’’’’’’’’’’’’’’’’’’’’§’’’’’’’’’’’’’’’’’’’’2§’’’’’’’’’’’’’’’’’’’’’’ prefix. ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R§’’’’’’’’’’’’’’’’’’’’r§’’’’’’’’’’’’’’’’’’’’’§’’’’’’’’’’’’’’’’’’’’²§’’’’’’’’’’’’’’’’’’’’ҧ’'’’’’’’’’’’’’’’’’’’’Ø’-’’’’’’’’’’’’’’’’’’’2Ø’%’’’’’’’’’’’’’’’’’’’bØ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Ø’’’’’’’’’’’’’’’’’’’’²Ø’’’’’’’’’’’’’’’’’’’’ŅØ’’’’’’’’’’’’’’’’’’’’ņØ’&’’’’’’’’’’’’’’’’’’’"©’,’’’’’’’’’’’’’’’’’’’R©’$’’’’’’’’’’’’’’’’’’’‚©’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’prefix: ’’’’’’’’’’’’’¢©’’’’’’’’’’’’’’’’’’’’Ā©’’’’’’’’’’’’’’’’’’’’ā©’’’’’’’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"Ŗ’’’’’’’’’’’’’’’’’’’’BŖ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bŖ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Ŗ’(’’’’’’’’’’’’’’’’’’’ĀŖ’’’’’’’’’’’’’’’’’’’’āŖ’’’’’’’’’’’’’’’’’’’’«’’’’’’’’’’’’’’’’’’’’"«’’’’’’’’’’’’’’’’’’’’B«’’’’’’’’’’’’’’’’’’’’’’ ENDSELECT ’’’’’’’’b«’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚«’$’’’’’’’’’’’’’’’’’’’²«’’’’’’’’’’’’’’’’’’’’Ņ«’"’’’’’’’’’’’’’’’’’’’¬’)’’’’’’’’’’’’’’’’’’’2¬’%’’’’’’’’’’’’’’’’’’’b¬’%’’’’’’’’’’’’’’’’’’’’¬’’’’’’’’’’’’’’’’’’’’²¬’K’’’’’’’’’’’’’’’’’’’­’.’’’’’’’’’’’’’’’’’’’2­’)’’’’’’’’’’’’’’’’’’’b­’E’’’’’’’’’’’’’’’’’’’²­’G’’’’’’’’’’’’’’’’’’’®’0’’’’’’’’’’’’’’’’’’’B®’7’’’’’’’’’’’’’’’’’’’‚®’’’’’’’’’’’’’’’’’’’’¢®’(’’’’’’’’’’’’’’’’’’’Ņ®’’’’’’’’’’’’’’’’’’’’ņ®’*’’’’’’’’’’’’’’’’’’’"Æ’3’’’’’’’’’’’’’’’’’’’bÆ’,’’’’’’’’’’’’’’’’’’’’Æ’0’’’’’’’’’’’’’’’’’’’ŅÆ’’’’’’’’’’’’’’’’’’’’ņÆ’#’’’’’’’’’’’’’’’’’’’"°’$’’’’’’’’’’’’’’’’’’’R°’9’’’’’’’’’’’’’’’’’’’’°’-’’’’’’’’’’’’’’’’’’’°’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ұ’’’’’’’’’’’’’’’’’’’’ā°’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"±’’’’’’’’’’’’’’’’’’’’B±’’’’’’’’’’’’’’’’’’’’b±’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’²±’’’’’’’’’’’’’’’’’’’’ұ’’’’’’’’’’’’’’’’’’’’ņ±’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"²’’’’’’’’’’’’’’’’’’’’B²’’’’’’’’’’’’’’’’’’’’b²’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’²²’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā²’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’"³’’’’’’’’’’’’’’’’’’’’B³’#’’’’’’’’’’’’’’’’’’’r³’’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²³’’’’’’’’’’’’’’’’’’’’ҳ’’’’’’’’’’’’’’’’’’’’ņ³’’’’’’’’’’’’’’’’’’’’“’"’’’’’’’’’’’’’’’’’’’B“’#’’’’’’’’’’’’’’’’’’’r“’’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’²“’(’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā“’"’’’’’’’’’’’’’’’’’’’µ’’’’’’’’’’’’’’’’’’’’2µ’’’’’’’’’’’’’’’’’’’’Rµ’5’’’’’’’’’’’’’’’’’’’’µ’'’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’µ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āµ’’’’’’’’’’’’’’’’’’’’¶’’’’’’’’’’’’’’’’’’’’"¶’’’’’’’’’’’’’’’’’’’’B¶’(’’’’’’’’’’’’’’’’’’’r¶’#’’’’’’’’’’’’’’’’’’’¢¶’’’’’’’’’’’’’’’’’’’’¶’1’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’·’’’’’’’’’’’’’’’’’’’’"·’’’’’’’’’’’’’’’’’’’’B·’’’’’’’’’’’’’’’’’’’’b·’(’’’’’’’’’’’’’’’’’’’’·’!’’’’’’’’’’’’’’’’’’’Ā·’’’’’’’’’’’’’’’’’’’’ā·’5’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"ø’’’’’’’’’’’’’’’’’’’’Bø’’’’’’’’’’’’’’’’’’’’bø’)’’’’’’’’’’’’’’’’’’’’ø’’’’’’’’’’’’’’’’’’’’¢ø’&’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’Ņø’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņø’’’’’’’’’’’’’’’’’’’’¹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2¹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R¹’'’’’’’’’’’’’’’’’’’’’‚¹’’’’’’’’’’’’’’’’’’’’¢¹’’’’’’’’’’’’’’’’’’’’¹’’’’’’’’’’’’’’’’’’’’ā¹’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’’ i ’’’’’’’’’’’’’’’’ŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’"ŗ’;’’’’’’’’’’’’’’’’’’’bŗ’’’’’’’’’’’’’’’’’’’’‚ŗ’’’’’’’’’’’’’’’’’’’’¢ŗ’$’’’’’’’’’’’’’’’’’’’Ņŗ’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’ņŗ’’’’’’’’’’’’’’’’’’’’»’’’’’’’’’’’’’’’’’’’’2»’’’’’’’’’’’’’’’’’’’’R»’>’’’’’’’’’’’’’’’’’’’’»’’’’’’’’’’’’’’’’’’’’²»’’’’’’’’’’’’’’’’’’’’Ņ»’-’’’’’’’’’’’’’’’’’’’¼’-’’’’’’’’’’’’’’’’’’’2¼’=’’’’’’’’’’’’’’’’’’’r¼’’’’’’’’’’’’’’’’’’’’’¼’’’’’’’’’’’’’’’’’’’’²¼’’’’’’’’’’’’’’’’’’’’Ҽ’F’’’’’’’’’’’’’’’’’’’"½’F’’’’’’’’’’’’’’’’’’’r½’F’’’’’’’’’’’’’’’’’’’½’F’’’’’’’’’’’’’’’’’’’¾’F’’’’’’’’’’’’’’’’’’’b¾’=’’’’’’’’’’’’’’’’’’’¢¾’’’’’’’’’’’’’’’’’’’’¾’3’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’æ’$’’’’’’’’’’’’’’’’’’’2æ’'’’’’’’’’’’’’’’’’’’’bæ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’æ’3’’’’’’’’’’’’’’’’’’’Ņæ’6’’’’’’’’’’’’’’’’’’’Ą’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RĄ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rĄ’’’’’’’’’’’’’’’’’’’’’Ą’+’’’’’’’’’’’’’’’’’’’ĀĄ’5’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’"Į’/’’’’’’’’’’’’’’’’’’’’’ } ’’’’’’’’’’’’’’’’bĮ’’’’’’’’’’’’’’’’’’’’‚Į’’’’’’’’’’’’’’’’’’’’¢Į’"’’’’’’’’’’’’’’’’’’’ŅĮ’’’’’’’’’’’’’’’’’’’’ņĮ’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2Ā’’’’’’’’’’’’’’’’’’’’RĀ’’’’’’’’’’’’’’’’’’’’rĀ’’’’’’’’’’’’’’’’’’’’’Ā’?’’’’’’’’’’’’’’’’’’’āĀ’9’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’"Ć’’’’’’’’’’’’’’’’’’’’BĆ’*’’’’’’’’’’’’’’’’’’’rĆ’&’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢Ć’’’’’’’’’’’’’’’’’’’’ĀĆ’’’’’’’’’’’’’’’’’’’’āĆ’4’’’’’’’’’’’’’’’’’’’"Ä’1’’’’’’’’’’’’’’’’’’’bÄ’0’’’’’’’’’’’’’’’’’’’¢Ä’"’’’’’’’’’’’’’’’’’’’ŅÄ’’’’’’’’’’’’’’’’’’’’ņÄ’0’’’’’’’’’’’’’’’’’’’2Å’?’’’’’’’’’’’’’’’’’’’‚Å’2’’’’’’’’’’’’’’’’’’’ĀÅ’’’’’’’’’’’’’’’’’’’’āÅ’(’’’’’’’’’’’’’’’’’’’Ę’C’’’’’’’’’’’’’’’’’’’bĘ’3’’’’’’’’’’’’’’’’’’’¢Ę’+’’’’’’’’’’’’’’’’’’’ŅĘ’5’’’’’’’’’’’’’’’’’’’Ē’7’’’’’’’’’’’’’’’’’’’RĒ’8’’’’’’’’’’’’’’’’’’’’Ē’8’’’’’’’’’’’’’’’’’’’ŅĒ’7’’’’’’’’’’’’’’’’’’’Č’0’’’’’’’’’’’’’’’’’’’RČ’<’’’’’’’’’’’’’’’’’’’’Č’A’’’’’’’’’’’’’’’’’’’āČ’>’’’’’’’’’’’’’’’’’’’"É’K’’’’’’’’’’’’’’’’’’’rÉ’"’’’’’’’’’’’n#off ("i")# ’’’.Zweck: Maximum zweier GrŚūen ’’’’’’’’’’’’’.Format: MAX(,) ’’’’’’’’’’’’’’>ErklŁrung: Liefert die grŚūere Zahl aus und ’’. IF > THEN ’’’’’’’’’ ’’’’’’’’’ ELSE ’’’’’’’’’’’’’’ ’’’’’’’’’ END IF ’’’’’’’’’’’>Beispiel: N X=MAX(1.0,2.0) (X = 2.0) ’’’’.Referenz: MIN, S. #to page ("MIN")# ’’’’’’’’’N#goal page ("MEND")##ib (2)#MEND#ie (2)##on ("i")##right#Anweisung#off ("i")# Zweck: Macro-Definition ’’Format: MEND ’’’’’’’’’’’’’’.ErklŁrung: MEND beendet eine Macro-Definition .Beispiel: MACRO SMOOTH(IN,DEL) ’’’’’’’’’’’’’> L SMOOTH.K=SMOOTH.J+DT*(IN.J-SMOOTH.J) ’’’’’’’ X /DEL ’’’’’’’ N SMOOTH=IN ’’’ MEND ’’’’’’’’’’’’’NProgramm: "dyn.mac" (diese Datei enthŁlt alle bisherigen Makros) ’’’’’’.Referenz: MACRO, S. #to page ("MACRO")# ’’’’’N#goal page ("MIN")##ib (2)#MIN#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’.Zweck: Minimum zweier GrŚūen ’’’’’’’’’’’’’.Format: MIN(,) ’’’’’’’’’’’’’’>ErklŁrung: Liefert die kleinere Zahl aus und ’>Beispiel: N X=MIN(1.0,2.0) (X = 1.0) ’’’’Programm: "dyn.forst7" ’’’’’’.Referenz: MAX, S. #to page ("MAX")# ’’’’’’’’’N#goal page ("N")##ib (2)#N#ie (2)##on ("i")##right#Anweisung#off ("i")# ’’’’’’.Zweck: Initialisierungsgleichung ’’’’’’’’’Format: N = ’’’NErklŁrung: Initialisert eine Variable mit dem Bezeichner auf den Wert’’> , d.h. es wird ihr ein Startwert zugewiesen. Beispiel: N X=1900 ’’’’’’’’’.Programm: "dyn.grashasenfuchs" ’’’’’’’’’’’’’’^#goal page ("NOISE")##ib (2)#NOISE#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’’’’’’’’’’’’’.Zweck: Pseudo-Zufallszahlen-Generator ’’’’Format: NOISE() ’’’’’^ErklŁrung: Diese Funktion liefert eine Pseudo-Zufallszahl zwischen -0.5 und +0.5’’’’’’’’’’’’’’^ und setzt einen neuen Startwert fŪr den Generator fest. Der Parameter’’’’’’’’’’’’’’. wird nicht ausgewertet. ’’’’Beispiel: N X=NOISE(0) ’’’’’’.Referenz: NORMRN, S. #to page ("NORMRN")# ’’’^#goal page ("NORMRN")##ib (2)#NORMRN#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’’’’’’’’’’’.Zweck: Pseudo-Zufallszahlen-Generator ’’’’.Format: NORM(,) ’’’’’’’’’’’’’NErklŁrung: Liefert einen Wert zwischen - * 2.4 und ’’’’ + * 2.4. ’’Beispiel: N X=NORM(1.0,10.0) .Referenz: NOISE, S. #to page ("NOISE")# ’’’’’>#ib (2)#NOTE#ie (2)##on ("i")##right#Anweisung#off ("i")# ’’’’Zweck: Kommentar ’’’’’’’’’.Format: NOTE ’’’’’’’’’’’’’^ErklŁrung: Die Zeilen, die mit NOTE gekennzeichnet sind, werden vom Compiler als’’’’’’’’’’’’’’N Kommentarzeilen erkannt und nicht beachtet. NOTE-Zeilen haben nur’’N dokumentierenden Charakter und sind fŪr den Programmlauf ohne jede’N Bedeutung. Dennoch sollte man, wenn immer mŚglich, Kommentare in’’’N sein DYNAMO-Programm einfŪgen, denn sie sind in DYNAMO anŻ’’’’’’’’’^ nŁhernd die einzige MŚglichkeit, ein Programm lesbar zu machen, damit’’’’’’’’’’’’’’N es auch nach lŁngerer Zeit noch korrigiert werden kann. ’’’’’’’’’’’.Beispiel: NOTE Dies ist eine Kommentarzeile ’.Programm: "dyn.welt/forrester" ’’’’’’’’’’’’’’N#goal page ("PLOT")##ib (2)#PLOT#ie (2)##on ("i")##right#Anweisung#off ("i")# >Zweck: Darstellen der Ergebnisse in Diagrammform ’’’’’’’’’>Format: PLOT [=][(, ’’’’’’> )][/...][,...] ’’’’’’’’’’’NErklŁrung: Durch diese Anweisung werden die GrŚūen nach PLTPER Zeiteinheiten’’N in einem Diagramm ausgegeben. Die Angabe eines Druckzeichens ist’’’^ nur bei zeichenorientierten Grafik erforderlich, denn bei hochauflŚsender’’’’’’’’’’^ Grafik werden die Graphen der verschiedenen GrŚūen durch unterschiedŻ’’’’’’’’’’’’’’^ liche Linientypen gezeichnet; fehlt bei der zeichenorientierten Grafik das’’’’’’’’’^ Druckzeichen, so werden die Graphen durch die Zahlen von 0...9 dargeŻ’’’’’’’’’’’’’’^ stellt. Bei "/" werden verschiedene, bei "," gleiche Skalen benutzt. ’’’’’’’’’’’’’’>Beispiel: PLOT GRAS=G(995,1005)/HASEN=H(85,115) ’’’’’’’’’’’’. X /FUECHS=F(15,35) ’’’’’’’’’’’’.Programm: "dyn.grashasenfuchs" ’’’’’’’’’’’’’’.Referenz: PRINT, S. #to page ("PRINT")# ’’’’’^#goal page ("POWER")##ib (2)#POWER#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’’’’’’’’’’’’’Zweck: Potenzfunktion ’’’’.Format: POWER(,) ’’’’’’’’’’’’.ErklŁrung: Liefert #u##e# ’’’’’’>Beipiel: N X=POWER(2, 2) (X = 4) ’’’’’.Referenz: SQRT, S. #to page ("SQRT")# ’’’’’’’^#goal page ("PRINT")##ib (2)#PRINT#ie (2)##on ("i")##right#Anweisung#off ("i")# ’’’’’’’’’’’’’’>Zweck: Darstellung der Ergebnisse in Tabellenform ’’’’’’’’.Format: PRINT [/...][,...] ’’’’’’’’’’NErklŁrung: Durch diese Anweisung werden die Werte () nach PRTPER’’’’’’’’^ Zeiteinheiten in einer Tabelle ausgegeben. Die Ausgabe kann umgeleitet’’’’’’’’’’’’’. werden (s. 'protokoll'). ’’’’’’’’’’>Beispiel: PRINT GBEV,BEV(1),BEV(40),BEV(60),BEV(63) ’’’’’’’’. X ,BEV(65),ZBEV,PRENT ’’’’’’’’’Programm: "dyn.bev" ’’’’’’’’’.Referenz: PLOT, S. #to page ("PLOT")# ’’’’’’’N#goal page ("R")##ib (2)#R#ie (2)##on ("i")##right#Anweisung#off ("i")# ’’’’’’Zweck: Rate-Gleichung ’’’’>Format: R.KL= ’’’’’’’’’’’’’’^ErklŁrung: Eine Rate-Gleichung stellt die VerŁnderungsrate in Bezug zu den aktuŻ’’’’’’’’’’’’’’. ellen Level-GrŚūen. ’’’’’’’’’’’’’’’.Beispiel: R FGRATE.KL=FGK*HASEN*FUECHS.K ’’’’.Programm: "dyn.grashasenfuchs" ’’’’’’’’’’’’’’.Referenz: A, S. #to page ("A")# ’’’’’’’’’’’’’. C, S. #to page ("C")# ’’’’’’’’’’’’’. L, S. #to page ("L")# ’’’’’’’’’’’’’>#ib (2)#RAMP#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’’’.Zweck: Wert nach Bedingung ’’’’’’’’’’’’’’’.Format: RAMP(,) ’’’’’’’’’’’’’NErklŁrung: Wenn TIME kleiner , dann liefert RAMP 0, andernfalls wird’’’> * (TIME - ) geliefert. ’’’’’’’’’’’’’. IF TIME < THEN ’’’’’’’’’’’’ 0 ’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’. * (TIME - ) ’’’’’’ END IF ’’’’’’’’’’’N#goal page ("RUN")##ib (2)#RUN#ie (2)##on ("i")##right#Anweisung#off ("i")# ’’Zweck: Ųberschrift ’’’’’’’Format: RUN <Ųberschrift> ’NErklŁrung: Gibt dem aktuellen Lauf eine Ųberschrift. Gleichzeitig ist’’’’’’’’’N "<Ųberschrift>.const" der Name eines Datenraums, in dem die KonŻ’’’^ stanten dieses Laufs aufgehoben werden (s. 'run' im Runtime-System). ’’’’’’’’’’’’’’Beispiel: RUN Ųberschrift ’’.Referenz: *, S. #to page ("*")# ’’’’’’’’’’’’’>#ib (2)#S#ie (2)##on ("i")##right#Anweisung#off ("i")# ’’’’’’’.Zweck: Supplementary-Gleichung ’’’’’’’’’’’>Format: S .K= ’’’’’’’’’’’’’’’NErklŁrung: Gleichungen fŪr HilfsgrŚūen werden durch Supplementary-Gleichungen’ ausgedrŪckt. ’’’’’’>Beispiel: S SCHADSTOFFVERHÖLTNIS.K=COZWEI.K/OZWEI.K ’’’’’’’’’>#ib (2)#SCLPRD#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’Zweck: Skalarprodukt ’’’’’NFormat: SCLPRD(,,,,) ’’’’’’’’’’’’’NErklŁrung: Liefert das Skalarprokukt der Tabellen u’’’’’’’’¢É’A’’’’’’’’’’’’’’’’’’’ņÉ’>’’’’’’’’’’’’’’’’’’’2Ź’4’’’’’’’’’’’’’’’’’’’rŹ’8’’’’’’’’’’’’’’’’’’’²Ź’9’’’’’’’’’’’’’’’’’’’ņŹ’’’’’’’’’’’’’’’’’’’’Ė’’’’’’’’’’’’’’’’’’’’2Ė’/’’’’’’’’’’’’’’’’’’’rĖ’"’’’’’’’’’’’’’’’’’’’¢Ė’’’’’’’’’’’’’’’’’’’’ĀĖ’(’’’’’’’’’’’’’’’’’’’ņĖ’H’’’’’’’’’’’’’’’’’’’BĢ’0’’’’’’’’’’’’’’’’’’’‚Ģ’3’’’’’’’’’’’’’’’’’’’ĀĢ’B’’’’’’’’’’’’’’’’’’’Ķ’’’’’’’’’’’’’’’’’’’’BĶ’5’’’’’’’’’’’’’’’’’’’‚Ķ’6’’’’’’’’’’’’’’’’’’’ĀĶ’5’’’’’’’’’’’’’’’’’’’Ī’6’’’’’’’’’’’’’’’’’’’BĪ’2’’’’’’’’’’’’’’’’’’’‚Ī’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Ī’’’’’’’’’’’’’’’’’’’’²Ī’’’’’’’’’’’’’’’’’’’’ŅĪ’ ’’’’’’’’’’’’’’’’’’’Ļ’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ install: ’’’’’’’’’’’BĻ’=’’’’’’’’’’’’’’’’’’’‚Ļ’’’’’’’’’’’’’’’’’’’’¢Ļ’?’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’ņĻ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ PROC inform: ’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’2Š’’’’’’’’’’’’’’’’’’’’RŠ’-’’’’’’’’’’’’’’’’’’’‚Š’7’’’’’’’’’’’’’’’’’’’’’ THEN ’’’’’’’’’’’’’ĀŠ’3’’’’’’’’’’’’’’’’’’’Ń’F’’’’’’’’’’’’’’’’’’’RŃ’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’rŃ’’’’’’’’’’’’’’’’’’’’’’ REP line; ’’’’’’’’’Ń’%’’’’’’’’’’’’’’’’’’’ĀŃ’$’’’’’’’’’’’’’’’’’’’ņŃ’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’2Ņ’&’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’bŅ’,’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’ĀŅ’’’’’’’’’’’’’’’’’’’’āŅ’>’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’’ line ’’’’’’’’’’’’’"Ó’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BÓ’(’’’’’’’’’’’’’’’’’’’rÓ’’’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’²Ó’’’’’’’’’’’’’’’’’’’’ŅÓ’’’’’’’’’’’’’’’’’’’’ņÓ’#’’’’’’’’’’’’’’’’’’’"Ō’’’’’’’’’’’’’’’’’’’’BŌ’’’’’’’’’’’’’’’’’’’’bŌ’:’’’’’’’’’’’’’’’’’’’¢Ō’<’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’āŌ’’’’’’’’’’’’’’’’’’’’Õ’’’’’’’’’’’’’’’’’’’’"Õ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BÕ’ ’’’’’’’’’’’’’’’’’’’rÕ’’’’’’’’’’’’’’’’’’’’’Õ’#’’’’’’’’’’’’’’’’’’’ĀÕ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āÕ’’’’’’’’’’’’’’’’’’’’Ö’’’’’’’’’’’’’’’’’’’’"Ö’#’’’’’’’’’’’’’’’’’’’RÖ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rÖ’’’’’’’’’’’’’’’’’’’’’Ö’’’’’’’’’’’’’’’’’’’’²Ö’’’’’’’’’’’’’’’’’’’’ŅÖ’#’’’’’’’’’’’’’’’’’’’×’$’’’’’’’’’’’’’’’’’’’2×’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R×’’’’’’’’’’’’’’’’’’’’‚×’’’’’’’’’’’’’’’’’’’’¢×’"’’’’’’’’’’’’’’’’’’’Ņ×’’’’’’’’’’’’’’’’’’’’ņ×’’’’’’’’’’’’’’’’’’’’Ų’/’’’’’’’’’’’’’’’’’’’RŲ’/’’’’’’’’’’’’’’’’’’’’’ FI FI ’’’’’’’’’Ų’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²Ų’’’’’’’’’’’’’’’’’’’’āŲ’’’’’’’’’’’’’’’’’’’’Ł’#’’’’’’’’’’’’’’’’’’’2Ł’’’’’’’’’’’’’’’’’’’’RŁ’’’’’’’’’’’’’’’’’’’’rŁ’0’’’’’’’’’’’’’’’’’’’²Ł’3’’’’’’’’’’’’’’’’’’’ņŁ’/’’’’’’’’’’’’’’’’’’’2Ś’-’’’’’’’’’’’’’’’’’’’’’ FI FI ’’’’’’’’bŚ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚Ś’#’’’’’’’’’’’’’’’’’’’²Ś’’’’’’’’’’’’’’’’’’’’ŅŚ’’’’’’’’’’’’’’’’’’’’ņŚ’(’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’ ENDPROC new; ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"Ū’)’’’’’’’’’’’’’’’’’’’RŪ’<’’’’’’’’’’’’’’’’’’’’Ū’!’’’’’’’’’’’’’’’’’’’ĀŪ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āŪ’=’’’’’’’’’’’’’’’’’’’"Ü’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BÜ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rÜ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Ü’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀÜ’I’’’’’’’’’’’’’’’’’’’Ż’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bŻ’#’’’’’’’’’’’’’’’’’’’’Ż’’’’’’’’’’’’’’’’’’’’²Ż’6’’’’’’’’’’’’’’’’’’’ņŻ’F’’’’’’’’’’’’’’’’’’’BŽ’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²Ž’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ß’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"ß’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Rß’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rß’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢ß’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņß’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņß’n’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bą’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢ą’C’’’’’’’’’’’’’’’’’’’’’ T1; ’’’’’’’’’’’’’’ņą’’’’’’’’’’’’’’’’’’’’’’ T1; ’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’2į’’’’’’’’’’’’’’’’’’’’Rį’’’’’’’’’’’’’’’’’’’’rį’’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’²į’’’’’’’’’’’’’’’’’’’’Ņį’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’ņį’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’’attest: ’’’’’’’’’’’’’2ā’@’’’’’’’’’’’’’’’’’’’‚ā’G’’’’’’’’’’’’’’’’’’’Ņā’4’’’’’’’’’’’’’’’’’’’ć’?’’’’’’’’’’’’’’’’’’’bć’5’’’’’’’’’’’’’’’’’’’¢ć’3’’’’’’’’’’’’’’’’’’’āć’;’’’’’’’’’’’’’’’’’’’"ä’:’’’’’’’’’’’’’’’’’’’bä’’’’’’’’’’’’’’’’’’’’‚ä’4’’’’’’’’’’’’’’’’’’’Āä’8’’’’’’’’’’’’’’’’’’’å’'’’’’’’’’’’’’’’’’’’’2å’0’’’’’’’’’’’’’’’’’’’rå’/’’’’’’’’’’’’’’’’’’’²å’'’’’’’’’’’’’’’’’’’’’āå’(’’’’’’’’’’’’’’’’’’’ę’8’’’’’’’’’’’’’’’’’’’Rę’(’’’’’’’’’’’’’’’’’’’‚ę’'’’’’’’’’’’’’’’’’’’’²ę’G’’’’’’’’’’’’’’’’’’’ē’F’’’’’’’’’’’’’’’’’’’Rē’3’’’’’’’’’’’’’’’’’’’’ē’;’’’’’’’’’’’’’’’’’’’Ņē’:’’’’’’’’’’’’’’’’’’’č’B’’’’’’’’’’’’’’’’’’’bč’"’’’’’’’’’’’’’’’’’’’’č’2’’’’’’’’’’’’’’’’’’’Ņč’D’’’’’’’’’’’’’’’’’’’"é’2’’’’’’’’’’’’’’’’’’’’’ ELIF NOT eof ’’’’’’’’’’ THEN stop ’’’’’’’’’’’’’FI; ’’’’’’’’’’’’’’’’’bé’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’} ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚é’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’ { TEST } ’’’’’’’’’’’’¢é’+’’’’’’’’’’’’’’’’’’’Ņé’*’’’’’’’’’’’’’’’’’’’ź’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NPACKET prolog (* Autor: P.Heyderhoff *) ’’’NDEFINES (* Date: 03.07.1987 *) ’’’ prolog, prolog again: LET { Stacksize parameter } ’’ limit = 800; ’’’’’’’’’’’’’LET { nil-POINTER } ’’’’’’’’’’LET { bootstrap rules } ’’’’’’N boot = """|"".""!"".""MOD"".""-"".""+"".""*"".""/"".bye.listing. ’’’’’’’’’Ncall(X).write(X).writeq(X).read(X).get(X).get0(X).put(X).incr(X). ’’’’’’’’’’’’.assertz(X).asserta(X).retract(X).var(X). ’’’’’>X IS Y.X=X.X<>Y.X<=Y.X==Y.X=..Y.clause(X,_).name(X,Y). ’’’’’’’.arg(X,Y,Z).functor(X,Y,Z).elan(X).elan(X,Y)"; .LET { bootstrap symbols, see: boot } ’’’’’’’’’N cons=1, cut=2, mod=3, {TOKEN: minus=4, plus=5, times=6, slash=7} ’’’’’’’’’. bye=8, list=9, call=10, xpar=11, ’’’’’’’’’> writ=12, wriq=13, read=14, get=15, get0=16, put0=17, ’’’’’> incr=18, ass=19, assa=20, retr=21, vari=22, ’’’’’’’’’’’’’’N is=23, ypar=24, dif=26, leq=27, eq=28, univ=29, clau=30, claupar=31, ’’’’’. nam=32, argi=33, zpar=34, func=35, ’’’’’’’ elan=36, build ins=33; ’’’LET { TOKENS } ’’’’’’’’’’’’’’’N stroke=1, exclamation=2, colon=3, minus=4, plus=5, times=6, slash=7, ’’’’’> underscore=8, less=9, equal=10, uneq=11, grt=12, eqeq=13, > eqdotdot=14, period=15, comma=17, semicolon=18, ’’’’’’’’’’N open paren=19, close paren=20, open bracket=21, close bracket=22, ’’’’’’’’> end of input=23, boldvar=24, number=25, identifier=26; ’’’LET { SYMBOLTYPES } ’’’’’’’’’’N tag=1, bold=2, num=3, tex=4, operator=5, delimiter=6, end of file=7, ’’’’’. within com=8, within tex=9; ’’’’’’’’’’’’’’.INT CONST integer:= -1, var:= -2; ’’’’’’’’’’’’LET TOKEN = INT; ’’’’’’’’’’’’’LET SYMBOLTYPE = INT; ’’’’’’’’LET SYMBOL = INT; ’’’’’’’’’’’’LET SYMBOLTABLE = THESAURUS; ’LET TERMS = INT; ’’’’’’’’’’’’’.{ LET TERMSCELL = STRUCT (TERM first, ’’’’’’’’. TERMS rest); } ’’’’’nd ,’’N wobei und den Ausschnitt aus der ersten Tabelle’’’’N angeben und den Startindex fŪr den Vektor in der zweiten’’’ Tabelle angibt. ’’’.Beispiel: GB.K=SCLPRD(BEV.K,15,44,GR,1)/2 ’’’Programm: "dyn.bev" ’’’’’’’’’N#goal page ("SIN")##ib (2)#SIN#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’>Zweck: Berechnung der trigonometrischen Funktion Sinus ’’’Format: SIN() ’’’’’’’NErklŁrung: Berechnet den Sinus von , welche im Bogenmaū angegeben’’’’’’’ wird. ’’’’’’’’’’’’’Beispiel: N X=SIN(0.5) ’’’’’’.Referenz: COS, S. #to page ("COS")# ’’’’’’’’’. COSD, S. #to page ("COSD")# ’’’’’’’. SIND, S. #to page ("SIND")# ’’’’’’’. TAN, S. #to page ("TAN")# ’’’’’’’’’. TAND, S. #to page ("TAND")# ’’’’’’’. ARCTAN, S. #to page ("ARCTAN")# ’’’. ARCTAND, S. #to page ("ARCTAND")# ’N#goal page ("SIND")##ib (2)#SIND#ie (2)##on ("i")##right#Funktion#off ("i")# ’>Zweck: Berechnung der trigonometrischen Funktion Sinus ’’’Format: SIND() ’’’’’’NErklŁrung: Berechnet den Sinus von , welche im Gradmaū angegeben wird. ’Beispiel: N X=SIND(45.0) ’’’.Referenz: COS, S. #to page ("COS")# ’’’’’’’’’. SIN, S. #to page ("SIN")# ’’’’’’’’’. COSD, S. #to page ("COSD")# ’’’’’’’. TAN, S. #to page ("TAN")# ’’’’’’’’’. TAND, S. #to page ("TAND")# ’’’’’’’. ARCTAN, S. #to page ("ARCTAN")# ’’’. ARCTAND, S. #to page ("ARCTAND")# ’>#ib (2)#SPEC#ie (2)##on ("i")##right#Anweisung#off ("i")# ’’’’Zweck: Lauf-Anweisung ’’’’ DT= .Format: SPEC { LENGTH= }[/...] ’. PLTPER= ’’’’’’’’’’’’. PRTPER= ’’’’’’’’’’’’NErklŁrung: Durch die Lauf-Anweisung werden die Systemkonstanten festgesetzt.’’> Sie darf pro Lauf nur einmal benutzt werden. ’’’’’’>Beispiel: SPEC DT=1/PLTPER=1/PRTPER=1/LENGTH=2000 ’’’’’’’’’’’NReferenz: C, S. #to page ("C")# (SPEC kann durch C-Def. ersetzt werden) ’N#goal page ("SQRT")##ib (2)#SQRT#ie (2)##on ("i")##right#Funktion#off ("i")# ’Zweck: Quadratwurzel ’’’’’Format: SQRT() ’’’’’’>ErklŁrung: Berechnet die Quadratwurzel aus ’’’’’’’’’’’’>Beispiel: N X=SQRT(4.0) (X = 2.0) ’’’.Referenz: POWER, S. #to page ("POWER")# ’’’’’>#ib (2)#STEP#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’’’.Zweck: Wert nach Bedingung ’’’’’’’’’’’’’’’.Format: STEP(,) ’’’’’’’’’’’’’NErklŁrung: Ist TIME kleiner , so wird 0 geliefert, ansonsten ’’. IF TIME < THEN ’’’’’’’’’’’’ 0.0 ’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’ ’’’’’’’’’ END IF ’’’’’’’’’’’.Beispiel: N X=STEP(12.0,12.0) ’’’’’’’’’’’’’’N#goal page ("SUM")##ib (2)#SUM#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’.Zweck: Summierung einer Tabelle ’’’’’’’’’’Format: SUM() ’’’’>ErklŁrung: Liefert die Summe der EintrŁge in einer Tabelle ’’’.Beispiel: A GESAMTBEV.K=SUM(BEV.K) ’’’’’’’’’’Programm: "dyn.bev" ’’’’’’’’’.Referenz: SUMV, S. #to page ("SUMV")# ’’’’’’’N#goal page ("SUMV")##ib (2)#SUMV#ie (2)##on ("i")##right#Funktion#off ("i")# ’.Zweck: Summierung einer Tabelle ’’’’’’’’’’.Format: SUMV(,,) ’’’NErklŁrung: Summierung der EintrŁge in der Tabelle von Element bis’’’’’ Element ’’’NBeispiel: A ZBEV.K=SUMV(BEV.K,16,59) TeilbevŚlkerung ’’’’’’’’’’’’’’’Programm: "dyn.bev" ’’’’’’’’’.Referenz: SUM, S. #to page ("SUM")# ’’’’’’’’’^#goal page ("SWITCH")##ib (2)#SWITCH#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’’’’’’’’’’’.Zweck: Wert nach Bedingung ’’’’’’’’’’’’’’’.Format: SWITCH(,,) ’’’NErklŁrung: Wenn der Parameter den Wert 0 hat, so wird ’’’’’’’’’N geliefert, andernfalls (gleichbedeutend mit FIFZE). ’’’’’’’. IF = 0 THEN ’’’’’’’’’’’’’’’ ’’’’’’’’’ ELSE ’’’’’’’’’’’’’’ ’’’’’’’’’ END IF ’’’’’’’’’’’>Beispiel: N X=SWITCH(1.0,2.0,3.0) (X = 2.0) ’’’’.Referenz: FIFZE, S. #to page ("FIFZE")# ’’’’’N#goal page ("T")##ib (2)#T#ie (2)##on ("i")##right#Anweisung#off ("i")# ’’’’’’.Zweck: Tabellen-Definition ’’’’’’’’’’’’’’’.Format: T =[/[....]] ’’^ErklŁrung: Durch die T-Anweisung wird eine Tabelle definiert, die Elemente werŻ’’’’’’’’’’’’’’’> den durch "/" getrennt hintereinander angegeben. ’’.Beispiel: T TABELLE=1/2/3/4/5/6/8/9/10/11/12 Programm: "dyn.bev" ’’’’’’’’’.Referenz: TABLE, S. #to page ("TABLE")# ’’’’’. TABHL, S. #to page ("TABHL")# ’’’’’^#goal page ("TABHL")##ib (2)#TABHL#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’’’’’’’’’’’’’Zweck: Tabellenfunktion ’’>Format: TABHL(,,,) ’’’’’’’’’’.ErklŁrung: IF < THEN ’’’’’’’’. () ’’’’’’’’’’’’N ELIF <= AND <= THEN ’’’’’’’’’’’’’’> TABLE (, , , ) ’’’ ELSE ’’’’’’’’’’’’’. () ’’’’’’’’’’’’ END IF ’’’’’’’’’’’.Beispiel: A BRMM.K=TABHL(BRMMT,MSL.K,0,5,1) ’.Programm: "dyn.welt/forrester" ’’’’’’’’’’’’’’.Referenz: T, S. #to page ("T")# ’’’’’’’’’’’’’. TABLE, S. #to page ("TABLE")# ’’’’’^#goal page ("TABLE")##ib (2)#TABLE#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’’’’’’’’’’’’’Zweck: Tabellenfunktion ’’>Format: TABLE(,,,,) ’’NErklŁrung: VerknŪpft die Werte aus mit , wobei den’’’^ ersten und den letzten Tabelleneintrag angibt. stellt’’’’’’’’’’’’’’. die Schrittweite dar. ’’’’’’’’’’’’’.Beispiel: T TABELLE=1/2/3/4/5 ’’’’’’’’’’’’’’> A BEISP.K=TABLE(TABELLE,X.K,2,4,1) ’’’’’’’’’’’’’’’.Programm: "dyn.welt/forrester" ’’’’’’’’’’’’’’.Referenz: T, S. #to page ("T")# ’’’’’’’’’’’’’. TABHL, S. #to page ("TABHL")# ’’’’’N#goal page ("TAN")##ib (2)#TAN#ie (2)##on ("i")##right#Funktion#off ("i")# ’’’>Zweck: Berechnung der trigonometrischen Funktion Tangens ’Format: TAN() ’’’’’’’NErklŁrung: Berechnet den Tangens von , welche im Bogenmaū angegeben’’’’’ wird. ’’’’’’’’’’’’’Beispiel: N X=TAN(0.5) ’’’’’.Referenz: COS, S. #to page ("COS")# ’’’’’’’’’. SIN, S. #to page ("SIN")# ’’’’’’’’’. COSD, S. #to page ("COSD")# ’’’’’’’. SIND, S. #to page ("TAN")# ’’’’’’’’. TAND, S. #to page ("TAND")# ’’’’’’’. ARCTAN, S. #to page ("ARCTAN")# ’’’. ARCTAND, S. #to page ("ARCTAND")# ’N#goal page ("TAND")##ib (2)#TAND#ie (2)##on ("i")##right#Funktion#off ("i")# ’>Zweck: Berechnung der trigonometrischen Funktion Tangens ’Format: TAND() ’’’’’’NErklŁrung: Berechnet den Tangens von , welche im Gradmaū angegeben’’’’’’ wird. ’’’’’’’’’’’’’Beispiel: N X=TAND(45.0) ’’’.Referenz: COS, S. #to page ("COS")# ’’’’’’’’’. SIN, S. #to page ("SIN")# ’’’’’’’’’. COSD, S. #to page ("COSD")# ’’’’’’’. TAN, S. #to page ("TAN")# ’’’’’’’’’. SIND, S. #to page ("SIND")# ’’’’’’’. ARCTAN, S. #to page ("ARCTAN")# ’’’. ARCTAND, S. #to page ("ARCTAND")# ’N#goalpage ("X")##ib (2)#X#ie (2)##on ("i")##right#Anweisung#off ("i")# ’’’’’’’Zweck: For.LET TERM = STRUCT (SYMBOL symbol, ’’’’’’’’’’’’. TERMS arguments, ’’’’’’’’’’. INT arity); ’’’’’’’’’’’’’’’LET CLAUSES = INT; ’’’’’’’’’’’.{ LET CLAUSESCELL = STRUCT (TERMS first, ’’’’’. CLAUSES rest); } ’LET FRAME = INT; ’’’’’’’’’’’’’.LET FRAMECELL = STRUCT (TERM call, ’’’’’’’’’’’. FRAME father, ’’’’’’’’> TERMS subgoals, { remaining } ’’’’’’’’> ENVIRONMENT environment, ’’’’’’’’’’’’’. EXPRESSIONS reset, ’’’> CLAUSES rest { potential rules }, ’’’’. FRAME level ); ’’’’’’’LET ENVIRONMENT = INT; ’’’’’’’>LET ENVIRONMENTCELL = STRUCT (SUBSTITUTION first, ’’’’’’’’’’’’> ENVIRONMENT rest); ’’’’’’’’’’’’’.LET SUBSTITUTION = STRUCT (TERM variable, ’’’’. TERM substitute, ’’. FRAME others); ’’’’NLET FRAMESTACK = STRUCT (FRAME frame, goalframe, removed goal, ’’’’’’’’’’’’’’’N INT last tp, last kp, last fp, last np); ’’’’’’’’’’’’LET EXPRESSIONS = INT; ’’’’’’’.LET EXPRESSION = STRUCT (TERM term, ’’’’’’’’’’. FRAME index); ’’’’’’’>TEXT VAR tcsymbol, tcarguments, tcarity, tcrest; INT VAR tp; ’.TEXT VAR kcfirst, kcrest; INT VAR kp; ’’’’’’’’.ROW limit FRAMECELL VAR fc; INT VAR fp; ’’’’’’.ROW limit ENVIRONMENTCELL VAR nc; INT VAR np; .ROW limit FRAMESTACK VAR fsc; INT VAR fsp; ’’’.ROW limit EXPRESSION VAR ec; INT VAR ep; ’’’’’.ROW limit CLAUSES VAR freec; INT VAR freep; ’’SYMBOL VAR look ahead value; ’.TEXT VAR look ahead symbol, ahead symbol; ’’.BOOL VAR look ahead empty, ahead empty; ’’’>INT VAR look ahead token, ahead symboltype; ’’’’’’’’’’’’’’SYMBOL VAR pattern; ’’’’’’’’’’TERMS VAR ts; TERM VAR t, t2, t3; ’’’’’’’’’’>CLAUSES VAR k, kl, knowledge base, candidates; ’’’’’’’’’’’’’’’.FRAME VAR root, cut level, res frame; ’’’’’’’’>SYMBOLTABLE VAR symboltable, reset symboltable; ’’’’’’’’’’’’’’FILE VAR file; ’’’’’’’’’’’’’’’NBOOL VAR from file, tracing, testing, found, quoting, free of errors, finish; >INT VAR i, j, reset tp, reset kp, reset freep, anonym value, > inference level, inference count, rule count; ’’’’’’’TEXT VAR command; ’’’’’’’’’’’’REAL VAR start time:= 0.0; ’’’PROC init globals: ’’’’’’’’’’’ tp := nil; kp:= nil; ’’’’’’ tracing:= FALSE; ’’’’’’’’’’ testing:= FALSE; ’’’’’’’’’’. symboltable:= empty thesaurus; ’’’’’’’’’’’’. reset symboltable:= symboltable; ’’’’’’’’’’ reset tp:= nil; ’’’’’’’’’’’ reset kp:= nil; ’’’’’’’’’’’ reset freep:= nil; ’’’’’’’’ knowledge base:= nil; ’’’’’ from file:= FALSE; ’’’’’’’’ inference count:= 0; ’’’’’’ tcsymbol:=""; ’’’’’’’’’’’’’ tcarguments:=""; ’’’’’’’’’’ tcarity:=""; ’’’’’’’’’’’’’’ tcrest:=""; ’’’’’’’’’’’’’’’ kcfirst:=""; ’’’’’’’’’’’’’’ kcrest:=""; ’’’’’’’’’’’’’’’ quoting:= TRUE ’’’’’’’’’’’’ENDPROC init globals; ’’’’’’’’PROC init prooftree: ’’’’’’’’’ root := nil; ’’’’’’’’’’’’’’ freep:= reset freep; ’’’’’’N fp:= nil; fsp:= nil; np:= nil; ep:= nil; tp:= reset tp; kp:= reset kp; ’’’’. symboltable:= reset symboltable; ’’’’’’’’’’ free of errors:= TRUE; ’’’’ candidates:= nil; ’’’’’’’’’ new (fp, root); ’’’’’’’’’’’> fc(root):= FRAMECELL:(t, nil, nil, nil, nil, nil, 0); ’’’’’ anonym value:= 0; ’’’’’’’’’ collect heap garbage; ’’’’’ finish:= FALSE ’’’’’’’’’’’’ENDPROC init proof tree; ’’’’’.PROC prolog (TEXT CONST knowledge): ’’’’’’’’’’ last param (knowledge); ’’’ init globals; ’’’’’’’’’’’’’ bootstrap; > IF exists (knowledge) THEN consult (knowledge) FI; ’’’’’’ IF free of errors ’’’’’’’ THEN prolog again ’’’’’’’’’ last param (knowledge). ’’’ TERMS VAR clauses:= nil; ’’ init proof tree; ’’’’’’’’’’> look ahead empty:= TRUE; ahead empty:= TRUE; ’’’’’’’’’’’’’’ scan (boot); ’’’’’’’’’’’’’’. WHILE look ahead <> end of input ’’’’’’’’’’ REP read clause; ’’’’’’’’’’ assertz (clauses); ’’’’ clauses:= nil ’’’’’’’’’ reset tp:= tp; ’’’’’’’’’’’’ reset kp:= kp; ’’’’’’’’’’’’. reset symboltable:= symboltable. ’’’’’’’’’’ read clause:  TERM VAR term; ’’’’’’’’’’’’ read term (term); ’’’’’’’’’ IF look ahead = period ’’ THEN remove token ’’’’’’’’’ insert term in clauses. ’’’ insert term in clauses: ’’’’’ TERMS VAR tmp; ’’’’’’’’’’’’ new tp (tmp); ’’’’’’’’’’’’’. replace(tcsymbol,tmp,term.symbol); ’’’’’’’’. replace(tcarguments,tmp,term.arguments); ’’. replace(tcarity,tmp,term.arity); ’’’’’’’’’’. replace(tcrest,tmp, clauses); ’’’’’’’’’’’’’ clauses:= tmp. ’’’’’’’’’’’’ remove token: ’’’’’’’’’’’’’’’ look ahead empty:= TRUE. ’’ENDPROC prolog; ’’’’’’’’’’’’’’>BOOL PROC prolog (TEXT CONST query, TEXT VAR answer): ’’’’’’’’ disable stop; ’’’’’’’’’’’’’ init prooftree; ’’’’’’’’’’’ read goals; ’’’’’’’’’’’’’’’. BOOL VAR result:= NOT prove; ’’’’’’’’’’’’’’. answer is value of last variable; ’’’’’’’’’ scan (query); ’’’’’’’’’’’’’> look ahead empty:= TRUE; ahead empty:= TRUE; ’’’’’’’’’’’’’’ from file:= FALSE; ’’’’’’’’ fc(root).subgoals:= nil; ’’. read terms (fc(root).subgoals); ’’’’’’’’’’’ IF look ahead = period ’’ THEN remove token ’’’’’’’’’. IF look ahead <> end of input ’’’’’’’’’’’N THEN syntax error ("unexpected characters after last goal") ’’’’’’’’’’’’’’’. answer is value of last variable: ’’’’’’’’’’’. IF fc(root).environment <> nil ’’’’’’’’’’’’N value (nc(fc(root).environment).first.variable, t, root); ’’’’’’’’’’’’> file:= sequential file (output, "$$"); ’’’’’’’’’’’’’’’ sysout ("$$"); ’’’’’’’. write term backward (t); ’’’’’’’’’’’’’ sysout (""); ’’’’’’’’’ input (file); ’’’’’’’’. getline (file, answer); ’’’’’’’’’’’’’’ forget ("$$", quiet) ’ ELSE answer:= "" ’’’’’’’’’’ remove token: ’’’’’’’’’’’’’’’ look ahead empty:= TRUE. ’’ENDPROC prolog; ’’’’’’’’’’’’’’PROC prolog again: ’’’’’’’’’’’ disable stop; ’’’’’’’’’’’’’> lernsequenz auf taste legen ("q","bye"13""); ’’’’’’’’’’’’’’ write (""13""10""5"?- "); ’ init proof tree; ’’’’> initiate read terms (fc(root).subgoals, "-"); ’’’’’’’ read goals; ’’’’’’’’’ prove goals; ’’’’’’’’ UNTIL finish ’’’’’’’’’’’’’’> lernsequenz auf taste legen ("q","break"13""). ’’’’’’’’’’’’ IF is error ’’’’’’’’’’’’’ THEN c:= "?" ’’’’’’’’’’’’’’. ELIF look ahead = open bracket ’’’’’’’’’’’’ THEN remove token; ’’’’’’’’ read consult list ’’’’. ELSE read terms (fc(root).subgoals); ’’’’’’. IF look ahead = period ’’’’’’’’’’’’’ THEN remove token ’’’’. IF look ahead <> end of input ’’’’’’N THEN syntax error ("unexpected characters after last goal") ’’’’’’’’’’ prove goals: > IF tracing THEN inference level:= 0; line FI; ’’’’’’’’’’’’ inference count:= 0; ’’’’’’ start time:= clock (0); ’’’. IF c <> "?" CAND prove ’’’’’’’’’’’’’. THEN IF tracing THEN line FI; ’’’’’’’’. write (" no"13""10""5"?- "); ’’. LEAVE prove goals ’’’’’’’’’’’’’’’> ELSE IF tracing THEN inference level:= 0 FI; ’’’’’’’’’> get cursor (i,j); IF i > 1 THEN line FI; ’’’’’’’’ IF is error ’’’N THEN put error; clear error; putline (""4""{cleop}); ’’’’’’’’’’’’. free of errors:= FALSE; ’’’’. sysout (""); sysin (""); ’’’> putline ("type '?' to get extsetzungszeile ’.Format: X ’’’’’’’’’’’’’^ErklŁrung: Eine in der vorangegangenen Zeile nicht beendete Anweisung wird nach’’’’’’’’’’’’’’’N einer X-Anweisung fortgesetzt (Es kŚnnen beliebig viele X-AnweisunŻ. gen nacheinander folgen). ’’’’’’’’’>Beispiel: T TABELLE=1/2/3/4/5/6/7/8/9/10/11/12/13/14 ’’’’’’’’. X /15/16/17/18/19 ’’’’’’’’Programm: "dyn.bev" ’’’’’’’’’N#goal page ("*")##ib (2)#*#ie (2)##on ("i")##right#Anweisung#off ("i")# ’’’’’’Zweck: Ųberschrift ’’’’’’’Format: * <Ųberschrift> ’’’>ErklŁrung: Gibt dem aktuellen Lauf eine Ųberschrift ’’’’’’’’’’Beispiel: * Ųberschrift ’’’’.Referenz: RUN, S. #to page ("RUN")# ’’’’’’’’’#ib#5. Makros in DYNAMO#ie# ’’^Der DYNAMO-Compiler bietet die MŚglichkeit, benutzereigene Funktionen zu definieŻ’’’’’’’’’’’’’Nren. Makros werden Łhnlich wie Refinements in ELAN in das DYNAMO-Programm’’’’’Neingesetzt. Beim EUMEL-DYNAMO-Compiler werden mit "zz" beginnende Namen’’’’’’’Ngeneriert, so daū Sie es vermeiden sollten, eigene Namen mit "zz" beginnen zu’^lassen. Weiterhin sollte man als Namen der aktuellen Parameter nicht die Namen der’’’’’’’’’’’’.formellen Parameter verwenden. ’’’’’’’’’’’’’’’NFolgende Makros werden standardmŁūig vom DYNAMO-Compiler zur VerfŪgung’’’’’’’’N macro delay1 (in, del) VerzŚgerung erster Ordnung ’’’’’’’’’’’’N macro delay3 (in, del) VerzŚgerung dritter Ordnung ’’’’’’’’’’’> Material ’’’’’’’’’’’’’’N macro delay3p (in, del, ppl) VerzŚgerung dritter Ordnung mit ’’’’’’’> Pipeline ’’’’’’’’’’’’’’N macro delinf3 (in, del) VerzŚgerung dritter Ordnung fŪr ’’’’’’’> Information ’’’’’’’’’’’N macro smooth (in, del) VerzŚgerung erster Ordnung fŪr ’’’’’’’’> Information ’’’’’’’’’’’.#ib#5.1. Insertieren von Makros#ie# ’’’’’’’’’’NMakros werden durch folgende Prozedur in die Compilertabelle eingetragen: ’’’’.PROC insert macro (TEXT CONST filename): ’’’’’^ Zweck: FŪgt die in der Datei 'filename' enthaltenen Makros in die Makrotabelle ein.’’’’’’’’’^ Die Datei sollte zweckmŁūigerweise nur Makrodefinitionen enthalten. Es ist’’’’’’’’’’’N - im Gegensatz zu normalen DYNAMO-Programmen - nicht nŚtig, die’’’’’’N Systemkonstanten zu definieren (die Standard-Makros sind in der DateiN "dyn.mac" enthalten; diese Datei kann beliebig ergŁnzt werden). ’’’’’.#ib#5.2. Aufbau eines Makros#ie# ’’’’’’’’’’’’’^Makros beginnen in DYNAMO immer mit der Anweisung MACRO (s. auch Seite #to page ("MACRO")#)’’’^und enden mit MEND (s. Seite #to page ("MEND")#). Dazwischen steht ein Makrorumpf, bestehend’’Naus einer oder mehreren DYNAMO-Gleichungen. Beim Makroaufruf kŚnnen, soweit’’’^vorher definiert, Parameter angegeben werden, jedoch rekursiv aufrufen kann man’’’’’’’’’’’’’’’Makros nicht. .Beispiel: MACRO SMOOTH (IN, DEL) ’’’’’’’’’’’> L SMOOTH.K = SMOOTH.J + DT * (IN.J - SMOOTH.J)  X /DEL ’’’’’’’. N SMOOTH = IN ’’’’’’’’’’’’’’ MEND ’’’’’’’’’’’’’NLokale Variablen in Makros beginnen mit einem $-Zeichen. Der Makro-Expandierer^ersetzt das $-Zeichen durch "zz" gefolgt von einer Zahl. Aus diesem Grund sollen’’’’’’’’’’’’’’.eigene Namen nicht mit "zz" beginnen. ’’’’’’’’NFalls Sie eine Fehlermeldung bekommen, die sich auf einen mit "zz" beginnendenNNamen bezieht, sollten Sie den Fehler in dem entsprechenden Makro suchen. ’’’’^Achtung: #off ("b")#Makros sollten nur von fortgeschrittenden DYNAMO-Programmieren’’’’’’’’’’’’N verwendet werden, da Makros Eigenschaften von Refinements (textuelle’N Ersetzung) und Prozeduren (ParameterŪbergabe) vereinigen. Der daraus’N folgende Effekt ist nicht ganz einfach zu durchschauen. ’’’’’’’’’’’’’.#ib#6. Erweiterung des Sprachumfangs#ie# ’’’’’NWŁhrend Makros in DYNAMO geschrieben werden, ist es ferner mŚglich, die Menge’>der Funktionen mittels der Sprache ELAN zu erweitern. ’’’’’’’’.Hierbei geht man wie folgt vor: ’’’’’’’’’’’’’’> 1. Schreiben einer Funktion in ELAN (nŁheres siehe unten) ’’N 2. Einbinden der Funktion in die Tabellen des DYNAMO-Compilers ’’’’’’’’’’’’’N 2.1. Einschreiben des Namens der Funktion, gefolgt von den Typen der EinŻ’N gabeparameter in die bestehende Datei "dyn.std", wobei folgende Typen existieren: ’’’’’’’’’. r real (Datentyp REAL) ’’’’’’’’. t table (Datentyp TAB) ’’’’’’’’^ Abgeschlossen wird die "dyn.std"-Datei durch die Zeichensequenz "/*". ’’’’’’’’’’’’’’’ Beispiele: ’’’’’’’’’. power rr table trrrr /* ’’’’’’’’’’’N 2.2. Laden der Funktion(en) mittels der Prozedur 'init std ("dyn.std")' ’’NEine zur Einbindung in den DYNAMO-Compiler vorgesehene ELAN-Funktion wird’’’’’.unter Beachtung gewisser Regeln erstellt: ’’’’N 1. Die deklarierten ELAN-Prozeduren dŪrfen nur Parameter vom Typ REAL oder’’> TAB besitzen oder gŁnzlich ohne Parameter sein. ’’’’’’’’’> 2. Der Typ des Resultaten muū vom Typ REAL sein. ’’’’’’’’’’’^Zur Manipulation von Tabellen wurde der Datentyp TAB geschaffen, auf welchen man’’’’’’’’’’’’’’>wie auf das Standard-Vektorpaket zugreifen kann. ’’’’’’’’’’’’’. REAL PROC abs (REAL CONST a): ’’’’’’’’’’’’ IF a < 0.0 THEN ’’’’’’’’ END PROC abs; ’’’’’’’’’’’’> PROC sumv (TAB CONST tab, REAL CONST erstes, letztes): ’’’ REAL VAR summe := 0.0; ’ INT VAR i; ’’’’’’’’’’’’’> FOR i FROM int (erstes) UPTO int (letztes) REPEAT ’’’’’’. summe INCR wert (tab, i) ’’’’’’’’’’’’’ END REPEAT; ’’’’’’’’’’’’ END PROC sumv ’’’’’’’’’’’.#ib#6.1. FŪr fortgeschrittende ELAN-ProgramŻ’’ mierer#ie# ’’’’’’’’’’’’’’NDer Quellcode des EUMEL-DYNAMO-Compilers wird mit ausgeliefert. Daher’’’’’’’’’NkŚnnen EinschrŁnkungen (s. 3.2 Abweichungen gegenŪber dem Sprachstandard)’’’’’^leicht beseitigt werden. Wem z.B. die Anzahl der Gleichungen (950) zu wenig ist, der’’’’’’’’’’Nkann im Quelltext des Compilers diesen Wert (annŁhernd) beliebig nach oben hin’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’dynamo handbuch.index’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’planations"); ’’N putline ("type ';' to try next alternative"); ’’’’’’’’’’’’’’> putline ("type any other key to stop") ’’’’’. ELSE write answers ’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’. get cursor (i, j); ’’’’’’’’’’’’’’. write (""10""10""13""5"?- "); ’’’ getchar (c); ’’’’ TEXT VAR c; ’’’’’. SELECT pos ("?;",c) OF ’’’’’’’’’’. CASE 1: write ("?"); ’’’’’’’’’. inform ’’’’’’’’’’’’’’’> CASE 2: write (""13""5""3""3""); ’’’’’’’’’’’’’. get cursor (j, k); ’’’. cursor (i, k); ’’’’’’’. putline (";"); ’’’’’’’N OTHERWISE IF c >= " " COR c = ""27"" THEN push (c) FI; ’’’’’’’’’. LEAVE prove goals ’’’’ END SELECT; ’’’’’. IF tracing THEN line FI; ’’’’’’’’ IF is error ’’’N THEN put error; clear error; putline (""4""{cleop}) ’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’ write answers: ’’’’’’’’’’’’’’ write (" "); ’’’’’’’’’’’’. IF fc(root).environment = nil ’’’’’’’’’’’> THEN IF free of errors THEN put ("yes") ELSE put ("no") FI . ELSE write environment list (root) ’’’’’’’’ remove token: ’’’’’’’’’’’’’’’ look ahead empty:= TRUE. ’’ENDPROC prolog again; ’’’’’’’’>PROC prolog: prolog (last param) ENDPROC prolog; ’’’’’’’’’’’’’BOOL PROC prove: ’’’’’’’’’’’’’ enable stop; ’’’’’’’’’’’’’’ initialize prove; ’’’’’’’’’ find potential candidates.  handle remaining subgoals: ’’. { all subgoals to the left are solved } ’’’ IF subgoals remain ’’’’’’ THEN get candidates ’’’’’’’. ELSE LEAVE prove WITH FALSE ’’’’’’’’’’’’’’’ find potential candidates: ’’. REP try one candidate PER; TRUE. ’’’’’’’’’ try one candidate: ’’’’’’’’’’N { all candidates tried do not unify with the current goal } ’’’’’’’’’’’’’’’> IF head of one candidate unifies with the current goal ’’ THEN push frame; ’’’’’’’’’’. handle remaining subgoals ’’’’’’’’’’’’> ELSE backtrack to the parent of the current goal ’’’’’’’’’’. backtrack to the parent of the current goal: > { none of the candidates unify with the current goal } ’’’’ IF prooftree exhausted ’’ THEN LEAVE prove WITH TRUE  ELSE pop frame ’’’’’’’’’’’’. prooftree exhausted: fsp = 1. ’’’’’’’’’’’’’’’ initialize prove: ’’’’’’’’’’’ TERM VAR curr call; ’’’’’’’. FRAME VAR curr frame, top frame; ’’’’’’’’’’ EXPRESSIONS VAR last ep; ’’ IF fsp = nil ’’’’’’’’’’’’ THEN curr frame:= root; ’’’ push frame; ’’’’’’’’’’. handle remaining subgoals ’’’’’’’’’’’’. ELSE IF tracing THEN line FI; ’’’’’’’’’’’’’> backtrack to the parent of the current goal ’’’’’’’’’’> head of one candidate unifies with the current goal: ’’’’’’’’> son { curr frame is the resulting next son }. ’’’’’’’’’’’’ subgoals remain: ’’’’’’’’’’’’. select frame {(curr frame, curr call)}. ’’’ fsp INCR 1; ’’’’’’’’’’’’’’’. fsc(fsp).frame:= curr frame; ’’’’’’’’’’’’’’ fsc(fsp).goalframe:= nil; ’ fsc(fsp).last tp:= tp; ’’’’ fsc(fsp).last kp:= kp; ’’’’ fsc(fsp).last fp:= fp; ’’’’ fsc(fsp).last np:= np. ’’’’ { fsp <> nil } ’’’’’’’’’’’’. top frame:= fsc(fsp).frame; ’’’’’’’’’’’’’’’. curr frame:= fc(top frame).father; ’’’’’’’’. reinsert current call as subgoal; ’’’’’’’’’. curr call:= fc(top frame).call; ’’’’’’’’’’’. candidates:= fc(top frame).rest; ’’’’’’’’’’. cut level:= fc(top frame).level; ’’’’’’’’’’ tp:= fsc(fsp).last tp; ’’’’ kp:= fsc(fsp).last kp; ’’’’ fp:= fsc(fsp).last fp; ’’’’ np:= fsc(fsp).last np; ’’’’ fsp DECR 1; ’’’’’’’’’’’’’’’> IF tracing CAND inference level > 0 CAND NOT testing ’’’’> THEN write (""13""5""3""5""); inference level DECR 1 ’’’’’’. undo bindings (fc(top frame).reset). ’’’’’’. reinsert current call as subgoal: ’’’’’’’’’’. IF fsc(fsp).goalframe <> nil ’’’’’’’’’’’’N THEN fc(fsc(fsp).goalframe).subgoals:= fsc(fsp).removed goal ’’’’’’’’’’’’’’ select frame: ’’’’’’’’’’’’’’’ IF next call ’’’’’’’’. THEN LEAVE select frame WITH TRUE ’’’’’. curr frame:= fc(curr frame).father ’’’’. UNTIL curr frame = nil PER; ’’’’’’’’’’’’’’’. ts:= fc(curr frame).subgoals; ’’’’’’’’’’’’’ IF ts = nil ’’’’’’’’’’’’’ THEN FALSE  ELSE remove subgoals; TRUE  remove subgoals: ’’’’’’’’’’’’N curr call:= TERM:(tcsymbolISUBts, tcargumentsISUBts, tcarityISUBts); ’’’’’’> fc(curr frame).subgoals:= (tcrestISUB(ts)) ; ’’’’’’’’’’’’’’. fsc(fsp).goalframe:= curr frame; ’’’’’’’’’’. fsc(fsp).removed goal:= ts. ’’’’’’’’’’’’’’’ get candidates: ’’’’’’’’’’’’’ initialize clauses; ’’’’’’’ WHILE more knowledge ’’’’’’> REP find next clause candidate in knowledge base PER ’’’’’N { candidates = a list of clauses which may be unifiable with curr call } .  initialize clauses: ’’’’’’’’’. fc(curr frame).level:= cut level; ’’’’’’’’’ cut level:= curr frame; ’’’ IF curr call.arity = var N THEN IF bound (curr call, curr frame, curr call, ts) THEN FI; ’’’’’’’’’’’. IF curr call.arity = var ’’’’’’’’’’’N THEN take goal itself as candidate; LEAVE get candidates ’’’’’’’’’’’’’ k:= knowledge base; ’’’’’’’ found:= FALSE; ’’’’’’’’’’’’ candidates:= nil. ’’’’’’’’’. take goal itself as candidate: ’’’’’’’’’’’’’’ new kp (candidates); ’’’’’’> replace (kcfirst, candidates, goal itself); ’’’’’’’’’’’’’’’. replace (kcrest, candidates, nil). ’’’’’’’’ goal itself:  new tp (ts); ’’’’’’’’’’’’’’. replace(tcsymbol,ts,curr call.symbol); ’’’’> replace(tcarguments,ts, curr call.arguments); ’’’’’’’’’’’’’. replace(tcarity,ts, curr call.arity); ’’’’’ replace(tcrest,ts, nil); ’’> find next clause candidate in knowledge base: ’’’’’’’’’’’’’’’> IF (tcsymbolISUB((kcfirstISUB(k)) )) = curr call.symbol ’ THEN found:= TRUE; ’’’’’’’’N IF (tcarityISUB((kcfirstISUB(k)) )) = curr call.arity ’’’’’’’’’’’’’. THEN insert clause in candidates ’’’’’ ELIF found  THEN LEAVE get candidates ’ k:= (kcrestISUB(k)) . ’’’’’ more knowledge: k <> nil. ’’’ insert clause in candidates:  kl:= candidates; ’’’’’’’’’’ new kp (candidates); ’’’’’’. replace(kcfirst,candidates,kcfirstISUBk); ’. replace(kcrest, candidates, kl). ’’’’’’’’’’N { If rules has n sons, then this refinement will return TRUE the first ’’’’> n times, it is called and FALSE forever after. ’’’’’’’’’’N IF son then curr frame has become a frame for the next son. ’’’’’’’’’’’’’> So this refinement helps to construct the prooftree. ’’’’ IF candidates = nil ’’’’’ THEN FALSE  ELSE create next son ’’’’’’ create next son: ’’’’’’’’’’’’ initialize son; ’’’’’’’’’’’. REP try to unify curr call with candidates . UNTIL candidates exhausted PER; ’’’’’’’’’’’ { not unified } ’’’’’’’’’’’ forget son. ’’’’’’’’’’’’’’’ initialize son: ’’’’’’’’’’’’’ last ep:= ep; ’’’’’’’’’’’’’ new (fp, res frame); ’’’’’’. fc(res frame).environment:= nil. ’’’’’’’’’’. try to unify curr call with candidates: ’’’’’. k:= (kcfirstISUB(candidates)) ; ’’’’’’’’’’’ unify (curr call, ’’’’’’’’’ curr frame, ’’’’’’’’N TERM:(tcsymbolISUBk, tcargumentsISUBk, tcarityISUBk), ’’’’’’’’’’’’’’ res frame) ’’’’’’’’’> IF tracing THEN trace unification results FI; ’’’’’’’’ apply rule; ’’’’’’’’’’ fill result frame ’’’’. ELSE remove curr call from candidates ’’’’’. candidates exhausted: candidaį’’’’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘‚a€ė’’GD0’’’’00HM’’’’q‚’namo.index’’’a€’’’’’’’’’’’’G’’’’’’’’’’’’’’’’’’€’’’’’’’’’’’’’’’’’’’’’’#head# ’’’’’’’’’’’’’’”€’’’’’’’’’’’’’’’’’’’’Į€’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ #bottom odd# ’’’’’’’’’E’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’E’’’’’’’’’’’’’’’’’’’ၒ’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’‚’'’’’’’’’’’’’’’’’’’’’’’ Funktionen ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1‚’7’’’’’’’’’’’’’’’’’’’’’#table# ’’’’’’’’’’’’’’’A 21 ’’’’’’’’’’’’’’’’ ABS 21 ’’’’’’’’’’’’’’ ARCTAND 22 ’’’’’’’’’’C 23 ’’’’’’’’’’’’’’’’ CLIP 23 ’’’’’’’’’’’’’ COSD 24 ’’’’’’’’’’’’’ EXP 25 ’’’’’’’’’’’’’’ FIFGE 25 ’’’’’’’’’’’’ FIFZE 26 ’’’’’’’’’’’’ FLOOR 26 ’’’’’’’’’’’’ FOR 27 ’’’’’’’’’’’’’’ FRAC 27 ’’’’’’’’’’’’’L 28 ’’’’’’’’’’’’’’’’LN 28 ’’’’’’’’’’’’’’’ LOG2 29 ’’’’’’’’’’’’’ LOG10 29 ’’’’’’’’’’’’ MACRO 30 ’’’’’’’’’’’’ MAX 31 ’’’’’’’’’’’’’’ MEND 31 ’’’’’’’’’’’’’ MIN 32 ’’’’’’’’’’’’’’N 32 ’’’’’’’’’’’’’’’’ NOISE 33 ’’’’’’’’’’’’ NORMRN 33 ’’’’’’’’’’’ NOTE 34 ’’’’’’’’’’’’’ PLOT 35 ’’’’’’’’’’’’’ POWER 35 ’’’’’’’’’’’’ PRINT 36 ’’’’’’’’’’’’R 36 ’’’’’’’’’’’’’’’’ RAMP 37 ’’’’’’’’’’’’’ RUN 37 ’’’’’’’’’’’’’’S 38 ’’’’’’’’’’’’’’’’ SCLPRD 38 ’’’’’’’’’’’ SIN 39 ’’’’’’’’’’’’’’ SIND 39 ’’’’’’’’’’’’’ SPEC 40 ’’’’’’’’’’’’’ SQRT 40 ’’’’’’’’’’’’’ STEP 41 ’’’’’’’’’’’’’ SUM 41 ’’’’’’’’’’’’’’ SUMV 42 ’’’’’’’’’’’’’ SWITCH 42 ’’’’’’’’’’’T 43 ’’’’’’’’’’’’’’’’ TABHL 43 ’’’’’’’’’’’’ TABLE 44 ’’’’’’’’’’’’ TAN 44 ’’’’’’’’’’’’’’ TAND 45 ’’’’’’’’’’’’’X 45 ’’’’’’’’’’’’’’’’* 46 ’’’’’’’’’’’’’’’’ #table end#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’''’’’’’’’’’’’’’’#block##pageblock##page (52)# #center#DYNAMO-Compiler ’’’’’’N#center#____________________________________________________________ ’’’’’’’’’N#center#____________________________________________________________ ’’’’’’’’’GMD #right#DYNAMO - % ’’’’’’’’#bottom even# N#center#____________________________________________________________ ’’’’’’’’’DYNAMO - % #right#GMD ’’’’’’’’.Anhang - Ųbersicht Ūber Anweisungen und’’’’’’’>#clear pos##l pos (0.0)##r pos (10.0)##fillchar (" ")# ’’’’’’’dynamo handbuch.index’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ dyn.inserter’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į‰a€ė’’5 L’’’’<<< L L= Mųž’’'’’’’ dyn.inserter’7<’’’’’’’’’’’’’’’’*+’’’’’’’’’’’’’’’’’’a€’(t line ("DY")’’±€’J’’’’’’’’’’’’’’’’’’’’’ END REPEAT;’’09’’‰ checkoff; ;;;;0’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’ၒ’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’!‚’$’’’’’’’’’’’’’’’’’’’Q‚’’’’’’’’’’’’’’’’’’’’q‚’"’’’’’’’’’’’’’’’’’’’”‚’*’’’’’’’’’’’’’’’’’’’т’%’’’’’’’’’’’'’’”‰arnings on ;4;’’’’’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’!ƒ’0’’’’’’’’’’’’’’’’’’’aƒ’IF id(0) < #3!’’‘ƒ’"’’’’’’’’’’’’’’’’’’’Įƒ’#’’’’’’’’’’’’’’’’’’’ńƒ’$’’’’’’’’’’’’’’’’’’’!„’#’’’’’’’’’’’’’’’’’’’Q„’%’’’’’’’’’’’’’’’’’’’„’$’’’’’’’’’’’’’’’’’’’±„’%’’’’’’’’’’’9"’’Į…’*tline ("Die($’’†’* .es ("DYN(7$’’…’’’’’’’’’’’8&%’’1…’ ’’’’’’’’’%:&’’‘…’'fetch (ALL '’’Įˆ IF highes6#(’’A†’’’’’’’’’’’’*)’’a†’J’’’’’’’’’’’)*’’’’line;’’’’’’’’8/’’’’’’’’’’’’’’’’,,’’’’’’’’’’’’’’’’--’’’’’’’’’’’’’’’’..’’’’’’’’’’’’’’’’//’’’’’’’’’’’’’’’’2’’±†’ id(0) < 1811’’ц’ THEN insert22’’’’FI ;’’’’’’’’’43’’‡’$’’’’’’’’’’’35’’1‡’* insert (a355’’’’ FI ;’’’’’’’:(6’’ń‡’+IF ye’’’’’’<7’’‰’1’’’’’’’’’’’+%8’’a‡ FI.’’’’’’’’"9’’Į‡’tline ("Bit&6:’’!ˆ’ line ("Das;’’‘ˆ check on.line7<’’Q‰’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Nput line ("DYNAMO 3.3+ wird generiert");M (* Christian Szymanski *)’’’’N hole dateien vom archiv (* 10.08.88 *)’’’’insert ("dyn.tool");’’’’’’’’’’insert ("dyn.33");’’’’’’’’’’’’insert ("dyn.vec");’’’’’’’’’’’insert ("dyn.proc");’’’’’’’’’’insert ("dyn.rts");’’’’’’’’’’’insert ("dyn.plot+");’’’’’’’’’insert ("dyn.plot"); ’’’’’’’’’insert ("dyn.print");’’’’’’’’’command dialogue (TRUE);’’’’’’.do ("init errors (""dyn.errors"")");’’’’’’’’’’do ("init std (""dyn.std"")");.do ("insert macro (""dyn.mac"")");’’’’’’’’’’’’.do ("graphic (yes (""mit CGA-Grafik""))");’’’’.putline ("dynamo-system generiert"); ’’’’’’’’’noch nicht alle dateien da:’’’> THESAURUS VAR alle dateien := empty thesaurus;’’’’’’’’’’’’’’. IF id(0) < 182 THENn, "dyn.tool");’’’’’’’’’’. insert (alle dateien, "dyn.33");’’’’’’’’’’’’. insert (alle dateien, "dyn.vec");’’’’’’’’’’’. insert (alletes = nil. ’’’’’ fp DECR 1; FALSE. ’’’’’’’’’ fill result frame: ’’’’’’’’’’. ts:= (kcfirstISUB(candidates)) ; ’’’’’’’’’’. fc(res frame):= FRAMECELL:(curr call, ’’’’’. curr frame, ’’’’. tcrestISUBts, ’’> fc(res frame).environment, ’’’’’. last ep, ’’’’’’’> (kcrestISUB(candidates)) , ’’’’’. cut level); ’’’’ curr frame:= res frame; ’’’ LEAVE son WITH TRUE. ’’’’’’. remove curr call from candidates: ’’’’’’’’’’’. candidates:= (kcrestISUB(candidates)) ; ’’’> LEAVE try to unify curr call with candidates. ’’’’’’’’’’’’’. SELECT curr call.symbol OF ’’’’’’’’’’’’’’> CASE cons: {cons, to construct lists, see PROC unify} ’’’’’N CASE cut: fc(res frame):= FRAMECELL:(curr call, curr frame, nil, ’’’’’’’’’N fc(res frame).environment, last ep, nil, cut level); ’’’’’’’’’. curr frame:= res frame; ’’’’’’’’. FOR ts FROM fp DOWNTO cut level . REP fc(ts).rest:= nil PER; ’’’’’. LEAVE son WITH TRUE ’’’’’’’’’’’’. CASE bye: IF curr call.arity = 0 ’’’’’’’. THEN push (""13""); ’’’’’’’’’’’’. finish:= TRUE ’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’N CASE list: IF curr call.arity = 0 COR curr call.arity = 1 ’’’’’’’’’’’’’’’. THEN found:= TRUE; ’’’’’’’’’’’’’. IF curr call.arity = 0 ’’. THEN pattern:= cut ’’’’’’’’> ELSE value (argfirst, t, curr frame); ’’’’’. pattern:= t.symbol ’’’ FI; ’’’’’’’> write knowledgebase (knowledge base) ’’’’’’ FI ’’’’’’’’’’’’’. CASE call: undo bindings (last ep); ’’’’’’’ new tp (ts); ’’’> replace(tcrest,ts, fc(curr frame).subgoals); ’’’. fc(curr frame).subgoals:= ts; ’’> value (argfirst, t, curr frame); ’’’’’’’’’’’’’’’> t.arguments:= revers (t.arguments); ’’’’’’’’’’’’. replace(tcsymbol,ts, t.symbol); > replace(tcarguments,ts, t.arguments); ’’’’’’’’’’. replace(tcarity,ts, t.arity); ’’. LEAVE son WITH TRUE ’’’’’’’’’’’’. CASE xpar: {X parameter of call} ’’’’’’’’’’. CASE writ: IF curr call.arity = 1 ’’’’’’’> THEN value (argfirst, t, curr frame); ’’’’’’’’’’. quoting:= FALSE; ’’’’’’’’’’> write term backward (t); write (" "); ’’’’’. quoting:= TRUE ’’’’’’’’’’’’ FI ’’’’’’’’’’’’’. CASE wriq: IF curr call.arity = 1 ’’’’’’’> THEN value (argfirst, t, curr frame); ’’’’’’’’’’> write term backward (t); write (" ") ’’’’’’ FI ’’’’’’’’’’’’’. CASE read: IF curr call.arity <> 1 ’’’’’’ THEN ’’’’’’’’’’’. ELIF argfirst.arity = var ’’’’’’. THEN initiate read terms (ts, ’’> name (symboltable,argfirst.symbol)); ’’’. read term (t); ’’’’’’’’’’’’N nc(fc(curr frame).environment).first.substitute:= t ’’’’’’’N ELSE syntax error ("read parameter must be variable") ’’’’’’’’’’ FI ’’’’’’’’’’’’’ CASE get0, get: ’’’’’’’’’’’. IF curr call.arity <> 1 ’’’’’’ THEN ’’’’’’’’’’’. ELIF argfirst.arity = var ’’’’’’. THEN getchar (command); ’’’’’’’’> WHILE curr call.symbol = get ’’’’’’’’’’’’’’. CAND code(command) < 32 ’’’. REP getchar (command) PER; . t.arity:= integer; ’’’’’’’’. t.arguments:= nil; ’’’’’’’’. t.symbol:= code (command); N nc(fc(curr frame).environment).first.substitute:= t ’’’’’’’N ELSE syntax error ("get parameter must be variable") ’’’’’’’’’’’ FI ’’’’’’’’’’’’’> CASE put0: value (argfirst, t, curr frame); ’’’’’’’’’’’’’’’> IF curr call.arity = 1 CAND t.arity = integer . THEN write (code (t.symbol)) ’’’ FI ’’’’’’’’’’’’’. CASE incr: IF curr call.arity = 1 ’’’’’’’ THEN ’’’’’’’’’’’> value(argfirst, t, curr frame); ’’’’’’’’’’’. t.symbol INCR 1; ’’’’’’’’’’. IF t.arity = integer ’’’’. CAND argfirst.arity = var ’’> THEN k:= fc(curr frame).environment; ’’’’’’> nc(k).first.substitute:= t; ’’’’’’’’’’N ELSE syntax error ("integer variable expected") ’’’’’’’’’’’ FI FI ’’’’’’’’. CASE ass: IF curr call.arity = 1 ’’’’’’’> THEN value (argfirst,t,currframe); ’’’’’’’’’’’’’. IF t.symbol = nil ’’’’’’’. CAND t.arguments > nil ’’’’> THEN assertz (t.arguments); ’’’’’’’’’’’’’’’. IF free of errors ’’. THEN reset tp:= tp; ’’. reset kp:= kp; ’’> reset symboltable:= symboltable ’ FI ’’’N ELSE syntax error ("parameter must be a list") ’’’’’’’’’’’’ FI FI ’’’’’’’’. CASE assa: IF curr call.arity = 1 ’’’’’’’> THEN value (argfirst,t,currframe); ’’’’’’’’’’’’’. IF t.symbol = nil ’’’’’’’. CAND t.arguments > nil ’’’’> THEN asserta (t.arguments); ’’’’’’’’’’’’’’’. IF free of errors ’’. THEN reset tp:= tp; ’’. reset kp:= kp; ’’> reset symboltable:= symboltable ’ FI ’’’N ELSE syntax error ("parameter must be a list") ’’’’’’’’’’’’ FI FI ’’’’’’’’. CASE retr: IF curr call.arity = 1 ’’’’’’’> THEN value (argfirst,t,currframe); ’’’’’’’’’’’’’. IF t.symbol = nil ’’’’’’’. CAND t.arguments > nil ’’’’. THEN i:= rule count; ’’’’’’> retract (t.arguments); ’’’’’’’’’’’’’’’. IF i <> rule count ’> THEN remove curr call from candidates  FI ’’’N ELSE syntax error ("parameter must be a list") ’’’’’’’’’’’’ FI FI ’’’’’’’’. CASE vari: IF curr call.arity = 1 ’’’’’’’> THEN value (argfirst, t, curr frame); ’’’’’’’’’’. IF t.arity <> var ’’’’’’’> THEN remove curr call from candidates ’’’’’ FI ’’’’’’’’ FI ’’’’’’’’’’’’’. CASE is: IF curr call.arity = 2 ’’’’’’’. THEN disable stop; ’’’’’’’’’’’’’N t.symbol:= arith (TERM:(tcsymbolISUBargrest, ’’’’’’’’’’’’’’N tcargumentsISUBargrest, ’’’’’’’’’’’N tcarityISUBargrest), ’’’’’’’’’’’’’’> curr frame); ’’’’’’’’’’’’N IF is error THEN put error; clear error FI; ’’’’’’’’’’’’’’’. enable stop; ’’’’’’’’’’’’’’. t.arity := integer; ’’’’’’’. t.arguments:= nil; ’’’’’’’’N IF unify (argfirst, curr frame, t, curr frame) ’’’’’’’’’’. THEN LEAVE dateien, "dyn.proc");’’’’’’’’’’. insert (alle dateien, "dyn.rts");’’’’’’’’’’’. insert (alle dateien, "dyn.plot+");’’’’’’’’’. insert (alle dateien, "dyn.plot");’’’’’’’’’’. insert (alle dateien, "dyn.print");’’’’’’’’’. highest entry (alle dateien - all) > 0 CAND hole dateien vom archiv:’’’’’’ release (archive);;’’’’’’’ fetch (ALL archive - all, ar IF ALL archive - all <> em. fetch (ALL archive - all, archive);’’’’’’’Nputline ("Die Pakete werden insertiert.");AND yes ("DYNAMO-Diskette eingelegt’. highest entry (alle dateien - all) > 0 .’’’’hole dateien vom archiv:’’’’’’NWHILE noch nicht alle dateien da REPEAT (* Christian Szymanski *)’’’’IF id(0) < 182 THE’’’’’’’’’’’’. THEN insert ("dyn.kleiner182") F’’’’’’’’’’’’. insert (alle dateien, "dyn.tool");’’’’’’’’’’. insert (alle dateien,"dyn.kleiner182")’’’’.yes ("DYNAMO-Diskette eingelegt")’’’’’’’’’’’’’.yes ("DYNAMO-Diskette eingelegt")’’’’’’’’’’’’’.putline ("Bitte warten !");legt")’’’’’’’’’’’’’. IF yes ("DYNAMO-Diskette eingelegt") THEN’’’. archive ("dynamo");t frei !");’’’’’’’’’’’’> IF highest entry (ALL archive - all)= empty thesaurus THEN. putline ("2") ELSE putline("0") FI ;’’’’N IF highest entry (ALL archive - all) > 0 THENNNNNNNNNNNNNNNNNNN’’’’’’’’’’’> IF highest entry (ALL archive - all) > 0 THEN’’’’’’’’’’’’’. putline ("2") ELSE putline("0") FI ;’’’’checkoff; ff ;;;;;;;;;;;’’’’’’warnings on ; check on.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ dyn.errors’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ į’’’’’’’’’’’’’’’’’’’’’’’Ą’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1Ša€ė’’FC! ’’’’! ! GM’’’’’’ dyn.errors’’’’’’’’’’’’’’’’’’’F’’’’’’’’’’’’’’’’’’a€’’’’’’’’’’’’’’’’’’’’€’’’’’’’’’’’’’’’’’’’’”€’’’’’’’’’’’’’’’’’’’’Į€’’’’’’’’’’’’’’’’’’’’ń€’’’’’’’’’’’’’’’’’’’’’’ '(' erwartet’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’ ’’’’’’’’’’’’’’’’’’’a’1’’’’’’’’’’’’’’’’’’’”’'’’’’’’’’’’’’’’’’’’’с’,’’’’’’’’’’’’’’’’’’’‚’,’’’’’’’’’’’’’’’’’’’1‚’/’’’’’’’’’’’’’’’’’’’q‚’’’’’’’’’’’’’’’’’’’’‘‚’ ’’’’’’’’’’’’’’’’’’’Į‚’’’’’’’’’’’’’’’’’’’’į‚’’’’’’’’’’’’’’’’’’’’’’ ',' erwartet’’’’’’’’’ƒ’%’’’’’’’’’’’’’’’’’’’1ƒ’’’’’’’’’’’’’’’’’’’’’’ '=' erwartet’’’’’’’’’Qƒ’’’’’’’’’’’’’’’’’’’’qƒ’’’’’’’’’’’’’’’’’’’’‘ƒ’’’’’’’’’’’’’’’’’’’’±ƒ’’’’’’’’’’’’’’’’’’’’у’’’’’’’’’’’’’’’’’’’’ńƒ’’’’’’’’’’’’’’’’’’’’!„’%’’’’’’’’’’’’’’’’’’’Q„’’’’’’’’’’’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’‘„’’’’’’’’’’’’’’’’’’’’±„’’’’’’’’’’’’’’’’’’’’ф’’’’’’’’’’’’’’’’’’’’ń„’"’’’’’’’’’’’’’’’’’’’!…’’’’’’’’’’’’’’’’’’’’A…’’’’’’’’’’’’’’’’’’’’a…’'’’’’’’’’’’’’’’’’’’’‘…’&’’’’’’’’’’’’’’’’’’’Į…’#’’’’’’’’’’’’’’’’’’’ń…’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’1†’’’’’’’’’’’’’’’’’’’’a†’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’”†’0’’’’’’’’’’’’’’’’’’’ᆒ’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’!‡’’’’’’’’’’’’’’’’’’’’A‡’’’’’’’’’’’’’’’’’’’’a‡’(’’’’’’’’’’’’’’’’’’’‘‡’’’’’’’’’’’’’’’’’’’’±‡’#’’’’’’’’’’’’’’’’’’’ᇒ’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’!ˆ’’’’’’’’’’’’’’’’’’’’Aˆ’+’’’’’’’’’’’’’’’’’’’qˆ’+’’’’’’’’’’’’’’’’’’’’’ ')' erwartet’’’’’’’’’”ˆ’'’’’’’’’’’’’’’’’’’’’ш’&’’’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’!‰’’’’’’’’’’’’’’’’’’’’A‰’’’’’’’’’’’’’’’’’’’’a‰’’’’’’’’’’’’’’’’’’’’‰’!’’’’’’’’’’’’’’’’’’’±‰’"’’’’’’’’’’’’’’’’’’’ቒC’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’gleichung doppelt definiert’’’doppelte initialisierung’’’’’’falscher zeilentyp’’’’’’’’’’’’.verschachtelte makro-definition’’’’’’’’’’’’’’’makro-name erwartet’’’’’’’’’’’formaler parameter erwartet’’’.')' nach parameterliste erwartet’’’’’’’’’’’’’’>bei auxiliaries nur subskription mit '.k' erlaubt’’’’’’’’’’’’’.bei konstanten-definition name erwartet’’’’’’’.bei levels nur subskription mit '.k' erlaubt’’.bei rates nur subskription mit '.kl' erlaubt’’>bei table-definition keine subskription erlaubt’’’’’’’’’’’’’’’x - befehl hier nicht erlaubt’.bei for-definition name erwartet’’’’’’’’’’’’’’'=' nach for-variable erwartetbereichsangabe erwartet’’’’’’’.lokale gleichung nur in makro erlaubt’’’’’’’’’bei definition name erwartet’’index nicht korrekt’’’’’’’’’’’')' nach indizierung erwartet’prtper nicht definiert’’’’’’’’pltper nicht definiert’’’’’’’’'/' oder ',' bei plot erwartet.name als plotparameter erwartet’’’’’’’’’’’’’’’.doppelte scale-angabe in einer gruppe’’’’’’’’’erste scale-angabe erwartet’’’zweite scale-angabe erwartet’’')' nach scale-angabe erwartetprintparameter nicht definiertprintparameter erwartet’’’’’’’.time darf nur initialisiert werden’’’’’’’’’’’’dt nicht definiert’’’’’’’’’’’’length nicht definiert’’’’’’’’.bei konstanten-definition zahl erwartet’’’’’’’.bei initialisierung konstante erwartet’’’’’’’’.levels muessen initialisiert werden’’’’’’’’’’’konstante bei table erwartet’’'/' oder ',' erwartet’’’’’’’’’.table-definition ohne benutzung’’’’’’’’’’’’’’’simultane gleichungen’’’’’’’’’faktor erwartet’’’’’’’’’’’’’’’>time muss mit '.j' oder '.k' subskribiert werden’’’’’’’’’’’’’’symbol nicht definiert’’’’’’’’funktion nicht definiert’’’’’’unzulaessige indizierung’’’’’’falsche parameteranzahl’’’’’’’.falsches trennsymbol zwischen parametern’’’’’’als parameter table erwartet’’.falscher parameter in tablefunktion’’’’’’’’’’’zuviele aktuelle parameter’’’’')' nach makroaufruf fehlt’’’’rekursiver makroaufruf’’’’’’’’.bei n-gleichung keine subskription erwartet’’’.falsche subskription in auxiliary-gleichung’’’.falsche subskription in level-gleichung’’’’’’’.falsche subskription in rate-gleichung’’’’’’’’for-variable nicht definiert’’konstante erwartet’’’’’’’’’’’’falsches real-format’’’’’’’’’’zu viele plot-parameter’’’’’’’.bei run-befehl dateiname erwartet’’’’’’’’’’’’’.als noise-parameter zahl erwartet ’’’’’’’’’’’’Nplot- und draw-Anweiungen dŪrfapply rule ’’’’’ FI FI; ’’’’’’’> remove curr call from candidates ’’’’’’’’’’’’’’’. CASE ypar: {Y parameter of is} ’’’’’’’’’’’’. CASE dif: IF curr call.arity = 2 CAND ’’. unify (argfirst, ’’’’’’’’’’’’’’’. curr frame, ’’’’’’’’’’’’’> TERM:(tcsymbolISUBargrest, ’’’’’’’’’’’’’’> tcargumentsISUBargrest, ’’’’’’’’’’’> tcarityISUBargrest), ’’’’’’’’’’’’’’. curr frame) ’’’’’’’’’’’’’> THEN remove curr call from candidates ’’’’’’’’’’ FI ’’’’’’’’’’’’’. CASE leq: IF curr call.arity = 2 ’’’’’’’. THEN get operands; ’’’’’’’’’’’’’. IF t.arity = integer ’’’’> THEN IF t.symbol <= t2.symbol ’’’’’’’’’’’. THEN LEAVE apply rule  FI ’’’> ELIF name (symboltable, t.symbol) <= ’’’’> name (symboltable, t2.symbol) ’’’’’’’’. THEN LEAVE apply rule ’’’’’ FI FI; ’’’’’’’> remove curr call from candidates ’’’’’’’’’’’’’’’. CASE eq: IF curr call.arity = 2 ’’’’’’’. THEN get operands; ’’’’’’’’’’’’’. IF NOT ( t = t2 ) ’’’’’’’> THEN remove curr call from candidates ’’’’’ FI FI ’’’’’’’’. CASE univ: IF curr call.arity = 2 ’’’’’’’. CAND np > fsc(fsp).last np ’’’’’ THEN ’’’’’’’’’’’. get operands; ’’’’’’’’’’’’’> IF t2.arity = var CAND t.arity >= 0 ’’’’’. THEN new tp (ts); ’’’’’’’’’> replace (tcsymbol,ts,t.symbol); ’’’’’’> replace (tcarguments, ts, nil); ’’’’’’> replace (tcarity,ts,0); ’’’’’’’’’’’’’’N replace (tcrest,ts,revers(t.arguments)); ’’’’’’’’’’’’’N nc(np).first.substitute.arguments:= ts; ’’’’’’’’’’’’’’> nc(np).first.substitute.symbol:= nil; N nc(np).first.substitute.arity:= t.arity + 1 ’’’’’’’’’’> ELIF t.arity = var CAND t2.arity > 0 ’’’’’’. CAND t2.symbol <= cons ’’’’. THEN np DECR 1; ’’’’’’’’’’’> t2. arguments:= revers(t2.arguments); > nc(np).first.substitute.symbol:= ’’’’’> tcsymbol ISUB t2.arguments; ’’’’’’’’> nc(np).first.substitute.arguments:= ’’> tcrest ISUB t2.arguments; ’’’’’’’’’’N nc(np).first.substitute.arity:= t2.arity - 1; ’’’’’’’’. np INCR 1 ’’’’’’’’’’’’N ELSE syntax error ("wrong parameter after =..") ’’’’’’’’’’’ FI FI ’’’’’’’’ CASE clau: get operands; ’’. IF curr call.arity = 2 ’’’’’’’ THEN ’’’’’’’’’’’. IF t.arity < 0 ’’’’’’’’’’N THEN syntax error ("clause with wrong parameter") ’’’’’’’’’. ELSE find clause; ’’’’’’’’’> k:= tcrest ISUB (kcfirstISUBk); ’’’’’’. t3.symbol:= nil; ’’’’’. t3.arguments:= k; ’’’’> t3.arity:= no of terms (k); ’’’’’’’’’’> IF NOT unify (t2, res frame, ’’’’’’’> t3, curr frame) ’’’’’’> THEN remove curr call from candidates  FI ’’’ FI ’’’’’’’’ FI ’’’’’’’’’’’’’> CASE claupar: { anonymous parameter of clause } ’’’’’’’’’’’. CASE nam: IF curr call.arity = 2 ’’’’’’’. THEN get operands; ’’’’’’’’’’’’’. IF t.arity = var ’’’’’’’’. CAND t2.symbol = nil ’’’’’’. THEN command:= ""; ’’’’’’’’. k:= t2.arguments; ’’’’N REP command:= code (tcsymbolISUBk) + command; ’’’’’’’’. k:= tcrestISUBk ’’. UNTIL k <= nil PER; ’’N t.symbol:= link (symboltable, command); ’’’’’’’’’’’’’’. IF t.symbol = 0 ’’’’N THEN insert (symboltable, command, t.symbol); ’’’’’’’’ FI; ’’. t.arity:= 0; ’’’’’’’’’. t.arguments:= nil; ’’’N nc(fc(curr frame).environment).first.substitute:= t ’’. ELIF t2.arity = var ’’’’’’’. CAND t.arity = 0 ’’’’’’’’’’N THEN command:= name (symboltable, t.symbol); ’’’’’’’’’’’’’’. ts:= nil; ’’’’’’’’’’’’> FOR k FROM 1 UPTO length(command) ’’’’. REP new tp (i); ’’’’’’. IF ts = nil ’’’’. THEN ts:= i ’’’’’’> ELSE replace (tcrest, j, i) ’’’’’’. FI; ’’’’’’’’’’’’’’. j:= i; ’’’’’’’’’’’> replace (tcrest, i, nil); ’’’’’’’’> replace (tcarity, i, integer); ’’’> replace (tcarguments, i, nil); ’’’N replace (tcsymbol, i, code (command SUB k)) ’’’’’’ PER; ’> t3.arity:= length(command); ’’’’’’’’’’. t3.arguments:= ts; ’’’. t3.symbol:= nil; ’’’’’N IF unify (t2, res frame, t3, curr frame) THEN FI ’’’’’N ELSE syntax error ("name insufficient parameters") ’’’’’’’’ FI FI ’’’’’’’’ CASE argi: get operands; ’’. IF curr call.arity = 3 ’’’’’’’. THEN k:= argrest; ’’’’’’’’’’’’’’> value (TERM:(tcsymbolISUB(tcrestISUB(k)), ’N tcargumentsISUB(tcrestISUB(k)), ’’’’’’’’’’’’’’> tcarityISUB(tcrestISUB(k))), ’ t3, . curr frame); ’’’’’’’> IF t.arity <> integer COR t2.arity <= 0 ’> COR t.symbol <= 0 COR t.symbol > t2.arity N THEN syntax error ("arg with wrong parameter") ’’’’’’’’’’’’ ELSE ’’’’’’N FOR k FROM t2.arity DOWNTO ( t.symbol + 1) ’’’’’’’’’’’> REP IF t2.arguments <= nil ’’’’’’’’N THEN syntax error ("out of range"); ’’’’’’’’’’’’’> LEAVE apply rule ’’’’’’’’’’’. FI; ’’’’’’’’’’’’’N t2.arguments:= tcrestISUB(t2.arguments) ’’’’’’’’’ PER; ’. IF t3.arity = var ’’N THEN nc(fc(curr frame).environment).first.substitute ’N := TERM:(tcsymbolISUBt2.arguments, ’’’’’’’’’’’’’’N tcargumentsISUBt2.arguments, ’’’’’’’’’’’N tcarityISUBt2.arguments) ’’’’’’’’’’’’’’’N ELIF NOT unify (TERM:(tcsymbolISUBt2.arguments, ’’’’’’N tcargumentsISUBt2.arguments, ’’’N tcarityISUBt2.arguments), ’’’’’’> en im Programm nicht gemischt werden ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’dyn.mac’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’ų’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±…a€ė’’.+",’’’’",",/M’’’’’’dyn.mac’’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’a€’’’’’’’’’’’’’’’’’’’’€’’’’’’’’’’’’’’’’’’’’”€’%’’’’’’’’’’’’’’’’’’’р’’’’’’’’’’’’’’’’’’’’’’mend’’’’’’’’’’’’’’’’’ń€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’)’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’(’’’’’’’’’’’’’’’’’’’с’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’‚’&’’’’’’’’’’’’’’’’’’’A‚’’’’’’’’’’’’’’’’’’’’a‚’’’’’’’’’’’’’’’’’’’’’’mend’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’”‚’’’’’’’’’’’’’’’’’’’’Į‚’*’’’’’’’’’’’’’’’’’’’ń‚’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’1ƒ’(’’’’’’’’’’’’’’’’’’’aƒ’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’”ƒ’&’’’’’’’’’’’’’’’’’’’у’’’’’’’’’’’’’’’’’’’’ńƒ’’’’’’’’’’’’’’’’’’’’„’ ’’’’’’’’’’’’’’’’’’’’’mend’’’’’’’’’’’’’’’’’A„’’’’’’’’’’’’’’’’’’’’a„’2’’’’’’’’’’’’’’’’’’’”„’’’’’’’’’’’’’’’’’’’’Į„’,’’’’’’’’’’’’’’’’’’’’’ n $lv2=in’’’’’’’’ń„’*’’’’’’’’’’’’’’’’’’’’’ n $lv1=in’’’’’’’’!…’’’’’’’’’’’’’’’’’’’’’’mend’’’’’’’’’’’’’’’’’A…’’’’’’’’’’’’’’’’’’’’a…’.’’’’’’’’’’’’’’’’’’’‘…’’’’’’’’’’’’’’’’’’’’’’mend’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’macro delay1(in,del)’’’’’’’’’’a delay1.k=$lv.k/del’’’’’’.l $lv.k=$lv.j+dt*(in.jk-delay1.j)’’’’’’’’’n $lv=del*in’’’’’’’’’’’’’’macro delay3(in,del)’’’’’’’’’’a $dl.k=del/3’’’’’’’’’’’’’.l $lv3.k=$lv3.j+dt*($rt2.jk-delay3.j)’’’’’n $lv3=$dl*in’’’’’’’’’’’’’r $rt2.kl=$lv2.k/$dl.k’’’’.l $lv2.k=$lv2.j+dt*($rt1.jk-$rt2.jk)’’’’’’n $lv2=$lv3’’’’’’’’’’’’’’’r $rt1.kl=$lv1.k/$dl.k’’’’.l $lv1.k=$lv1.j+dt*(in.jk-$rt1.jk)’’’’’’’’n $lv1=$lv3’’’’’’’’’’’’’’’a delay3.k=$lv3.k/$dl.k’’’macro delay3p(in,del,ppl)’’’’’a delay3p.k=$lv3.k/$dl.k’’.l $lv3.k=$lv3.j+dt*($rt2.jk-delay3p.j)’’’’n $lv3=$dl*in’’’’’’’’’’’’’r $rt2.kl=$lv2.k/$dl.k’’’’.l $lv2.k=$lv2.j+dt*($rt1.jk-$rt2.jk)’’’’’’n $lv2=$lv3’’’’’’’’’’’’’’’r $rt1.kl=$lv1.k/dl.k’’’’’.l $lv1.k=$lv1.j+dt*(in.jk-$rt1.jk)’’’’’’’’n $lv1=$lv3’’’’’’’’’’’’’’’a $dl.k=del/3’’’’’’’’’’’’’.a ppl.k=$lv3.k+$lv2.k+$lv1.k’’’’’’’’’’’’’’macro dlinf3(in,del)’’’’’’’’’’>l dlinf3.k=dlinf3.j+dt*($lv2.j-dlinf3.j)/$dl.j’’’’’’’’’’’’n dlinf3=in’’’’’’’’’’’’’’’.l $lv2.k=$lv2.j+dt*($lv1.j-$lv2.j)/$dl.j’’.l $lv1.k=$lv1.j+dt*(in.j-$lv1.j)/$dl.j’’’’a $dl.k=del/3’’’’’’’’’’’’’macro smooth(in,del)’’’’’’’’’’.l smooth.k=smooth.j+dt*(in.j-smooth.j)/deln smooth=in’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’dyn.std’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įa€ė’’ #8’’’’#8#8 M’’’’’’dyn.std’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’a€’;’’’’’’’’’’’’’’’’’’’”€’’’’’’’’’’’’’’’’’’’’Į€’’’’’’’’’’’’’’’’’’’’ဒ’’’’’’’’’’’’’’’’’’’ń€’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’A’F’’’’’’’’’’’’’’’’’’’‘’G’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’>abs r arctan r arctand r cos r cosd r exp r floor r frac r ’’’initializerandom r random r ’’ln r log2 r log10 r ’’’’’’’’’’max rr min rr power rr round r ’’’’’’’’’’’’’.sin r sind r sqrt r tan r tand r ’’’’’’’’’’’’’Nclip rrrr fifge rrrr switch rrr fifze rrr noise r normrn rr pulse rrr ’’’’’’’’Nramp rr sclprd trrtr step rr sumv trr sum t table trrrr tabhl trrrr /* ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ curr frame, ’’’’’’’’’’. t3, ’’> curr frame) ’’’’’’’’’’> THEN remove curr call from candidates  FI ’’’ FI ’’’’’’’’ FI ’’’’’’’’’’’’’. CASE zpar: {z parameter of arg} ’’’’’’’’’’’. CASE func: IF curr call.arity = 3 ’’’’’’’ THEN ’’’’’’’’’’’. get operands; ’’’’’’’’’’’’’. k:= argrest; ’’’’’’’’’’’’’’> value (TERM:(tcsymbolISUB(tcrestISUB(k)), ’N tcargumentsISUB(tcrestISUB(k)), ’’’’’’’’’’’’’’> tcarityISUB(tcrestISUB(k))), ’ t3, . curr frame); ’’’’’’’. IF t2.arity = var ’’’’’’’. THEN IF t3.arity = var ’’ THEN ’> t2.symbol:= argfirst.symbol; ’’’’. t2.arity := 0; ’’N nc(nc(fc(curr frame).environment).rest).first. ’’> substitute:= t2; ’’’’’’’’’’’’’’> k:= tcrestISUB(k); ’’’’’’’’’’’’’’> t3.symbol:= argfirst.arity; ’’’’’> t3.arity := integer; ’’’’’’’’’’’’N nc(fc(curr frame).environment).first. ’’’’’’’’’’’> substitute:= t3 ’’’’’’’’’’’’’’’> ELIF t3.arity = integer ’’’’’’’’’’’’’’> CAND t.arity = t3.symbol ’’’’’’’’’’’’’. THEN t.arity:= 0; ’’’’> t.arguments:= nil; ’’’’’’’’’’’’’’N nc(fc(curr frame).environment).first. ’’’’’’’’’’’. substitute:= t > ELSE remove curr call from candidates  FI ’’’. ELIF ( t.arity = var) ’’’’. CAND (t2.arity = 0) ’’’’’’’. CAND (t3.arity = integer) ’> THEN t2.arity:= t3.symbol; ’’’’’’’’’’’’’’’> FOR k FROM 1 UPTO t3.symbol ’’’’’’’’’’. REP new tp (ts); ’’’’’> replace (tcarity, ts, var); ’’’’’’> anonym value DECR 1; ’’’’’’’’’’’’’N replace (tcsymbol, ts, anonym value); ’’’’’’’’’’’’> replace (tcarguments, ts, nil); ’’N replace (tcrest, ts, t2.arguments); ’’’’’’’’’’’’’’. t2.arguments:= ts  PER; ’> nc(fc(curr frame).environment).first. . substitute:= t2 ’’’’. ELIF t2.arity <= 0 ’’’’’’’’> THEN IF t.symbol = t2.symbol ’’’’’’’’’’’’> THEN IF t.arity = t3.symbol ’’’’’’’> CAND t3.arity = integer ’’’’’’’’’. THEN ’’’’’’’’’’’’> ELIF t3.arity = var ’’’’’’’’’’’’’> THEN t3.arity := integer; ’’’’’’’> t3.symbol:= t.arity; ’’’’’’’N nc(fc(curr frame).environment).first. ’’’’’’> substitute:= t3 ’’’’’’’’’’N ELSE remove curr call from candidates ’’’’’’’’’’’. FI ’’’’’’’’’’’’’’> ELSE remove curr call from candidates  FI ’’’N ELSE syntax error ("wrong functor parameters") ’’’’’’’’’’’’ FI FI ’’’’’’’’ CASE elan: disable stop; ’’> lernsequenz auf taste legen ("q","break"13""); ’ SELECT ’’’’’’’’’N pos("consult,reconsult,sysout,sysin,forget,trace,line,abolish," N ,name (symboltable, argfirst.symbol) + ",") OF ’’’’’’’’’’’’’. CASE 01: consult (arg1) ’’’’’’’’. CASE 09: reconsult (arg1) ’’’’’’. CASE 19: sysout (arg1) ’’’’’’’’’. CASE 26: sysin (arg1) ’’’’’’’’’’. CASE 32: forget (arg1, quiet) ’’. CASE 39: trace (arg1) ’’’’’’’’’’ CASE 45: line ’’> CASE 50: value (TERM:(tcsymbolISUBargrest, ’’’’’> tcargumentsISUBargrest, ’’> tcarityISUBargrest), ’’’’’. t, ’’’’’’’> curr frame); ’’’’’’’’’’’’’. abolish (t.symbol) ’’’’. OTHERWISE do (elan command) ’’’’ ENDSELECT; ’’’’’> lernsequenz auf taste legen ("q","bye"13""); ’’’> IF is error THEN put error; clear error FI; ’’’’ enable stop ’’’’ END SELECT. ’’’’’’’’’’’’’’’ get operands: ’’’’’’’’’’’’’’’. value (argfirst, t, curr frame); ’’’’’’’’’’. value (TERM:(tcsymbolISUBargrest, ’’’’’’’’’. tcargumentsISUBargrest, ’’’’’’. tcarityISUBargrest), ’’’’’’’’’ t2,  curr frame). ’’’’’’’> argfirst:TERM:(tcsymbolISUBcurr call.arguments, ’’’’’’’’’’’’’> tcargumentsISUBcurr call.arguments, ’’’’’’’’’’> tcarityISUBcurr call.arguments). ’’’’’’’’’’’’’> argrest: tcrestISUBcurr call.arguments. ’’’’’’’’’’’’’’’. arg1: value (TERM:(tcsymbolISUBargrest, ’’’’’. tcargumentsISUBargrest, ’’. tcarityISUBargrest), ’’’’’ t, ’’’’’’’’’’’’’ curr frame); ’’’. name(symboltable, t.symbol). ’’’’’’’’’’ k:= knowledgebase; ’’’’’’’’ WHILE k <> nil ’’’’’’’’’’’’ ts:= kcfirstISUBk; ’’’’N IF TERM:(tcsymbolISUBts,tcargumentsISUBts,tcarityISUBts) = t ’’’’’’’’ THEN LEAVE find clause  k:= kcrestISUBk ’’’’’’’. remove curr call from candidates; ’’’’’’’’’ LEAVE apply rule. ’’’’’’’’’ elan command: ’’’’’’’’’’’’’’’ command:= ""; ’’’’’’’’’’’’’ ts:= curr call.arguments; ’ WHILE ts <> nil ’’’’’’’’’’’. REP value (TERM:(tcsymbolISUBts, ’’’’’’’’’’. tcargumentsISUBts, ’’’’’’’. tcarityISUBts), ’’’’’’’’’’ t, ’’’’’’’’’’’’’ curr frame); ’’’> command CAT name (symboltable, t.symbol); ’’’’’’’’’’’’’. found:= ts = curr call.arguments; ’’’’’ ts:= tcrestISUB(ts); ’’ IF found ’’’’’’’’’’’’> THEN IF ts > nil THEN command CAT "(""" FI ’’’’’’’’’’’’ ELIF ts = nil ’’’’’’’’’ THEN command CAT """)" . ELSE command CAT """,""" ’’’’’’’’’’’’’’ trace unification results: ’’ inference level INCR 1; ’’’. write term (curr call); write ("="); ’’’’’’> value (TERM:(tcsymbolISUB(kcfirstISUB(candidates)) , ’’’’’’> tcargumentsISUB(kcfirstISUB(candidates)) , ’’’N tcarityISUB(kcfirstISUB(candidates)) ), t, res frame); ’’’’’’’ write term backward (t); ’’ IF testing ’’’’’’’’’’’’’’ THEN ts:= ep; ’’’’’’’’’’’’’> IF ts > last ep THEN write (" with ") FI; ’’’’’’’’’’’’ list expressions ’’’’’ list expressions: ’’’’’’’’’’’ WHILE ts > last ep ’’’’’’’’. REP k:= fc(ec(ts).index).environment; ’’’’N WHILE nc(k).first.variable.symbol <> ec(ts).term.symbol ’’’’’’’’’’’’’’. REP k:= nc(k).rest PER; ’’’’’’’’’’’’’’> write term (ec(ts).term); write ("="); ’’’’’’’’’’’’’’’> write ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’dyn.help’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Įƒa€ė’’$D’’’’$D$DM’’’’’’dyn.help’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€’8’’’’’’’’’’’’’’’’’’’”€’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ဒD’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’H’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’G’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’с’>’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚’8’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q‚’F’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”‚’4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į‚’G’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1ƒ’A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ƒ’4’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’> Im Dynamo Runtime-System stehen folgende Kommandos’’’’’’> zur VerfŪgung (Verlassen dieser ErklŁrung mit q) :N run ...................... AusfŪhren des Ūbersetzten Programms’’’’’’’’’’N c =Wert .. Önderung einer oder mehrerer Konstanten’’’’’’N ? ........................ Anzeige der Konstanten und ihrer Werte’’’’’’’> quit ..................... Verlassen des Runtime-Systems> help ..................... Zeigt diese ErklŁrungen’’’’’’N Bei PRINT oder PLOT - Ausgaben sind folgende Kommandos mŚglich :’’’’’’’’> + ....................... NŁchster Bildschirm’’’’’’’’’’N o ....................... (Off), keine Unterbrechung der Ausgabe’’’’’’’N e ....................... (End), ZurŪck zum Runtime-System’’’’’’’’’’’’’> .................... Abbruch der Ausgabe’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ dyn.const’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĄĄ’’’’gproz’’’’’’’’’’gfress’’’’’’’’’hgk’’’’’’’’’’’’treff’’’’’’’’’’hstirb’’’’’’’’’fgk’’’’’’’’’’’’fsk’’’’’’’’’’’’ig’’’’’’’’’’’’’ih’’’’’’’’’’’’’if’’’’’’’’’’’’’dt’’’’’’’’’’’’’pltper’’’’’’’’’length’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’}~~„ƒP‚00’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’dyn.tool’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’term (nc(k).first.substitute); write (" "); ’’’’ ts DECR 1 ’’’’’’’’’’’’ENDPROC prove; ’’’’’’’’’’’’’’’>BOOL PROC unify (TERM CONST t1, FRAME CONST f1, ’’’’’’’’’’’’’’> TERM CONST t2, FRAME CONST f2): ’’’’’’’’’’’’’N { Unifies the expressions and , ’’N If unification succeeds, both environments are updated. } ’’’’’’’’’’’’’’’{}{inference count INCR 1;} ’’ IF f1 = f2 CAND t1 = t2 ’ ELIF t1.arity = var ’’’’’’’ THEN TERM VAR t; ’’’’’’’’’ FRAME VAR f; ’’’’’’’’’. IF bound (t1, f1, t, f) ’’’’’’’’’’’. THEN unify (t, f, t2, f2) ’’’’’’’’’’> { ELIF occurs (t1, f1, t2, f2) THEN FALSE } ’’’’’’’’’’’’. ELSE bind expression 1; ’’’’’’’’’’’’’’. push expression 1; ’’’’’’’’’’’’’’ TRUE ’’’’’’’’’’’’ ELIF t2.arity = var ’’’’’’’. THEN IF bound (t2, f2, t, f) ’’’’’’’’’’’. THEN unify (t, f, t1, f1) ’’’’’’’’’’> { ELIF occurs (t2, f2, t1, f1) THEN FALSE } ’’’’’’’’’’’’. ELSE bind expression 2; ’’’’’’’’’’’’’’. push expression 2; ’’’’’’’’’’’’’’ TRUE ’’’’’’’’’’’’ ELIF t1.symbol = t2.symbol  CAND t1.arity = t2.arity ’. THEN constant or compound term ’’’’’’’’’’’’. ELIF t1.symbol = cons CAND t2.symbol = nil > CAND t1.arity = 2 CAND t2.arguments > nil ’’’’’’’’’’’’’> CAND unify (TERM:(tcsymbolISUBt1.arguments, ’’’’’’’’’’’’’’’> tcargumentsISUBt1.arguments, ’’’’’’’’’’’’> tcarityISUBt1.arguments), ’’’’’’’’’’’’’’’ f1, ’’’’’’’’’’’> TERM:(tcsymbolISUBt2.arguments, ’’’’’’’’’’’’’’’. tcargumentsISUBt2.arguments, ’’. tcarityISUBt2.arguments), ’’’’’ f2) ’’’’’’’’’’’ THEN construct list 1 ’’’’’. ELIF t2.symbol = cons CAND t1.symbol = nil > CAND t2.arity = 2 CAND t1.arguments > nil ’’’’’’’’’’’’’> CAND unify (TERM:(tcsymbolISUBt2.arguments, ’’’’’’’’’’’’’’’> tcargumentsISUBt2.arguments, ’’’’’’’’’’’’> tcarityISUBt2.arguments), ’’’’’’’’’’’’’’’ f2, ’’’’’’’’’’’> TERM:(tcsymbolISUBt1.arguments, ’’’’’’’’’’’’’’’> tcargumentsISUBt1.arguments, ’’’’’’’’’’’’> tcarityISUBt1.arguments), ’’’’’’’’’’’’’’’ f1) ’’’’’’’’’’’ THEN construct list 2 ’’’’’ ELSE FALSE constant or compound term: ’’’N { arguments of t1 and t2 are properly instantiated by the parser } ’’’’’’’’. EXPRESSIONS VAR last ep:= ep; ’’’’’’’’’’’’’> TERMS VAR x:= t1.arguments, y:= t2.arguments; ’’’’’’’’’’’’’ WHILE x <> nil ’’’’’’’’’’’’N REP IF unify (TERM:(tcsymbolISUBx, tcargumentsISUBx, tcarityISUBx), ’’’’’ f1, ’’’’’’’N TERM:(tcsymbolISUBy, tcargumentsISUBy, tcarityISUBy), ’’’’’ f2) ’’’’’’’. THEN x:= tcrestISUB(x); ’’’’’’’’’’’’’’’ y:= tcrestISUB(y) . ELSE undo bindings (last ep); ’’’’’’’’’. LEAVE unify WITH FALSE ’’’’’’’’’’’ construct list 1: ’’’’’’’’’’’ last ep:= ep; ’’’’’’’’’’’’’ IF t2.symbol = cons ’’’’’N THEN TERM VAR tail:= TERM:(tcsymbolISUB(tcrestISUB(t2.arguments)), ’’’’’’’’N tcargumentsISUB(tcrestISUB(t2.arguments)), ’’’’’N tcarityISUB(tcrestISUB(t2.arguments))); ’’’’’’’’> ELSE tail:= TERM: (nil, (tcrestISUB(t2.arguments)) , ’’’’’’> no of terms (t2.arguments) - 1); ’’’’’’’> IF bound (TERM:(tcsymbolISUB(tcrestISUB(t1.arguments)) , N tcargumentsISUB(tcrestISUB(t1.arguments)) , ’’’’’’’’’’’’’> tcarityISUB(tcrestISUB(t1.arguments)) ),  f1, ’’’’’’’’’’’ t, ’’’’’’’’’’’’ f) ’’’’’’’’’’’’. THEN IF unify (t, f, tail, f2) ’’’’’’’’’’ THEN TRUE ’’’’’’’’’’’’. ELSE undo bindings (last ep); FALSE ’’ ELSE bind tail 1; ’’’’’’’’’ push tail 1; ’’’’’’’’’ construct list 2: ’’’’’’’’’’’ last ep:= ep; ’’’’’’’’’’’’’ IF t1.symbol = cons ’’’’’> THEN tail:= TERM:(tcsymbolISUB(tcrestISUB(t1.arguments)) , N tcargumentsISUB(tcrestISUB(t1.arguments)) , ’’’’’’’’’’’’’> tcarityISUB(tcrestISUB(t1.arguments)) ); > ELSE tail:= TERM: (nil, tcrestISUB(t1.arguments), ’’’’’’’’’> no of terms (t1.arguments) - 1); ’’’’’’’> IF bound (TERM:(tcsymbolISUB(tcrestISUB(t2.arguments)) , N tcargumentsISUB(tcrestISUB(t2.arguments)) , ’’’’’’’’’’’’’> tcarityISUB(tcrestISUB(t2.arguments)) ),  f2, ’’’’’’’’’’’ t, ’’’’’’’’’’’’ f) ’’’’’’’’’’’’. THEN IF unify (t, f, tail, f1) ’’’’’’’’’’ THEN TRUE ’’’’’’’’’’’’. ELSE undo bindings (last ep); FALSE ’’ ELSE bind tail 2; ’’’’’’’’’ push tail 2; ’’’’’’’’’ bind expression 1: ’’’’’’’’’’N { bind the expression to in the environment } ’’’’’’ new environment n; ’’’’’’’’. nc(n).first:= SUBSTITUTION:(t1, t2, f2); ’’. nc(n).rest :=fc(f1).environment; ’’’’’’’’’’ fc(f1).environment:= n. ’’’ bind expression 2: ’’’’’’’’’’ new environment n; ’’’’’’’’. nc(n).first:= SUBSTITUTION:(t2, t1, f1); ’’. nc(n).rest :=fc(f2).environment; ’’’’’’’’’’ fc(f2).environment:= n. ’’’ bind tail 1:  new environment n; ’’’’’’’’. nc(n).first:= SUBSTITUTION:( ’’’’’’’’’’’’’’N TERM:(tcsymbolISUB(tcrestISUB(t1.arguments)), ’’’’’’’’’’’’N tcargumentsISUB(tcrestISUB(t1.arguments)) , ’’’’’’’’N tcarityISUB(tcrestISUB(t1.arguments)) ), ’’’’’’’’’’’ tail, ’’’’ f2); ’’’’’. nc(n).rest :=fc(f1).environment; ’’’’’’’’’’ fc(f1).environment:= n. ’’’ bind tail 2:  new environment n; ’’’’’’’’. nc(n).first:= SUBSTITUTION:( ’’’’’’’’’’’’’’N TERM:(tcsymbolISUB(tcrestISUB(t2.arguments)) , ’’’’’’’’’’’N tcargumentsISUB(tcrestISUB(t2.arguments)) , ’’’’’’’’’’’’’’> tcarityISUB(tcrestISUB(t2.arguments)) ), ’ tail, ’’’’ f1); ’’’’’. nc(n).rest :=fc(f2).environment; ’’’’’’’’’’ fc(f2).environment:= n. ’’’ push expression 1: ’’’’’’’’’’ ep INCR 1; . ec(ep):= EXPRESSION:(t1, f1). ’’’’’’’’’’’’’ push expression 2: ’’’’’’’’’’ ep INCR 1; . ec(ep):= EXPRESSION:(t2, f2). ’’’’’’’’’’’’’ push tail 1:  ep INCR 1; N ec(ep):= EXPRESSION:(TERM:(tcsymbolISUB(tcrestISUB(t1.arguments)) , ’’’’’’’N tcargumentsISUB(tcrestISUB(t1.arguments)) , ’’’’N tcarityISUB(tcrestISUB(t1.arguments)) ), ’’’’’’’ f1). ’ push tail 2:  ep INCR 1; N ec(ep):= EXPRESSION:(TERM:(tcsymbolISUB(tcrestISUB(t2.arguments)) , ’’’’’’’N tcargumentsISUB(tcrestISUB(t2.arguments)) , ’’’’N tcarityISUB(tcrestISUB(t2.arguments)) ), ’’’’’’’ f2). ’ new environment n: ’’’’’’’’’’ ENVIRONMENT VAR n; ’’’’’’’’> IF np = limit THEN pegeloverflow ELSE np INCR 1; n:= np FI ENDPROC unify; ’’’’’’’’’’’’’’’.BOOL OP = (TERM CONST t1, t2): { INLINE; } ’’’N { Two terms are equal iff their printed representations are ’’’’’’’’’’’’’’’N indistinguishable. Don't confuse with equal expressions. } ’’’’’’’’’’’’’’. IF ( t1.symbol = t2.symbol ) ’’’’’’’’’’’’. CAND ( t1.arity = t2.arity ) ’’’’’’’’’’’’ THEN IF tš’’’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A–a€ė’’:Ų**’’’’ÜM’ž’’’’’’dyn.tool’’’’’’’’’’’’’’’’’’’’’Ś;:’’’’’’’’’’’’’’’’’’a€’L’’’’’’’’’’’’’’’’’’’±€’?’’’’’’’’’’’’’’’’’’’!•’M’’’’’’’’’’’ŚŪ:’’’’’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’;’’’’’’’’’’’’’’’’’’’с’’’’’’’’’’’’’’’’’’’’ၒ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’%’’’’’’’’’’’’’’’’’’’1‚’6’’’’’’’’’’’’’’’’’’’q‚’’’’’’’’’’’’’’’’’’’’‘‚’7’’’’’’’’’’’’’’’’’’’т’’’’’’’’’’’’’’’’’’’’ń‚’’’’’’’’’’’’’’’’’’’’’’ END REP’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ƒ’’’’’’’’’’’’’’’’’’’’Qƒ’’’’’’’’’’’’’’’’’’’’aƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ’*’’’’’’’’’’’’’’’’’’’±ƒ’’’’’’’’’’’’’’’’’’’’’’ IF list’’’’’’’’’’’’’у’’’’’’’’’’’’’’’’’’’’ńƒ’5’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’1„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q„’’’’’’’’’’’’’’’’’’’’’’ error no’’’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘„’/’’’’’’’’’’’’’’’’’’’ф’G’’’’’’’’’’’’’’’’’’’!…’’’’’’’’’’’’’’’’’’’’A…’’’’’’’’’’’’’’’’’’’’’’ END PROC err;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a…’’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’’’ THEN TRUE’’’’’’’’’’±•’D’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’х’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń…’’’’’’’’’’’’’’’’’’’’’’ IF list’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’q•’:ote (m); ŪŲ’’1†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q†’’’’’’’’’’’’’’’’’’’’’’ IF b’’’’’’’’’’’’’’’’’’ THEN "TRUE"’’’’’’’’†’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’‘†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”†’"’’’’’’’’’’’’’’’’’’’ц’’’’’’’’’’’’’’’’’’’’ń†’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’1‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A‡’ ’’’’’’’’’’’’’’’’’’’q‡’’’’’’’’’’’’’’’’’’’’‘‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±‡’!’’’’’’’’’’’’’’’’’’’ᇒ’’’’’’’’’’’’’’’’’’’ˆ’$’’’’’’’’’’’’’’’’’’’1ˆ’’’’’’’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’’’Qˆ’’’’’’’’’’’’’’’’’’’’’’ END PROC hash’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ˆ’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ሒ0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‰’?’’’’’’’’’’’’’’’’’’’q‰’6’’’’’’’’’’’’’’’’’’’±‰’’’’’’’’’’’’’’’’’’’’щ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń‰’’’’’’’’’’’’’’’’’’’’Š’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŠ’0’’’’’’’’’’’’’’’’’’’Š’'’’’’’’’’’’’’’’’’’’’±Š’’’’’’’’’’’’’’’’’’’’ъ’’’’’’’’’’’’’’’’’’’’ńŠ’’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’1‹’’’’’’’’’’’’’’’’’’’’Q‹’’’’’’’’’’’’’’’’’’’’q‹’’’’’’’’’’’’’’’’’’’’‘‹’’’’’’’’’’’’’’’’’’’’±‹’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ы’’’’’’’’’’’’’’’’’’’’ń‹’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’’’ next char;’’’’’’’’’1Œ’-’’’’’’’’’’’’’’’’’’’aŒ’’’’’’’’’’’’’’’’’’’’’’ next char’’’’’’’’’’’ END REP.’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’”Œ’’’’’’’’’’’’’’’’’’’’ĮŒ’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’’’ next char’’’’’’’’’ጒ/’’’’’’’’’’’’’’’’’’’!’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ž’’’’’’’’’’’’’’’’’’’’’’ IF cc = 46’’’’’’’’’AŽ’’’’’’’’’’’’’’’’’’’’aŽ’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’±Ž’’’’’’’’’’’’’’’’’’’’ю’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’ ’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’±’ ’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’Q’$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ѐ’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’1‘’’’’’’’’’’’’’’’’’’’’Q‘’’’’’’’’’’’’’’’’’’’’q‘’*’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’”‘’’’’’’’’’’’’’’’’’’’’Į‘’’’’’’’’’’’’’’’’’’’’į‘’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’’ next char’’’’’’’’’’’ END REP.’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’is int :’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ IF cc = -1’’’’’’’’’”’’+’’’’’’’’’’’’’’’’’’’ђ’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ pos INCR 1.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ next char :’’’’’’’’’!“’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ low :’’’’’’’’’’’’’’’a“’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’’’ ELSE char’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’”“’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į“’’’’’’’’’’’’’’’’’’’’ń“’ ’’’’’’’’’’’’’’’’’’’!”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A”’,’’’’’’’’’’’’’’’’’’’q”’*’’’’’’’’’’’’’’’’’’’””’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į”’’’’’’’’’’’’’’’’’’’’’’ position’’’’’’’’’’’’į”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’ŪŚŁ’’– display (m);ŁŚ’’’’ note line;’’;ŁŪ’’!–’isplay (""1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NPACKET io handling DEFINES error listing, err, message, errors, init errors,’’N text, kill, trunc, hash, no errors :’’’’’’’’’’’’’’’.(* Autor : R. Keil, Version vom 22.07.83, ÖndeLET errmax = 67,’’’’’’’ max hash size = 300;’’’’’’ROW errmax TEXT VAR error;’’’’>FILE VAR listfile; (* -> VERSION 3.2 *)’’’BOOL VAR list;INT VAR errorno, i;’’’’’’’’’’’.PROC init errors (TEXT CONST fname) :’’’’’’’’’> FILE VAR errorfile := sequential file (input, fname);’’’’’’’’ TEXT VAR buffer;’’’’’’’’’’’’’> FOR i FROM 1 UPTO errmax WHILE NOT eof (errorfile) REP’’’’’’’ getline (errorfile, buffer); error (i) := buffer’’’’’’’’’END PROC init errors;’’’’’’’’’PROC init errors :’’’’’’’’’’’’ errorno := 0END PROC init errors;’’’’’’’’’.PROC error listing (TEXT CONST listname) :’’’’ list := listname <> "nolist"; THEN kill (listname);’’’’’’’> listfile := sequential file (output, listname)’’’’’’’’’END PROC error listing;’’’’’’’INT PROC errors :’’’’’’’’’’’’’END PROC errors;’’’’’’’’’’’’’’>PROC err (TEXT CONST s, INT CONST m, line no) :’’’’’’’’’’’’’’’N message ("Fehler in Zeile " + text (line no) + " bei >>" + s + "<< : "’’’’’’’ + error (m));’’’’’’’ errorno INCR 1’’’’’’’’’’’’’’’BOOL PROC no errors :’’’’’’’’’ IF errors = 0> ELSE put line (text (error no) + " FehHLER GEFUNDEN"); FALSEEND PROC no errors;’’’’’’’’’’’PROC message (1.arguments = 0 . THEN terms are variables or constants . ELSE terms are compound ’’’’’’’’’’’’’’ ELSE FALSE . terms are variables or constants: TRUE. ’’’’’ terms are compound: ’’’’’’’’’. TERMS VAR x:= t1.arguments, ’’’’’’’’’’’’’’’. y:= t2.arguments; ’’’’’’’’’’’’’’’ WHILE x <> nil ’’’’’’’’’’’’> REP IF recursive equal (TERM:(tcsymbolISUBx, ’’’’’’’’’’> tcargumentsISUBx, ’’’’’’’> tcarityISUBx), ’’’’’’’’’’> TERM:(tcsymbolISUBy, ’’’’’’’’’’> tcargumentsISUBy, ’’’’’’’> tcarityISUBy)) ’’’’’’’’’’. THEN x:= tcrestISUB(x); ’’’’’’’’’’’’’. y:= tcrestISUB(y) ’’’’’’’’’’’’’’. ELSE LEAVE = WITH FALSE ’’’’’’’’’’’’’ PER; TRUE. ’’’’’’’’’’’’’’’>BOOL PROC recursive equal (TERM CONST t1, t2): t1=t2 ’’’’’’’’’ENDPROC recursive equal; ’’’’’>PROC undo bindings (EXPRESSIONS CONST last ep): ’’’’’’’’’’’’’’> { Remove the binding for each of the expressions } ’’’’’’’’ WHILE ep > last ep ’’’’’’’’. REP remove matching substitutions; ’’’’’’’’ remove expression ’’’’’. remove matching substitutions: ’’’’’’’’’’’’’’> { with variable equal to term t from environment env } ’’’’ TERM VAR t:= ec(ep).term; ’. ENVIRONMENT VAR n:= env, last:= nil; ’’’’’’ WHILE n <> nil ’’’’’’’’’’’’> REP IF nc(n).first.variable.symbol = t.symbol ’’’’’’’’’’’ THEN forget n ’’’’’’’’’ ELSE last:= n ’’’’’’’’’ n:= nc(n).rest ’’’’’’’’ IF last = nil ’’’’’’’’’’’ THEN env := nc(n).rest ’’’’. ELSE nc(last).rest:= nc(n).rest ’’’’’’’’’’’. IF n = np THEN np DECR 1 FI. ’’’’’’’’’’’’’’. env: fc(ec(ep).index).environment. ’’’’’’’’’ remove expression: ’’’’’’’’’’N { Removes the first expression from e recovering the space used } ’’’’’’’’’ ep DECR 1. END PROC undo bindings; ’’’’’’.PROC consult (TEXT CONST knowledge): ’’’’’’’’’> { asserts the clauses from the file into knowledge base } ’{} enable stop; ’’’’’’’’’’’’’’. IF NOT exists (knowledge) ’’’’’’’’’’’’’’’N THEN syntax error ("consulting file not existing"); LEAVE consult ’’’’’’’’’ last param (knowledge); ’’’ TERMS VAR clauses; ’’’’’’’’ BOOL VAR single:= TRUE; ’’’ rule count:= 0; ’’’’’’’’’’’. initiate read terms (knowledge, clauses); ’. WHILE look ahead <> end of input ’’’’’’’’’’ REP rule count INCR 1; ’’’’ cout (rule count); ’’’’ read clause; ’’’’’’’’’’ assertz (clauses); ’’’’ clauses:= nil ’’’’’’’’’ remove token; ’’’’’’’’’’’’’ IF anything noted ’’’’’’’ THEN modify (file); ’’’’’’’ note edit (file) ’’’’’ IF free of errors ’’’’’’’ THEN reset tp:= tp; ’’’’’’’ reset kp:= kp; ’’’’’’’. reset symboltable:= symboltable; ’’’’’ put (rule count) ’’’’’. ELSE put (0); from file:= FALSE ’’’’’’’’’’’. putline ("rules inserted."); ’’’’’’’’’’’’’’ read clause:  TERM VAR term; ’’’’’’’’’’’’ IF single ’’’’’’’’’’’’’’’ THEN read term (term); ’’’’ IF term.arity = var > THEN syntax error ("clause starts with variable") ’’’’> ELIF name (symboltable, term.symbol) = ":-" ’’’’’’’’’’. THEN read terms (clauses); ’’’’’’’’’’’. call terms (clauses); ’’’’’’’’’’’ LEAVE consult ’’’. IF look ahead = colon ’’’’’’’’’’’’’’ THEN remove token; ’’’. read terms (clauses) ’’’’’’’’’’’’. ELIF look ahead = semicolon ’’’’’’’’’’’’’’’ THEN remove token; ’’’’’’’’ read terms (clauses) ’. IF look ahead = semicolon ’’’’’’’’’’’’’’’ THEN single:= FALSE ’’’’’’’ ELIF look ahead = period ’’ THEN single:= TRUE; ’’’’’’’ remove token ’’’’’’’’’> ELSE syntax error ("period or semicolon expected") ’’’’’’’’ insert term in clauses. ’’’ insert term in clauses: ’’’’’ TERMS VAR tmp; ’’’’’’’’’’’’ new tp (tmp); ’’’’’’’’’’’’’. replace(tcsymbol,tmp,term.symbol); ’’’’’’’’. replace(tcarguments,tmp,term.arguments); ’’. replace(tcarity,tmp,term.arity); ’’’’’’’’’’. replace(tcrest,tmp, clauses); ’’’’’’’’’’’’’ clauses:= tmp. ’’’’’’’’’’’’ remove token: ’’’’’’’’’’’’’’’ look ahead empty:= TRUE. ’’END PROC consult; ’’’’’’’’’’’’.PROC reconsult (TEXT CONST knowledge): ’’’’’’’> { asserts the clauses from the file into knowledge base } ’{} enable stop; ’’’’’’’’’’’’’’. IF NOT exists (knowledge) ’’’’’’’’’’’’’’’N THEN syntax error ("reconsulting file not existing"); LEAVE reconsult ’’’’’ last param (knowledge); ’’’ TERMS VAR clauses; ’’’’’’’’ BOOL VAR single:= TRUE; ’’’ rule count:= 0; ’’’’’’’’’’’. initiate read terms (knowledge, clauses); ’. WHILE look ahead <> end of input ’’’’’’’’’’ REP rule count INCR 1; ’’’’ cout (rule count); ’’’’ read clause; ’’’’’’’’’’. abolish (tcsymbol ISUB clauses); ’’’’’’ clauses:= nil ’’’’’’’’’ remove token; ’’’’’’’’’’’’’ consult (knowledge). ’’’’’’ read clause:  TERM VAR term; ’’’’’’’’’’’’ IF single ’’’’’’’’’’’’’’’ THEN read term (term); ’’’’ IF term.arity = var > THEN syntax error ("clause starts with variable") ’’’’> ELIF name (symboltable, term.symbol) = ":-" ’’’’’’’’’’. THEN read terms (clauses); ’’’’’’’’’’’. call terms (clauses); ’’’’’’’’’’’ LEAVE reconsult ’. IF look ahead = colon ’’’’’’’’’’’’’’ THEN remove token; ’’’. read terms (clauses) ’’’’’’’’’’’’. ELIF look ahead = semicolon ’’’’’’’’’’’’’’’ THEN remove token; ’’’’’’’’ read terms (clauses) ’. IF look ahead = semicolon ’’’’’’’’’’’’’’’ THEN single:= FALSE ’’’’’’’ ELIF look ahead = period ’’ THEN single:= TRUE; ’’’’’’’ remove token ’’’’’’’’’> ELSE syntax error ("period or semicolon expected") ’’’’’’’’ insert term in clauses. ’’’ insert term in clauses: ’’’’’ TERMS VAR tmp; ’’’’’’’’’’’’ new tp (tmp); ’’’’’’’’’’’’’. replace(tcsymbol,tmp,term.symbol); ’’’’’’’’. replace(tcarguments,tmp,term.arguments); ’’. replace(tcarity,tmp,term.arity); ’’’’’’’’’’. replace(tcrest,tmp, clauses); ’’’’’’’’’’’’’ clauses:= tmp. ’’’’’’’’’’’’ remove token: ’’’’’’’’’’’’’’’ look ahead empty:= TRUE. ’’END PROC reconsult; ’’’’’’’’’’.PROC assertz (TERMS CONST clause): ’’’’’’’’’’’N { Inserts the clause into the knowledge base before the first clause ’’’’’’. beginning with the same functor. ’’’’’’’’N Clauses beginning with the same functor are assumed to be listed ’’’’’’’’ consecutively. ’’’’’’’’’’ CLAUSES VAR c1, c2, c3; ’’’ IF free of errors ’’’’’’’ THEN IF freep > nil ’’’’’. THEN c3:= freec(freep); ’’’’’’’’’’’’’’ freep DECR 1; ’’’N IF reset freep > freep THEN reset freep:= freep FI ’’’’’’’’’’’’’’ ELSE new kp (c3) ’’’’’. replace(kcfirst,c3, clause); ’’’’’’’’’. IF knowledge base = nil ’’’’’’’’’’’’> COR (tcsymbolISUB((kcfirstISUB(knowledgebase)) )) = ’. (tcsymbolISUB(clause)) ’’’’’’’’’’ THEN insert on top ’’’. ELSE c1:= knowledge base; ’’’’’’’’’’’’. REP find and insert clause PER ’’ find and insert clause: ’’’’’ c2:= (kcrestISUB(c1)) ; ’’’ IF c2 = nil ’’’’’’’’’’’’’ THEN insert on top ’’’’’’’’N ELIF (tcsymbolISUB((kcfirstISUB(c2)) )) = (tcsymbolISUB(clause)) ’’’’’’’’’’ THEN insert before ’’’’’’’’ insert on top: ’’’’’’’’’’’’’’. replace(kcrest,c3, knowledge base); ’’’’’’’ knowledge bTEXT CONST m) :’ THEN putline (list file, m);END PROC message;’’’’’’’’’’’’’.TEXT PROC text (BOOL CONST b) :’’’’’’’’’’’’’’’ ELSE "FALSE"END PROC text;.PROC kill (TEXT CONST file name) :’’’’’’’’’’’’ command dialogue (FALSE);’’’’ forget (file name);’’’’’’’’’’ command dialogue (TRUE)’’’’’’END PROC kill;.TEXT PROC trunc (TEXT CONST t) :’’’’’’’’’’’’’’ text (t, length (t) - 2)’’’’’END PROC trunc;’’’’’’’’’’’’’’’.INT PROC hash (TEXT CONST word) :’’’’’’’’’’’’’ INT VAR qs := 0;’’’’’’’’’’’’’. FOR i FROM 1 UPTO length (word) REP’’’’’’’’’’ qs INCR code (word SUB i)’’’ (qs MOD max hash size) + 1.’’END PACKET io handling;’’’’’’’N(************************* S C A N N E R **************************)’’’’’’’’’’>PACKET scan DEFINES next sym, scanner, scanpos :’’’’’’’’’’’’’’NLET bold = 1, (* Autor : R. Keil, T. Froehlich *)’’’’’’’’’’’’’’’> number = 2, (* Version vom 04.07.83 *)’’’’’’’’ delimiter = 3,’’’’’’’’’’’’ eol = 4;’’’’’’’’’’’’TEXT VAR main buf, sym;’’’’’’’.INT VAR position, type, cc, begin pos;’’’’’’’>PROC nextsym (TEXT CONST buf, TEXT VAR scan sym,’’’’’’’’’’’’’’. INT VAR scan type, pos) :’’’’’’’ TEXT VAR char := buf SUB pos; cc := code (char);’’’’’’’’’’’ IF (cc >= 97 AND cc <= 122)’’ THEN process lower case’’’’’ ELIF cc = 46 OR is int’’’’’’’ THEN process real’’’’’’’’’’’ ELIF (cc >= 65 AND cc <= 90)’ THEN process upper case’’’’’ ELSE process delimiter’’’’’’ process upper case :’’’’’’’’’ scan type := bold;’’’’’’’’’’ scan sym := low;’’’’’’’’’’’. WHILE (cc >= 65 AND cc <= 90) OR is int REP’ scan sym CAT low;’’’’’’’’’’ process lower case :’’’’’’’’’ scan type := bold;’’’’’’’’’’ begin pos := pos;’’’’’’’’’’’> UNTIL lower case char AND NOT is int END REP;’’’’’’’’’’’’’’’> scan sym := subtext (buf, begin pos, pos - 1).’’’’’’’’’’’’’’ lower case char :’’’’’’’’’’’’ cc < 97 OR cc > 122.’’’’’’’’ process real :’’’’’’’’’’’’’’’ process base;’’’’’’’’’’’’’’’ process exponent;’’’’’’’’’’’ scan type := number.’’’’’’’’ process base :’’’’’’’’’’’’’’’ THEN next char;’’’’’’’’’’’’ IF is int’’’’’’’’’’’’’. THEN scan sym := "0.";’’’’’’’’’’’’’’’ process int’’’’’. ELSE scan type := delimiter;’’’’’’’’’ scan sym := ".";. LEAVE process real’’’’’’’’’’’’’’ ELSE scan sym := "";’’’’’’’ process int;’’’’’’’’’’ IF cc = 46’’’’’’’’’’’’. THEN scan sym CAT char;’’’’’’’’’’’’’’ next char;’’’’’’ IF is int’’’’’’’. THEN process int’’’’’’’’’’’’’’’. ELSE scan sym CAT "0"’’’’’’’’’’ FI’’’’’’’’’’’’’’. ELSE scan sym CAT ".0"’’’’’’’’’’’’’’’ process exponent :’’’’’’’’’’’ IF cc = 69 OR cc = 101’’’’’’ THEN scan sym CAT "e";’’’’’ next char;’’’’’’’’’’’’ IF cc = 43 OR cc = 45’. THEN scan sym CAT char; next char’’’’ IF is int’’’’’’’’’’’’’ THEN process int’’’’’. ELSE err (char, 63, 0)’’’’’’’’’’’’’’’ process int : WHILE is int REP’’’’’’’’’’’’ scan sym CAT char;’’’’’’’’’ cc >= 48 AND cc <= 57.’’’’’’’ process delimiter :’’’’’’’’’’. THEN scan sym := "EOL"; scan type := eol’’’. ELSE scan type := delimiter;’’’’’’’’’’’’’’’ scan sym := char’’’’’’> pos INCR 1; char := buf SUB pos; cc := code (char).’’’’’’’’’ IF cc >= 65 AND cc <= 90’’’’ THEN code (cc + 32)’’’’’’’’END PROC next sym;’’’’’’’’’’’’.PROC scanner (TEXT CONST buf) :’’’’’’’’’’’’’’’. main buf := buf; position := 1’’’’’’’’’’’’’’END PROC scanner;’’’’’’’’’’’’’.PROC next sym (TEXT VAR sym, INT VAR type) :’’. next sym (main buf, sym, type, position)’’’’END PROC next sym;’’’’’’’’’’’’INT PROC scanpos :’’’’’’’’’’’’END PROC scanpos’’’’’’’’’’’’’’END PACKET scan;’’’’’’’’’’’’’’N(* Autor : R. Keil, Version vom 22.07.83, Önderung: C. Szymanski, 21.07.88 *)’> note (m); (* C.S. 21.07.88 *)’’’’N ELSE display (text (error no) + " Fehler gefunden"13""10""); FALSE’’’’’’’’’’ displayne (m))))))’’’’’’’’’’’ display (""13""10"")’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’dyn.vec’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į‘a€ė’’ŃÓĪŠķ’’’’ŌM ’’’’’’dyn.vec’’’’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’a€’J’’’’’’’’’’’’’’’’’’’±€’M’’’’’’’’’’’’’’’’’’’’6’’’’’’’’’’’’’’’’’’’A’!’’’’’’’’’’’’’’’’’’’q’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ LET n = 4000;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’'’’’’’’’’’’’’’’’’’’’с’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’!‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A‚’+’’’’’’’’’’’’’’’’’’’’’ t SUB i’’’’’’’’’’’’’q‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’ ’’’’’’’’’’’’’’’’’’’±‚’’’’’’’’’’’’’’’’’’’’т’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ END OP :=;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń‚’$’’’’’’’’’’’’’’’’’’’!ƒ’’’’’’’’’’’’’’’’’’’’Aƒ’’’’’’’’’’’’’’’’’’’’aƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ END OP :=;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’”ƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’გ7’’’’’’’’’’’’’’’’’’’’’ IF lng <= 0’’’’’’’’!„’/’’’’’’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”„’%’’’’’’’’’’’’’’’’’’’ф’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’…’(’’’’’’’’’’’’’’’’’’’A…’ ’’’’’’’’’’’’’’’’’’’q…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ END OP SUB;’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘…’’’’’’’’’’’’’’’’’’’’’’ v.lase:= c3; ’’’’’’ LEAVE assertz. ’’’’’’’’’’’’ insert before: ’’’’’’’’’’’’’’ replace(kcrest,c3, c2); ’’’ replace(kcrest,c1, c3); ’’’ LEAVE assertz. ’’’’’’’’’’’’ENDPROC assertz; ’’’’’’’’’’’’’.PROC asserta (TERMS CONST clause): ’’’’’’’’’’’N { Inserts the clause into the knowledge base after the last clause ’’’’’’’’. beginning with the same functor. ’’’’’’’’N Clauses beginning with the same functor are assumed to be listed ’’’’’’’’ consecutively. ’’’’’’’’’’ CLAUSES VAR c1, c2, c3; ’’’ IF free of errors ’’’’’’’ THEN IF freep > nil ’’’’’. THEN c3:= freec(freep); ’’’’’’’’’’’’’’ freep DECR 1; ’’’N IF reset freep > freep THEN reset freep:= freep FI ’’’’’’’’’’’’’’ ELSE new kp (c3) ’’’’’. replace(kcfirst,c3, clause); ’’’’’’’’’. IF knowledge base = nil ’’’’’’’’’’’’> THEN replace(kcrest,c3, knowledge base); ’’’’’’’’’’’’’. knowledge base:= c3 ’’’’’’’’’’’’’. ELSE c1:= knowledge base; ’’’’’’’’’’’’. REP find and insert clause PER ’’ find and insert clause: ’’’’’ c2:= (kcrestISUB(c1)) ; ’’’ IF c2 = nil ’’’’’’’’’’’’’ THEN append after c1 ’’’’’’N ELIF (tcsymbolISUB((kcfirstISUB(c2)) )) = (tcsymbolISUB(clause)) ’’’’’’’’’’ THEN insert behind ’’’’’’’’ append after c1: ’’’’’’’’’’’’. replace(kcrest,c1, clause); ’’’’’’’’’’’’’’’ LEAVE asserta. ’’’’’’’’’’’’ insert behind: ’’’’’’’’’’’’’’ REP c1:= c2; ’’’’’’’’’’’’’. c2:= (kcrestISUB(c1)) ; ’’’’’’’’’’’’’’N UNTIL (tcsymbolISUB((kcfirstISUB(c2)) )) <> (tcsymbolISUB(clause)) ’’’’’’’’ replace(kcrest,c3, c2); ’’’ replace(kcrest,c1, c3); ’’’ LEAVE asserta. ’’’’’’’’’’’’ENDPROC asserta; ’’’’’’’’’’’’’.PROC retract (TERMS CONST clause): ’’’’’’’’’’’> { Retracts the clause from the knowledge base. } ’’’’’’’’’’. CLAUSES VAR c1:= knowledge base, c2; ’’’’’’ IF free of errors ’’’’’’’ THEN IF c1 = nil ’’’’’’’’. THEN rule count DECR 1 ’’’’’’’’’’’’’’’N ELIF c1 > build ins CAND terms eq ((kcfirstISUB(c1)) , clause) ’’’’’’’ THEN retract top ’’’’’. ELSE REP find and retract clause PER ’ find and retract clause: ’’’’ c2:= (kcrestISUB(c1)) ; ’’’ IF c2 = nil ’’’’’’’’’’’’’ THEN rule count DECR 1; ’’’ LEAVE retract ’’’’’’’’N ELIF c2 > build ins CAND terms eq ((kcfirstISUB(c2)) , clause) ’’’’’’’’’’’ THEN retract c2 ’’’’’’’’’’’ retract top:  freep INCR 1; ’’’’’’’’’’’’’ reset freep:= freep; ’’’’’’. freec(freep):= knowledge base; ’’’’’’’’’’’’> knowledge base:= (kcrestISUB(knowledge base)) ; ’’’’’’’’’’’ LEAVE retract. ’’’’’’’’’’’’. replace(kcrest,c1, (kcrestISUB(c2)) ); ’’’’ freep INCR 1; ’’’’’’’’’’’’’ reset freep:= freep; ’’’’’’ freec(freep):= c2; ’’’’’’’’ LEAVE retract. ’’’’’’’’’’’’ENDPROC retract; ’’’’’’’’’’’’’.PROC abolish (SYMBOL CONST clause): ’’’’’’’’’’N { Retracts all the clauses with this name from the knowledge base. } ’’’’’’{} enable stop; ’’’’’’’’’’’’’’. CLAUSES VAR c1:= knowledge base, c2; ’’’’’’ IF free of errors ’’’’’’’ IF c1 = nil ’’’’’’. THEN rule count DECR 1; ’’’’’’’’’’’’ LEAVE abolish ’> ELIF c1 = knowledgebase CAND c1 > build ins ’’’’’’’’> CAND (tcsymbol ISUB(kcfirstISUBc1)) = clause ’’’’’’’ THEN retract top; ’’. c1:= knowledgebase ’’’’’’’’’’’’. ELSE find and retract clause ’’’’’’’ find and retract clause: ’’’’ c2:= kcrestISUBc1 ; ’’’’’’’ IF c2 = nil ’’’’’’’’’’’’’ THEN rule count DECR 1; ’’’ LEAVE abolish ’’’’’’’’ ELIF c2 > build ins ’’’’’’’> CAND (tcsymbol ISUB(kcfirstISUBc2)) = clause ’’’’’’’’’’’’’ THEN retract c2 ’’’’’’’’’’’ ELSE c1:= c2 ’’’’’’’’’’’’’’ retract top:  freep INCR 1; ’’’’’’’’’’’’’ reset freep:= freep; ’’’’’’. freec(freep):= knowledge base; ’’’’’’’’’’’’> knowledge base:= (kcrestISUB(knowledge base)). ’’’’’’’’’’’’. replace(kcrest,c1, (kcrestISUB(c2)) ); ’’’’ freep INCR 1; ’’’’’’’’’’’’’ reset freep:= freep; ’’’’’’ freec(freep):= c2. ’’’’’’’’ENDPROC abolish; ’’’’’’’’’’’’’.BOOL PROC terms eq (TERMS CONST a, b): ’’’’’’’ IF a = b  ELIF a = 0 COR b = 0 ’’’’’’ THEN FALSE  ELIF TERM:(tcsymbolISUBa, ’. tcargumentsISUBa, ’’’’’’’’’’’’’’ tcarityISUBa) =  TERM:(tcsymbolISUBb, ’. tcargumentsISUBb, ’’’’’’’’’’’’’’ tcarityISUBb) ’’> THEN terms eq ((tcrestISUB(a)) , (tcrestISUB(b)) ) ’’’’’’’’ ELSE FALSE ENDPROC terms eq; ’’’’’’’’’’’’>PROC value (TERM CONST t, TERM VAR r, FRAME CONST f): ’’’’’’’’> { sets r to the value of t in f^.environment } ’’’’’’’’’’’’{} enable stop; ’’’’’’’’’’’’’’ IF t.arguments = 0 ’’’’’’ THEN IF t.arity = var ’’’ THEN variable term ’’’ ELSE constant term ’’’ ELSE compound term ’’’’’’’’ constant term: r:= t. ’’’’’’’ variable term: ’’’’’’’’’’’’’’ TERM VAR t1, t2; ’’’’’’’’’’ FRAME VAR f1; ’’’’’’’’’’’’’ IF bound (t, f, t1, f1) ’ THEN value (t1, r, f1) ’’’’ ELSE r:= t  compound term: ’’’’’’’’’’’’’’ INT VAR step:= 3; ’’’’’’’’’. TERMS VAR ts:= t.arguments; ’’’’’’’’’’’’’’’ r.arguments:= nil; ’’’’’’’’ WHILE ts <> nil ’’’’’’’’’’’. REP value (TERM:(tcsymbolISUBts, ’’’’’’’’’. tcargumentsISUBts, ’’’’’’. tcarityISUBts), ’’’’’’’’’ t1, ’’’’’’’’’’’ f); ’’’’’’’’’’’ IF stepping ’’’’’’’’N CAND step = 1 CAND t.symbol = cons CAND t1.symbol = nil ’’’’’’’’’’’’’’ THEN step:= 0; ’’’’’’’. value (t1, t2, f); ’’’’’’’’’’’’’’. ts:= t2.arguments ’’’’’’’’’’’’’’’. ELSE ts:= tcrestISUB(ts); ’’’’’’’’’’’’. push term in arguments ’’’’’’’’’’ IF step = 0 ’’’’’’’’’’’’’ THEN r.symbol:= nil ’’’’’’’ ELSE r.symbol:= t.symbol ’’. r.arity:= no of terms (r.arguments). ’’’’’’> IF step > 1 THEN step DECR 1; TRUE ELSE FALSE FI. ’’’’’’’’’ push term in arguments: ’’’’’ TERMS VAR term; ’’’’’’’’’’’ new tp (term); ’’’’’’’’’’’’. replace(tcsymbol,term, t1.symbol); ’’’’’’’’. replace(tcarguments,term, t1.arguments); ’’. replace(tcarity,term, t1.arity); ’’’’’’’’’’. replace(tcrest,term, r.arguments); ’’’’’’’’ r.arguments:= term. ’’’’’’’ENDPROC value; ’’’’’’’’’’’’’’’>BOOL PROC bound (TERM CONST t1, FRAME CONST f1, ’’’’’’’’’’’’’’> TERM VAR t2, FRAME VAR f2): ’’’’’’’’’’’’’N { returns TRUE iff the expression is bound and ’’’’’’N assigns the expression to which it is bound. } ’’’’. ENVIRONMENT VAR n:= fc(f1).environment; ’’’ SUBSTITUTION VAR sub; ’’’’’ WHILE n <> nil ’’’’’’’’’’’’ REP sub:= nc(n).first; ’’’’. IF t1.symbol = sub.variable.symbol ’’. THEN t2:= sub.substitute; ’’’’’’’’’’’’’ f2:= sub.others; ’. LEAVE bound WITH TRUE ’’’’’’’’’’’’ ELSE n:= nc(n).rest ’’’ENDPROC bound; ’’’’’’’’’’’’’’’>PROC append term (TERM CONST appendix, TERMS VAR list): ’’’’’’ TERMS VAR term, last term;  IF list = nil ’’’’’’’’’’’ THEN new tp (term); ’’’’’’’ list:= term ’’’’’’’’’’ ELSE term:= list; ’’’’’’’’’. REP last term:= term; ’’’’’’’’’’’’’’’. term:= tcrestISUB(term) ’’’’’’’’’ UNTILterm = nil PER; ’ new tp (term); ’’’’’’’. replace(tcrest,last term, term); ’’’’’. replace(tcsymbol,term,appendix.symbol); ’’’> replace(tcarguments,term,appendix.arguments); ’’’’’’’’’’’’’. replace(tcang’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į…’’’’’’’’’’’’’’’’’’’’’’ v.lng’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’1†’’’’’’’’’’’’’’’’’’’’Q†’’’’’’’’’’’’’’’’’’’’q†’+’’’’’’’’’’’’’’’’’’’”†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ц’5’’’’’’’’’’’’’’’’’’’‡’!’’’’’’’’’’’’’’’’’’’A‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’”‡’’’’’’’’’’’’’’’’’’’’’’ END OP =;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į‡’’’’’’’’’’’’’’’’’’’’ᇒ’’’’’’’’’’’’’’’’’’’’’ END OP <>;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’’’ v’’’’’’’’’’’’’’’’’’’’ END OP +;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ˆ’’’’’’’’’’’’’’’’’’’’Aˆ’’’’’’’’’’’’’’’’’’’’’’ v := l;’’’’’’’’’’’’aˆ’’’’’’’’’’’’’’’’’’’’ˆ’A’’’’’’’’’’’’’’’’’’’’’ v’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ END OP +;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ш’’’’’’’’’’’’’’’’’’’’’’ v := a;’’’’’’’’’’’’ńˆ’’’’’’’’’’’’’’’’’’’’‰’1’’’’’’’’’’’’’’’’’’’’’ v’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ END OP -;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q‰’’’’’’’’’’’’’’’’’’’’q‰’’’’’’’’’’’’’’’’’’’’’’ v := l;’’’’’’’’’’’’‘‰’’’’’’’’’’’’’’’’’’’’±‰’A’’’’’’’’’’’’’’’’’’’’’ v’’’’’’’’’’’’’’’’’’’’ END OP -;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’!Š’’’’’’’’’’’’’’’’’’’’AŠ’’’’’’’’’’’’’’’’’’’’aŠ’’’’’’’’’’’’’’’’’’’’Š’5’’’’’’’’’’’’’’’’’’’’’ x’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ END OP *;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŠ’&’’’’’’’’’’’’’’’’’’’’’ r*v’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ END OP *;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŠ’&’’’’’’’’’’’’’’’’’’’’’ v := a;’’’’’’’’’’’’!‹’’’’’’’’’’’’’’’’’’’’A‹’1’’’’’’’’’’’’’’’’’’’’’ v’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ END OP *;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‹’&’’’’’’’’’’’’’’’’’’’’’ v := a;’’’’’’’’’’’’±‹’’’’’’’’’’’’’’’’’’’’ы’1’’’’’’’’’’’’’’’’’’’’’ v’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ END OP /;’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’1Œ’7’’’’’’’’’’’’’’’’’’’qŒ’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’”Œ’1’’’’’’’’’’’’’’’’’’’ጒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’ ELIF i < 1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’-’’’’’’’’’’’’’’’’’’’э’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŽ’-’’’’’’’’’’’’’’’’’’’qŽ’’’’’’’’’’’’’’’’’’’’‘Ž’’’’’’’’’’’’’’’’’’’’±Ž’’’’’’’’’’’’’’’’’’’’ю’’’’’’’’’’’’’’’’’’’’ńŽ’!’’’’’’’’’’’’’’’’’’’!’&’’’’’’’’’’’’’’’’’’’Q’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń’%’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’ REAL VAR x;’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’ PER .’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ END PROC get;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’1’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’‘’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ END PROC put;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q‘’’’’’’’’’’’’’’’’’’’’q‘’’’’’’’’’’’’’’’’’’’’‘‘’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ END PROC put;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NPACKET vector DEFINES TAB, :=, vector, (* Autor : H.Indenbirken *)’’’’N SUB, LENGTH, laenge, norm, (* Stand : 24.09.81 *)’> nilvector, replace, =, <>, wert,’’’’’’’’. +, -, *, /,’’’’’’’’’’’’’. get, put :’’’’’’’’’’’’’’.TYPE TAB = STRUCT (INT lng, TEXT elem);’’’’’’’.TYPE INITTAB = STRUCT (INT lng, REAL value);’’TEXT VAR t :: "12345678";’’’’’TAB VAR v :: nilvector;’’’’’’’.REAL PROC wert (TAB CONST t, INT CONST i) :’’’END PROC wert;.OP := (TAB VAR l, TAB CONST r) :’’’’’’’’’’’’’’ l.lng := r.lng;’’’’’’’’’’’’’ l.elem := r.elem’’’’’’’’’’’’.OP := (TAB VAR l, INITTAB CONST r) :’’’’’’’’’’ l.lng := r.lng;’’’’’’’’’’’’’ replace (t, 1, r.value);’’’’ l.elem := r.lng * t’’’’’’’’’INITTAB PROC nilvector :’’’’’’ vector (1, 0.0)’’’’’’’’’’’’END PROC nilvector;’’’’’’’’’’’>INITTAB PROC vector (INT CONST lng, REAL CONST value) :’’’’’’’> THEN errorstop ("PROC vector : lng <= 0") FI;’’’’’’’’’’’’’’’ INITTAB : (lng, value)’’’’’’END PROC vector;’’’’’’’’’’’’’’.INITTAB PROC vector (INT CONST lng) :’’’’’’’’’ vector (lng, 0.0)’’’’’’’’’’’END PROC vector;’’’’’’’’’’’’’’.REAL OP SUB (TAB CONST v, INT CONST i) :’’’’’’. test ("REAL OP SUB : ", v, i);’’’’’’’’’’’’’’ v.elem RSUB i’’’’’’’’’’’’’’’INT OP LENGTH (TAB CONST v) :’END OP LENGTH;.INT PROC laenge (TAB CONST v) :’’’’’’’’’’’’’’’END PROC laenge;’’’’’’’’’’’’’’REAL PROC norm (TAB CONST v) : REAL VAR result :: 0.0;’’’’’ FOR i FROM 1 UPTO v.lng’’’’’. REP result INCR ((v.elem RSUB i)**2) PER;’’’ sqrt (result) .’’’’’’’’’’’’END PROC norm;>PROC replace (TAB VAR v, INT CONST i, REAL CONST r) :’’’’’’’’’. test ("PROC replace : ", v, i);’’’’’’’’’’’’’ replace (v.elem, i, r)’’’’’’END PROC replace;’’’’’’’’’’’’’BOOL OP = (TAB CONST l, r) :’’ l.elem = r.elem’’’’’’’’’’’’’BOOL OP <> (TAB CONST l, r) :’ l.elem <> r.elem’’’’’’’’’’’’TAB OP + (TAB CONST v) :’’’’’’TAB OP + (TAB CONST l, r) :’’’ test ("TAB OP + : ", l, r);’ FOR i FROM 1 UPTO v.lng’’’’’N REP replace (v.elem, i, (l.elem RSUB i) + (r.elem RSUB i)) PER;’’’’’’’’’’’’’TAB OP - (TAB CONST a) :’’’’’’ FOR i FROM 1 UPTO v.lng’’’’’> REP replace (v.elem, i, - (a.elem RSUB i)) PER;’’’’’’’’’’’’’TAB OP - (TAB CONST l, r) :’’’ test ("TAB OP - : ", l, r);’ FOR i FROM 1 UPTO v.lng’’’’’N REP replace (v.elem, i, (l.elem RSUB i) - (r.elem RSUB i)) PER;’’’’’’’’’’’’’REAL OP * (TAB CONST l, r) :’’ test ("REAL OP * : ", l, r); REAL VAR x :: 0.0;’’’’’’’’’’ FOR i FROM 1 UPTO l.lng’’’’’> REP x INCR ((l.elem RSUB i) * (r.elem RSUB i)) PER;’’’’’’’’’.TAB OP * (TAB CONST v, REAL CONST r) :’’’’’’’’.TAB OP * (REAL CONST r, TAB CONST a) :’’’’’’’’ FOR i FROM 1 UPTO v.lng’’’’’> REP replace (v.elem, i, r*(a.elem RSUB i)) PER;’’’’’’’’’’’’’.TAB OP / (TAB CONST a, REAL CONST r) :’’’’’’’’ FOR i FROM 1 UPTO v.lng’’’’’> REP replace (v.elem, i, (a.elem RSUB i)/r) PER;’’’’’’’’’’’’’TEXT VAR error :: "";’’’’’’’’’>PROC test (TEXT CONST proc, TAB CONST v, INT CONST i) :’’’’’’’ IF i > v.lng THEN error := proc;’’’’’’’’’> error CAT "subscript overflow (LENGTH v=";’’’’’’’’’’’’’ error CAT text (v.lng); error CAT ", i=";’’’’’’ error CAT text (i);’’’’ error CAT ")";’’’’’’’’’ errorstop (error)’’’’’’ THEN error := proc;’’’’’’’’’. error CAT "subscript underflow (i = ";’ error CAT text (i);’’’’ error Crity,term,appendix.arity); ’’’’’ replace(tcrest,term, nil) ’END PROC append term; ’’’’’’’’.TERMS PROC revers (TERMS CONST ts): ’’’’’’’’’’ IF ts <= nil ’’’’’’’’’’’’> ELSE TERMS VAR reverted:= revers ((tcrestISUB(ts)) ); ’’’’’. append term (TERM:(tcsymbolISUBts, ’’’> revers (tcargumentsISUBts), ’’’’’’’. tcarityISUBts), ’’’. reverted); ’’’’’’’’’’’’’’ reverted ’’’’’’’’’’’’’ENDPROC revers; ’’’’’’’’’’’’’’.PROC call terms (TERMS VAR ts): ’’’’’’’’’’’’’’ TEXT VAR old:= sysout; ’’’’’ forget ("$sysin$",quiet); ’’ sysout ("$sysin$"); ’’’’’’’’ WHILE ts > nil ’’’’’’’’’’’’’. REP write term (TERM:(tcsymbolISUBts, ’’’’’’. tcargumentsISUBts, ’’’. tcarityISUBts)); ’’’’’ ts:= tcrestISUB(ts) ’’’’ write ("elan(sysin,())."); ’ sysout (old); ’’’’’’’’’’’’’’ sysin ("$sysin$") ’’’’’’’’’ENDPROC call terms; ’’’’’’’’’’>PROC write environment list (FRAME CONST frame): ’’’’’’’’’’’’’> write environment list (frame, fc(frame).environment); ’’’’.ENDPROC write environment list; ’’’’’’’’’’’’’’NPROC write environment list (FRAME CONST frame, ENVIRONMENT CONST en): ’’’’’’’ IF en <> nil ’’’’’’’’’’’’’’> THEN write environment list (frame, nc(en).rest); ’’’’’’’’’> write term (nc(en).first.variable); write (" = "); ’> value (nc(en).first.variable, t, frame); ’’’’’’’’’’’’’. write term backward (t); ’’’’’’’’’’’’’> IF en <> fc(frame).environment THEN write (", ") FI ’’.ENDPROC write environment list; ’’’’’’’’’’’’’’.PROC write knowledge base (CLAUSES CONST k): ’. TERMS VAR t:= (kcfirstISUB(k)) ; ’’’’’’’’’’> IF t > nil CAND k <= reset kp CAND k > build ins ’’’’’’’’> CAND (pattern = cut COR pattern = (tcsymbolISUB(t)) ’’’’’’’ THEN found:= FALSE; ’’’’’’’. IF (kcrestISUB(k)) > nil ’’’’’’’’’’> THEN write knowledge base ((kcrestISUB(k)) ) ’’’’’’’’’N write term (TERM:(tcsymbolISUBt, tcargumentsISUBt, tcarityISUBt)); ’’’ t:= (tcrestISUB(t)) ;  IF t > nil ’’’’’’’’’ THEN write (":- "); ’’ write terms ’’’’’ write ("."); ’’’’’’’’’N ELIF (found COR k <= build ins) CAND (kcrestISUB(k)) > nil ’’’’’’’’’’’’’’’> THEN write knowledge base ((kcrestISUB(k)) ) ’’’’’’’’’’’’’’ write terms:  BOOL VAR once:= FALSE; ’’’’ WHILE t <> nil ’’’’’’’’’’’’> REP IF once THEN write (", ") ELSE once:= TRUE FI; ’’’’’’’N write term (TERM:(tcsymbolISUBt, tcargumentsISUBt, tcarityISUBt)); ’’’ t:= (tcrestISUB(t)) ; ENDPROC write knowledge base; .PROC write symbol (TERM CONST t): ’’’’’’’’’’’’> TEXT VAR w1, w2:= name (symboltable, t.symbol); ’’’’’’’’’’’ IF quoting ’’’’’’’’’’’’’’ THEN scan (w2); ’’’’’’’’’’’. next symbol (w1, i); INT VAR i; ’’’’’’. IF w1 = w2 CAND i <> num ’’’’’’’’’’’ THEN write (w2) ’’’’’’> ELSE write (""""); write (w2); write ("""") ’’’’’’’’’’ ELSE write (w2) ’’’’’’’’’’’ENDPROC write symbol; ’’’’’’’’.PROC write term backward (TERM CONST t): ’’’’’ IF t.arity = integer ’’’’. THEN write (text (t.symbol)) ’’’’’’’’’’’’’’ ELIF t.symbol <= cons ’’’’’ THEN IF t.symbol < 0 ’’’’. THEN write ("_"+text(-t.symbol)) ’’’’’ ELSE write ("["); ’’’’N write subterms backward (t, t.arguments); write ("]") ’’’’’’’’’’’ write symbol (t); ’’’’. IF t.arguments <> nil ’’’’’’’’’’’’’’ THEN compound term ’’’ compound term: ’’’’’’’’’’’’’’N write ("("); write subterms backward (t, t.arguments); write (")"). ’’’’’’’ENDPROC write term backward; >PROC write subterms backward (TERM CONST t, TERMS CONST ts): ’ IF ts = nil ’’’’’’’’’’’’’> ELSE write subterms backward (t, (tcrestISUB(ts)) ); ’’’’’’ write term backward ( N TERM:(tcsymbolISUBts, tcargumentsISUBts, tcarityISUBts)); ’’’’’’. IF ts <> t.arguments ’’’’’’’’’’’’’’’N THEN IF t.symbol = cons THEN write ("|") ELSE write (",") FI ’’’’’’’’’.ENDPROC write subterms backward; ’’’’’’’’’’’’’.PROC write term (TERM CONST t): ’’’’’’’’’’’’’’ IF t.arity = integer ’’’’. THEN write (text (t.symbol)) ’’’’’’’’’’’’’’ ELIF t.symbol <= cons ’’’’’ THEN IF t.symbol < 0 ’’’’. THEN write ("_"+text(-t.symbol)) ’’’’’> ELSE write ("["); write terms; write ("]") ’’’’’’’’’’’ write symbol (t); ’’’’. IF t.arguments <> nil ’’’’’’’’’’’’’’ THEN compound term ’’’ compound term: ’’’’’’’’’’’’’’. write ("("); write terms; write (")"). ’’’’ write terms: . TERMS VAR ts:= t.arguments; ’’’’’’’’’’’’’’’ WHILE ts <> nil ’’’’’’’’’’’ REP write term ( ’’’’’’’’’N TERM:(tcsymbolISUBts, tcargumentsISUBts, tcarityISUBts)); ’’’’’’ ts:= tcrestISUB(ts); ’ IF ts <> nil ’’’’’’’N THEN IF t.symbol = cons THEN write ("|") ELSE write (",") FI ’’’’’’’’’ENDPROC write term; ’’’’’’’’’PROC read consult list: ’’’’’’ TERM VAR t; ’’’’’’’’’’’’’’’ TERMS CONST old tp:= tp; ’’. WHILE filename read REP PER; ’’’’’’’’’’’’’’. IF look ahead <> close bracket ’’’’’’’’’’> THEN syntax error ("closing bracket expected") ’’’’’’’’’’’’ remove token; ’’’’’’’’’’’’’. reset symboltable:= symboltable; ’’’’’’’’’’ TERMS CONST ts:= tp; ’’’’’’ tp:= old tp; ’’’’’’’’’’’’’’ consult list (ts); ’’’’’’’’ from file:= FALSE. ’’’’’’’’ filename read: ’’’’’’’’’’’’’’. BOOL VAR was minus:= FALSE; ’’’’’’’’’’’’’’’ IF look ahead = minus ’’’ THEN remove token; ’’’’’’’’ was minus:= TRUE ’’’’’. IF look ahead = identifier ’’’’’’’’’’’’’’ THEN new tp (tp); ’’’’’’’’’ read term (t); ’’’’’’’. replace(tcsymbol,tp, t.symbol); ’’’’’’. replace(tcarguments,tp, t.arguments); . replace(tcarity,tp, t.arity); ’’’’’’’’> IF was minus THEN replace(tcarity,tp, var); ’’’’’’’’’’N IF NOT exists (name (symboltable, (tcsymbolISUB(tp)) ’’’’’’’’’’’’’’’ )) ’’’> THEN syntax error ("file does not exist"); FALSE ’’’’’> ELIF look ahead = comma THEN remove token; TRUE ’’’’’’ ELSE TRUE ’’’’’’’’’’’’ ELSE FALSE  remove token: ’’’’’’’’’’’’’’’ look ahead empty:= TRUE. ’’ENDPROC read consult list; ’’’.PROC consult list (TERMS CONST ts): ’’’’’’’’’’ IF ts > tp ’’’’’’’’’’’’’’ THEN TERM VAR term:= ’’’’’’N TERM:(tcsymbolISUBts, tcargumentsISUBts, tcarityISUBts); ’’’’’’’’’’’’’ consult list (ts-1); ’ IF free of errors ’’N THEN TEXT VAR fname:= name (symboltable, term.symbol); ’’’’’’’’’’’’’’’. IF term.arity = var ’’’’’’’’’’’N THEN put ("reconsulting"); putline (fname); reconsult (fname) ’’’N ELSE put ( "consulting"); putline (fname); consult (fname) ’’’ FI ’’’’’’’’’’’’’’ENDPROC consult list; ’’’’’’’’>PROC initiate read terms (TERMS VAR ts, TEXT CONST prompter):  enable stop; ’’’’’’’’’’’’’’> look ahead empty:= TRUE; ahead empty:= TRUE; ’’’’’’’’’’’’’’ from file:= FALSE; ’’’’’’’’ TEXT VAR inputline; ’’’’’’’ IF prompter = "-" ’’’’’’’ THEN inputline:= "" ’’’’’’’ ELSE inputline:= ""13"" ’’’. WHILE sysin = "" CAND is escape ’’’’’’’> REP write (""13""15"gib kommando: "); ’’’’’’’’’’’’’’’ get command; ’’’’. IF inputline = "" ’’’’’’’’’’’’’. THEN write (""14""3""3"") ’’’’’’’. ELSE write (""14""13""10""); ’’’’. IF prompter = "-" ’’’’’’’’N THEN lernseqAT ")";’’’’’’’’’ errorstop (error)’’’’’’END PROC test;.PROC test (TEXT CONST proc, TAB CONST a, b) :’ IF a.lng <> b.lng’’’’’’’’’’’ THEN error := proc;’’’’’’’’’ error CAT "LENGTH a ("; IF a.lng <= 0’’’’’’’’’’. THEN error CAT "undefined"’’’’’’’’’’’’’. ELSE error CAT text (a.lng) FI;’’’’’’’’. error CAT ") <> LENGTH b (";’’’’’’’’’’’ error CAT text (b.lng); error CAT ")";’’’’’’’’’ errorstop (error)’’’’’’END PROC test;.PROC get (TAB VAR v, INT CONST lng) :’’’’’’’’’ v.lng := lng;’’’’’’’’’’’’’’’ v.elem := lng * "12345678";’ FOR i FROM 1 UPTO lng’’’’’’’ REP get (x); replace (v.elem, i, x)’’>PROC put (TAB CONST v, INT CONST laenge, fracs) :’’’’’’’’’’’’’ FOR i FROM 1 UPTO v.lng’’’’’> REP put (text (v.elem RSUB i, laenge, fracs)) PER’’’’’’’’’’’PROC put (TAB CONST v) :’’’’’’ FOR i FROM 1 UPTO v.lng’’’’’. REP put (text (v.elem RSUB i)) PER’’’’’’’’’’END PACKET vector;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’dyn.proc’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q–a€ė’’¢Ÿķ’’’’£M’’’’’’dyn.proc’’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’a€’E’’’’’’’’’’’’’’’’’’’±€’1’’’’’’’’’’’’’’’’’’’ń€’4’’’’’’’’’’’’’’’’’’’1’1’’’’’’’’’’’’’’’’’’’q’+’’’’’’’’’’’’’’’’’’’”’M’’’’’’’’’’’’’’’’’’’’’ (* uses:’’’’’’’’’’ń’D’’’’’’’’’’’’’’’’’’’A‚’$’’’’’’’’’’’’’’’’’’’q‚’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”‚’H’’’’’’’’’’’’’’’’’’’ń‚’I’’’’’’’’’’’’’’’’’’’Aƒ’K’’’’’’’’’’’’’’’’’’’‘ƒ’I’’’’’’’’’’’’’’’’’’’გ9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!„’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’*)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q„’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”„’!’’’’’’’’’’’’’’’’’’’ф’’’’’’’’’’’’’’’’’’’’ń„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’…’M’’’’’’’’’’’’’’’’’’’a…’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±…’#’’’’’’’’’’’’’’’’’’’į…’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!†’$’’’’’’’’’’’’’’’’’’’Q†’’’’’’’’’’’’’’’’’’’’q†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘†’J’’’’’’’’’’’’’’’’’’’ᆒ!’’’’’’’’’’’’’’’’’’’‡’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a‡’$’’’’’’’’’’’’’’’’’’’‘‡’’’’’’’’’’’’’’’’’’’’±‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ч’#’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’!ˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aˆ’,’’’’’’’’’’’’’’’’’’’qˆ’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įˆ’M’’’’’’’’’’’’’’’’’’’‰’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a‰’B’’’’’’’’’’’’’’’’’’’±‰’’’’’’’’’’’’’’’’’’’’щ’E’’’’’’’’’’’’’’’’’’’!Š’@’’’’’’’’’’’’’’’’’’’qŠ’’’’’’’’’’’’’’’’’’’’‘Š’’’’’’’’’’’’’’’’’’’’±Š’’’’’’’’’’’’’’’’’’’’ъ’’’’’’’’’’’’’’’’’’’’ńŠ’+’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‹’’’’’’’’’’’’’’’’’’’’A‹’)’’’’’’’’’’’’’’’’’’’q‹’C’’’’’’’’’’’’’’’’’’’Į‹’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń‹’)’’’’’’’’’’’’’’’’’’’!Œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŒ’B’’’’’’’’’’’’’’’’’’’‘Œ’’’’’’’’’’’’’’’’’’’’±Œ’#’’’’’’’’’’’’’’’’’’’ጒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’K’’’’’’’’’’’’’’’’’’’±’%’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’Ž’+’’’’’’’’’’’’’’’’’’’1Ž’F’’’’’’’’’’’’’’’’’’’’’PER;’’’’’’’’’’’’’’’’’’’summe’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ž’9’’’’’’’’’’’’’’’’’’’įŽ’’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’’PER;’’’’’’’’’’’’’’’’’’’summe’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’ END PROC sum;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’M’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’"’’’’’’’’’’’’’’’’’’’’’ random-0.5’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’/’’’’’’’’’’’’’’’’’’’ᐒ’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’’’‘’M’’’’’’’’’’’’’’’’’’’Q‘’’’’’’’’’’’’’’’’’’’’q‘’’’’’’’’’’’’’’’’’’’’’’PER;’’’’’’’’’’’’’’’’’’’ z:=z-6.0;’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’”‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į‘’M’’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’’2’’’’’’’’’’’’’’’’’’’”’’2’’’’’’’’’’’’’’’’’’’į’’M’’’’’’’’’’’’’’’’’’’1“’5’’’’’’’’’’’’’’’’’’’q“’B’’’’’’’’’’’’’’’’’’’Į“’I’’’’’’’’’’’’’’’’’’’”’5’’’’’’’’’’’’’’’’’’’’’ ELSE 0.0’’’’’’’’’’’’END IF’’’’’’’’’’’’’’’Q”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q”’+’’’’’’’’’’’’’’’’’’’””’&’’’’’’’’’’’’’’’’’’’є’)’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’•’'’’’’’’’’’’’’’’’’’’’A•’#’’’’’’’’’’’’’’’’’’’q•’<’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’±•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į•’+’’’’’’’’’’’’’’’’’’’ń•’’’’’’’’’’’’’’’’’’’’–’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1–’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NPACKET dynamo prozeduren DEFINES clip,fifge,switch,fifze,table,tabhl,’’’’’’’’’> sclprd,sum,sumv,’’’’’’’’’’’’’> noise,normrn,power,’’’’’’’’’’> pulse,step,ramp,’’’’’’’’’’’’’. set time :’’’N(***************************************************D.Craemer 16. 2.1983 ***)’N type TAB (Tabellen), wert, laenge’’’’’’’’’’. abs’’’’’’’’’’. random’’’’’’’N globale Variablen simulationtime wird durch das DYNAMO-’’’’’’N Programm gesetzt und in’’’’’N den Funktionen, die zeit-’’’N lich ausgeloest werden,’’’’’> uenz auf taste legen ("k", inputline); ’’’’’’’’’ FI; ’’’’’’’’. disable stop; ’’’’’’’’’’’’’’N lernsequenz auf taste legen ("q","break"13""); ’’’’’’’’’’’’’. do (inputline); ’’’’’’’’’’’’N lernsequenz auf taste legen ("q","bye"13""); ’’’’’’’’’’’’’’’. IF is error ’’’’’’’’’’’’’’> THEN put (errormessage); clear error ’’’’’’’ FI; ’’’’’’’’. enable stop; ’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’. write (""13""10""5"?"); ’’’’’’’’’. write (prompter); ’’’’’’’’’’’’’’’ write (" ") ’’’’’ getline (inputline); ’’ IF inputline <> "" ’’> CAND (inputline SUB length (inputline)) <> "." ’’’’’’’’ THEN inputline CAT "."  scan (inputline); ’’’’’ ts:= nil ’’’’’’’’’’’’’’ UNTIL inputline <> "" PER;  IF prompter = "-" ’’’’’’’> THEN lernsequenz auf taste legen ("k", inputline) ’’’’’’’’’. REP IF inputline = ""13"" ’’’’’’’’’’’’’’. THEN write (""13""10""5"?"); ’’’’’’’’’. write (prompter); ’’’’’’’’’’’’’’’ write (" ") ’’’’’ ELIF inputline = "?" ’> THEN putline ("?"); inform; push (""13"") ’’’’’’’’’’’’ getchar (inputline) ’’. UNTIL pos ("?"13"", inputline) = 0 ’’’’’’’’ IF inputline = ""27"" ’’’ THEN getchar (inputline); ’. IF inputline = ""27"" ’’’’’’’’’’’’’’ THEN TRUE ’’’’’’’’’’’’> ELSE push (inputline); push (""27""); FALSE ’’’’’’’’’’. ELSE push (inputline); FALSE ’’’’’’’’’’’’’’ get command:  getchar (inputline); ’’’’’’ IF inputline = ""27"" ’’’ THEN getchar (inputline); ’. IF inputline = ""27"" ’’’’’’’’’’’’’’ THEN inputline:= ""; ’ line ’’’’’’’’’’’’. ELSE push (inputline); ’’’’’’’’’’’’’’’ push (""27""); ’’. getline (inputline) ’’’’’’’’’’’’’ ELSE push (inputline); ’’’’ getline (inputline) ’’ENDPROC initiate read terms; ’NPROC initiate read terms (TEXT CONST knowledge, TERMS VAR ts): ’’’’’’’’’’’’’’’> look ahead empty:= TRUE; ahead empty:= TRUE; ’’’’’’’’’’’’’’. file:= sequential file (input, knowledge);  from file:= TRUE; ’’’’’’’’’ scan (file); ’’’’’’’’’’’’’’ENDPROC initiate read terms; ’.PROC read terms (TERMS VAR ts): ’’’’’’’’’’’’’’N { the actual parameter for ts should be initiated < ts:=nil > ’’’’’’’’’’’’’. at top level of recursion ’’’’’’’’’’’’’’’ TERM VAR t; ’’’’’’’’’’’’’’’N WHILE look ahead <> close paren CAND look ahead <> close bracket ’’’’’’’’’’ CAND look ahead <> period  REP read term (t); ’’’’’’’ append term (t, ts) ’’ UNTIL end of list PER. ’’’’ end of list:  IF look ahead = comma ’’’ THEN remove comma; ’’’’’’’’ FALSE . remove comma: look ahead empty:= TRUE. ’’’’’’ENDPROC read terms; ’’’’’’’’’’PROC read term (TERM VAR t): ’. IF look ahead = open paren ’’’’’’’’’’’’’’ THEN remove token; ’’’’’’’’ read term (t); ’’’’’’’. transform infix to prefix (t, 0); ’’’’. IF look ahead = close paren ’’’’’’’’ THEN remove token ’’’’> ELSE syntax error ("closing parentheses missing") ’’’’ ELSE read prefix term (t); . transform infix to prefix (t, 0) ’’’’’. remove token: look ahead empty:= TRUE . ’’’’’ENDPROC read term; ’’’’’’’’’’’NPROC transform infix to prefix (TERM VAR t, INT CONST last prio): ’’’’’’’’’’’’ SELECT look ahead OF ’’’’N CASE minus, plus, times, slash, less, equal, uneq, grt, eqeq, eqdotdot, ’ boldvar: ’’’’’’’’’’’. operator:= look ahead value; ’’’’’’’> IF last prio <= priority (operator) ’’’’’’’’’’’’’’ THEN ’’’’’’’’’’’’’’’ remove token; ’. IF look ahead = open paren ’’. THEN read term (t2); ’’’’’’’’’’. ELSE read prefix term (t2); ’’’ FI; ’’’’’’’’’’’> IF last prio < priority (operator) ’’’’’’’’’’N THEN transform infix to prefix (t2, priority (operator)); ’’’’’ FI; ’’’’’’’’’’’ form result; ’’> transform infix to prefix (t, last prio) ’’’’’’ ENDSELECT. ’’’’’’’’’’’’’’ form result:  second operand; ’’’’’’’’’ first operand; ’’’’’’’’’’second operand: ’’’’’’’’’’’’’’ TERMS VAR p2; ’’’’’’’’’’’ TERM VAR t2; ’’’’’’’’’’’’ new tp (p2); ’’’’’’’’’’’’. replace(tcsymbol, p2, t2.symbol); ’’’’’’’. replace(tcarguments, p2, t2.arguments); ’. replace(tcarity, p2, t2.arity); ’’’’’’’’’. replace(tcrest, p2, nil). ’’’’’’’’’’’’’’’first operand: ’’’’’’’’’’’’’’’ TERMS VAR p1; ’’’’’’’’’’’ new tp (p1); ’’’’’’’’’’’’. replace(tcsymbol, p1, t.symbol); ’’’’’’’’. replace(tcarguments, p1, t.arguments); ’’. replace(tcarity, p1, t.arity); ’’’’’’’’’’ replace(tcrest, p1, p2).  INT VAR operator; ’’’’’’’ t.symbol:= operator; ’’’’ t.arguments:= p1; ’’’’’’’ t.arity:= 2. ’’’’’’’’’’’’ remove token: ’’’’’’’’’’’’’’’ look ahead empty:= TRUE. ’’.ENDPROC transform infix to prefix; ’’’’’’’’’’’.INT PROC priority (INT CONST operator): ’’’’’’ SELECT operator OF ’’’’’’’’ CASE times, slash, mod: 7  CASE minus, plus: 6  CASE 9,10,11,12,13: 5  OTHERWISE 2 ENDPROC priority; ’’’’’’’’’’’’.PROC read prefix term (TERM VAR t): ’’’’’’’’’’ SELECT look ahead OF ’’’’’’. CASE exclamation: term is cut ’’’’’’’’’’’’. CASE bold var: term is a variable ’’’’’. CASE underscore: term is anonym ’’’’’’’’’. CASE number: term is number ’’’’’’’’’ CASE identifier, ’’’’’’’’’’N minus, plus, times, slash, less, equal, uneq, grt, eqeq, eqdotdot: ’’’. IF look ahead = minus . THEN remove token; ’’’’’N IF look ahead = number {monadic minus} ’’’’’’’’’N THEN look ahead value:= - look ahead value; ’’’’’’’> term is number; ’’’’’’’’’’’’’’> LEAVE read prefix term ’’’’’’’ FI . ELSE remove token ’’’’’’ FI; ’’’’. term is identifier; ’’’’> IF look ahead = open paren ’’’’’’’’’’’. THEN term is compound ’’> { ELSE term is a constant } ’’’’’’’’’’’’’’ FI ’’’’’. CASE open bracket: term is list ’’’’’’’’’’’. CASE colon: term is colon ’’’’’’’’’’> OTHERWISE syntax error ("wrong expression"); ’’’’’. t:= TERM:(nil, nil, 0) ’ ENDSELECT.  term is cut:  remove token; ’’’’’’’’’’’’’ t:= TERM:(cut, nil, 0). ’’’ term is a variable: ’’’’’’’’’ remove token; ’’’’’’’’’’’’’. t:= TERM:(look ahead value, nil, var). ’’’’ term is anonym: ’’’’’’’’’’’’’ remove token; ’’’’’’’’’’’’’ anonym value DECR 1; ’’’’’’. t:= TERM:(anonym value, nil, var). ’’’’’’’’ term is number: ’’’’’’’’’’’’’ remove token; ’’’’’’’’’’’’’. t:= TERM:(look ahead value, nil, integer).  term is identifier: ’’’’’’’’’. t:= TERM:(look ahead value, nil, 0). ’’’’’’ term is list: ’’’’’’’’’’’’’’’ remove token; ’’’’’’’’’’’’’ t:= TERM:(nil, nil, 0); ’’’. IF look ahead = close bracket ’’’’’’’’’’’ THEN remove token ’’’’’’’’’ ELSE non empty list ’’’’’’’ non empty list: ’’’’’’’’’’’’’ TERM VAR t1; ’’’’’’’’’’’’’’ read term ( benutzt’’’’’N lastpulse Zeit des letzten Pulses’’’’’.REAL VAR simulation time,last pulse:=0.0;’’’’’.PROC set time (REAL CONST time) :’’’’’’’’’’’’’ simulation time := time’’’’’’END PROC set time ;’’’’’’’’’’’N(************************ ab hier Funktionen *******************************)’N(************************ zur Wertauswahl *******************************)’.REAL PROC clip(REAL CONST p,q,r,s):’’’’’’’’’’’ IF r>=s THEN p ELSE q FI’ END PROC clip;’’’’’’’’’’’.REAL PROC fifge(REAL CONST p,q,r,s):’’’’’’’’’’ clip(p,q,r,s)’’’’’’’’’’’’’ END PROC fifge;’’’’’’’’’’N(* clip und fifge machen dasselbe, der Name fifge gibt die Funktion besser’’’’.wieder: first if greater or equal’’’’’’’’’’’’’N = == = = *)’’.REAL PROC switch (REAL CONST p,q,r):’’’’’’’’’’ IF r=0.0 THEN p ELSE q FI END PROC switch;’’’’’’’’’.REAL PROC fifze (REAL CONST p,q,r):’’’’’’’’’’’ switch(p,q,r)’’’’’’’’’’’’ END PROC fifze;’’’’’’’’’’.(* Funktion switch oder fifze: first if zero’’N = == == *)’’’’N(************************ ab hier Funktionen *******************************)’N(************************ mit Tabellen *******************************)’NREAL PROC table (TAB CONST t, REAL CONST x, xlow, x high, xincr) :’’’’’’’’’’’’ IF x < x low OR x > x high’’N THEN putline("TABLE out of range: xlow="+text(xlow)+" x="+text(x)+ ’’’’’’’’’N " xhigh="+text(xhigh)+" xincr="+text(xincr));0.0 ’’’’’’’’’’’’’’ ELIF x=xhigh ’’’’’’’’’’’’’’’ THEN wert(t,laenge(t))’ ELIF x=xlow ’’’’’’’’’’’ THEN wert(t,1) ’’’. ELSE deliver interpolated value’’’deliver interpolated value:’’’. INT VAR index :: int((x-xlow)/xincr)+1;’’’’’N REAL VAR m :: ((wert (t, index + 1) - wert (t, index)) / x incr),’’’’’’’’’’’. b :: wert (t, index);’’’’’’’’’’’’’’. m * (x-(xlow+real(index-1)*xincr)) + b.’’’’’END PROC table; ’’’’’’’’’’’’’’NREAL PROC tabhl (TAB CONST t, REAL CONST x, xlow, x high, xincr) :’’’’’’’’’’’’ IF xlow < x AND x < xhigh’’. THEN table(t,x,xlow,xhigh,xincr) ’’’’’’’’’’’ ELIF x <= xlow ’’’’’’’’’’’’’ THEN wert(t,1) ’’’’’’’’ ELSE wert(t,laenge(t))’END PROC tabhl ;’’’’’’’’’’’’’’NREAL PROC sclprd(TAB CONST tab1,REAL CONST erstes1,letztes1,TAB CONST tab2,’’’. REAL CONST erstes2):’’’’’’’’’REAL VAR summe:=0.0;’’’’’’’’’’.FOR i FROM 0 UPTO int(letztes1-erstes1) REP’’’N summe:=summe + wert(tab1,int(erstes1)+i)*wert(tab2,int(erstes2)+i)’’’’’’’’END PROC sclprd;’’’’’’’’’’’’’’>REAL PROC sumv(TAB CONST tab, REAL CONST erstes,letztes):’’’’’REAL VAR summe:=0.0;’’’’’’’’’’.FOR i FROM int(erstes) UPTO int(letztes) REP’’ summe:=summe+wert(tab,i)’’END PROC sumv;REAL PROC sum(TAB CONST tab):’. sumv(tab,1.0,real(laenge(tab)))’’’’’’’’’’’’N(************************ ab hier Funktionen *******************************)’N(************************ mit Zufallszahlen *******************************)’.REAL PROC noise(REAL CONST dummy):’’’’’’’’’’’’END PROC noise;’’’’’’’’’’’’’’’>REAL PROC normrn(REAL CONST mittelwert,stdvar):’’’’’’’’’’’’’’’REAL VAR z:=0.0;’’’’’’’’’’’’’’N(* Methode nach NAYLOR et al.: Computer Simulation Technique, Wiley,NY 1966*)’FOR i FROM 1 UPTO 12 REP’’’’’’ z:=z+randommittelwert+z*stdvar’’’’’’’’’’’END PROC normrn;’’’’’’’’’’’’’’N(************************ ab hier Funktionen *******************************)’N(************************ mit Zeitausloesung ******************************)’>REAL PROC pulse(REAL CONST height,first,interval):’’’’’’’’’’’’>IF simulationtime < first THEN lastpulse:=0.0; 0.0’’’’’’’’’’’’N ELIF abs(simulationtime-first) < smallreal THEN lastpulse:=simulationtime;’> height’’’’’’’’’N ELIF abs(simulationtime-(lastpulse+interval)) < smallreal THEN ’’’’’’’’’’’’N lastpulse:=simulationtime;’’’’’> height’’’’’’’’’END PROC pulse;’’’’’’’’’’’’’’’.REAL PROC step(REAL CONST height,steptime):’’’. IF simulationtime ELSE slope*(simulationtime-start)’’END PROC ramp;.REAL PROC power(REAL CONST basis,exponent):’’’ basis**int(exponent)’’’’’’’END PROC power’’’’’’’’’’’’’’’END PACKET dynamo prozeduren ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’dyn.grashasenfuchs’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’цa€ė’’* )’’’’+++.Mūž’’++’’!†’n.vg2’’’’’’’’’’’’’’’’’’’’’’,,*’’’’’’’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’a€’A’’’’’’’’’’’’’’’’’’’±€’,’’’’’’’’’’’’’’’’’’’ဒ<’’’’’’’’’’’’’’’’’’’!’?’’’’’’’’’’’’’’’’’’’q’B’’’’’’’’’’’’’’’’’’’Į’@’’’’’’’’’’’’’’’’’’’‚’<’’’’’’’’’’’’’’’’’’’Q‚’!’’’’’’’’’’’’’’’’’’’‚’4’’’’’’’’’’’’’’’’’’’Į‚’#’’’’’’’’’’’’’’’’’’’ń‚’’’’’’’’’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’Aƒ’’’’’’’’’’’’’’’’’’’’’’NOTE’’’’’’’’’’’’’’’’’aƒ’D’’’’’’’’’’’’’’’’’’’±ƒ’*’’’’’’’’’’’’’’’’’’’გ>’’’’’’’’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’ N GRAS=IG’’’’’’’’’’’ N HASEN=IH’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’1„’"’’’’’’’’’’’’’’’’’’’a„’-’’’’’’’’’’’’’’’’’’’‘„’$’’’’’’’’’’’’’’’’’’’Į„’,’’’’’’’’’’’’’’’’’’’ń„’8’’’’’’’’’’’’’’’’’’’1…’-’’’’’’’’’’’’’’’’’’’a…’+’’’’’’’’’’’’’’’’’’’’’ C IG=1E+3’’’’’’’’’’’ C IH=110’’’’’’’’’’’’ C IF=25’’’’’’’’’’’’’NOTE’’’’’’’’’’’’’’’’’‘…’’’’’’’’’’’’’’’’’’’’’’NOTE’’’’’’’’’’’’’’’’’t1); ’’’’’’’’’’’. append term (t1, t.arguments); ’’’’’’’’’’’’. IF look ahead = close bracket ’’’’’’’’’’’ THEN remove token; ’’’’’’’’ t.arity:= 1 ’’’’’’’’’’. ELSE list with more than one element ’’’’’’. list with more than one element: ’’’’’’’’’’’’ IF look ahead = stroke ’’ THEN t.symbol:= cons ’’’’’’> ELIF look ahead <> comma CAND look ahead <> colon ’’’’’’’’’. THEN syntax error ("comma missing") ’’’’’’’ term is compound list. ’’’’ term is compound list: ’’’’’’ remove token; ’’’’’’’’’’’’’ read terms (t.arguments); ’. t.arity:= no of terms (t.arguments); ’’’’’’. IF look ahead = close bracket ’’’’’’’’’’’ THEN remove token ’’’’’’’’’> ELSE syntax error ("closing bracket missing") ’’’’’’’’’’’’’ term is compound: ’’’’’’’’’’’ remove token; ’’’’’’’’’’’’’ read terms (t.arguments); ’. t.arity:= no of terms (t.arguments); ’’’’’’. IF look ahead = close paren ’’’’’’’’’’’’’ THEN remove token ’’’’’’’’’> ELSE syntax error ("closing parentheses missing") ’’’’’’’’’ term is colon: ’’’’’’’’’’’’’’ remove token; ’’’’’’’’’’’’’. INT VAR i:= link (symboltable, ":-"); ’’’’’ IF i = 0 . THEN insert (symboltable, ":-", i) ’’’’’’’’ t:= TERM:(i, nil, 0). ’’’’’ remove token: ’’’’’’’’’’’’’’’ look ahead empty:= TRUE. ’’ENDPROC read prefix term; ’’’.INT PROC no of terms (TERMS CONST ts): ’’’’’’’ INT VAR i:= 0, t:=ts; ’’’’’ WHILE t <> nil ’’’’’’’’’’’’ REP t:= (tcrestISUB(t)) ;  i INCR 1 ’’’’’’’’’’’’’ENDPROC no of terms; ’’’’’’’’’>INT PROC arith (TERM CONST term, FRAME CONST curr frame): ’’’ TERM VAR t; ’’’’’’’’’’’’’’’ IF term.arity = var ’’’’’. THEN value (term, t, curr frame) ’’’’’’’’’’ ELSE t:= term ’’’’’’’’’’’’’ IF t.arity = integer ’’’’ THEN t.symbol ’’’’’’’’’’’’’ ELIF t.arity = var ’’’’’’’’> THEN syntax error ("free variable in arith expression"); 0  ELIF t.arity = 1 ’’’’’’’’’’ THEN SELECT t.symbol OF ’’’. CASE plus: arith (t1, curr frame) ’. CASE minus: - arith (t1, curr frame) ’> OTHERWISE syntax error ("unknown arith operator"); 0 ’ ENDSELECT ’’’’’’’’’’’’ ELIF t.arity = 2 ’’’’’’’’’’ THEN SELECT t.symbol OF ’’’N CASE plus: arith (t1, curr frame) + arith (t2, curr frame) ’’’’’’’’N CASE minus: arith (t1, curr frame) - arith (t2, curr frame) ’’’’’’’’N CASE times: arith (t1, curr frame) * arith (t2, curr frame) ’’’’’’’’N CASE slash: arith (t1, curr frame) DIV arith (t2, curr frame) ’’’’’’’’N CASE mod: arith (t1, curr frame) MOD arith (t2, curr frame) ’’’’’’’’> OTHERWISE syntax error ("unknown arith operator"); 0 ’ ENDSELECT ’’’’’’’’’’’’> ELSE syntax error ("wrong arith expression"); 0 ’’’’’’’’’’’. t1: TERM:(tcsymbolISUBt.arguments, ’’’’’’’’’’. tcargumentsISUBt.arguments, ’’’’’’’. tcarityISUBt.arguments) . ’’’’’’’’’> t2: TERM:(tcsymbolISUB(tcrestISUB(t.arguments)) , ’’’’’’’’’’’> tcargumentsISUB(tcrestISUB(t.arguments)) , ’’’’’’’’> tcarityISUB(tcrestISUB(t.arguments)) ) . ’’’’’’’’’’ENDPROC arith; ’’’’’’’’’’’’’’’TOKEN PROC look ahead : ’’’’’’. { Returns the token in the look ahead. ’’’> If the look ahead is empty it calls the scanner ’’’’’’’’’ to get the next symbol, ’> which is then placed into the look ahead. ’’’’’’’’’’’’’’’ SYMBOLTYPE VAR symboltype;  IF look ahead empty ’’’’’. THEN look ahead empty:= FALSE; ’’’’’’’’’’’’ get next symbol; ’’’’’ store the symbol ’’’’’ look ahead token. ’’’’’’’’’ get next symbol: ’’’’’’’’’’’’ IF ahead empty ’’’’’’’’’’ THEN IF from file ’’’’’’’N THEN next symbol (file, look ahead symbol, symboltype) ’’’’’’’’’’’’’’’> ELSE next symbol (look ahead symbol, symboltype) ’’’’’ ELSE ahead empty:= TRUE; ’’. look ahead symbol:= ahead symbol; ’’’’. symboltype:= ahead symboltype ’’’’’’’’ store the symbol: ’’’’’’’’’’’ SELECT symboltype OF ’’’’’’> CASE tag,tex: look ahead token:= identifier; ’’’’’’’’’’> IF look ahead symbol = "" ’’’’’’’’’’’’’> THEN look ahead value:= 0; ’’’’’’’’’’’’’’. ELSE install ’’’’’’’’’’’’ FI ’’’’’’> CASE num: look ahead token:= number; ’’’’’’’’’’’’’’N look ahead value:= int(look ahead symbol) ’’’’’’’’’’’’’’’> CASE bold: look ahead token:= bold var; ’’’’’’’’’’’’ install ’. CASE operator: look ahead token:= ’’’’’’N pos ("|!:-+*/_<=<>==..", look ahead symbol); ’’’’’’’’’’’> IF look ahead token = equal ’’’’’’’’’’’. THEN get next symbol; ’’’> IF symboltype = operator ’’’’’’’’’> CAND look ahead symbol = "=" ’’’’’’’> THEN look ahead token:= eqeq; ’’’’’’> look ahead symbol:= "==" ’’’’’’> ELIF look ahead symbol = "." ’’’’’’’> THEN get next symbol; ’’’’’’’’’’’’’’> IF look ahead symbol = "." ’’N THEN look ahead token:= eqdotdot; ’’’’’’’’’’’’’> look ahead symbol:= "=.." N ELSE syntax error ("second period missing") ’’’. FI ’’’’’’’’’’’’N ELSE ahead symbol:= look ahead symbol; ’’’’’’’’’’’’’> ahead symboltype:= symboltype; > ahead empty:= FALSE; ’’’’’’’’’’> look ahead symbol:= "="; ’’’’’’> look ahead token := equal ’’’’’ FI ’ FI; ’’’’’> IF look ahead token > 3 ’’’’’’’’’’’’’’’. THEN install ’’’’’’’’’’’’ FI ’’’’’’. CASE delimiter: look ahead token:= ’’’’’’N pos ("|!:-+*/_<=<>==..,;()[]", look ahead symbol); ’’’’’’> SELECT look ahead token OF ’’’’’’’’’’’’’’> CASE colon: minus must follow ’’’’’’’’’’’N CASE 0: syntax error ("wrong delimiter") ’’’’’’’’’’’’. ENDSELECT ’’’’’’’’’’’’’’’> CASE endoffile: look ahead token:= end of input ’’’’’’’’’> CASE within com: look ahead token:= end of input; ’’’’’’’’> syntax error ("within comment") ’’’’’’’’’> CASE within tex: look ahead token:= end of input; ’’’’’’’’> syntax error ("within text") ’’’’’’’’’’’’ ENDSELECT.  minus must follow: ’’’’’’’’’’ get next symbol; ’’’’’’’’’’. IF look ahead symbol <> "-" ’’’’’’’’’’’’’’> THEN syntax error ("minus after colon expected") FI. ’’’’’’> look ahead value:= link (symboltable, look ahead symbol); ’ IF look ahead value = 0 ’N THEN insert(symboltable,look ahead symbol,look ahead value) ’’’’’’’’’’’’’’’ENDPROC look ahead; ’’’’’’’’’’ enable stop; ’’’’’’’’’’’’’’ put (" "); ’’’’’’’’’’’’’’’. put (clock(0) - start time); put ("SEC"); ’> IF inference count > 0 CAND clock(0) > start time ’’’’’’’> put (inference count); put ("inferences"); ’’’’’’’’’’’N put (int (real (inference count) / (clock(0) - start time))); ’’’’’’’’ put ("LIPS") ’’’’’’’’’ FOR k FROM 2 UPTO fsp ’’’’’. FRAME CONST f:= fsc(k).frame; ’’’’’’’’’. INT CONST ind:= fc(f).level; ’’’’’’’’’’ IF in’’ C DT=0.083’’’’’’’’±…’-’’’’’’’’’’’’’’’’’’’’’ C LENGTH=5+’’A†’’’’’’’’’’’-’’‘†’5’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NNOTE Raeuber-Beute-Beziehung nach VOLTERRA am Beispiel Fuchs-Hase’’’’’’’’’’’’’.NOTE Aenderung: mit FUTTER und CLIP-Funktion’’>L GRAS.K=CLIP(GRAS.J+DT*(WACHSR.JK-FRESSR.JK),0,GRAS.J,0)’’NL HASEN.K=CLIP(HASEN.J+DT*(HGRATE.JK-HSRATE.JK),0,HASEN.J,0)’’’’’’’’’’’’’’’NL FUECHS.K=CLIP(FUECHS.J+DT*(FGRATE.JK-FSRATE.JK),0,FUECHS.J,0)’’’’’’’’’’’’NR WACHSR.KL=(GPROZ/100)*GRAS.K GPROZ Wachstumsprozente’’’’’’’’’’’’’’>R FRESSR.KL=GFRESS*HASEN.K*GRAS.K GFRESS in: pro Hasen’’.R HGRATE.KL=HGK*HASEN.K*GRAS.K’’’’’’’’’’’’’>R HSRATE.KL=TREFF*HASEN.K*FUECHS.K+HSTIRB*HASEN.K’’’’’’’’’’.R FGRATE.KL=FGK*HASEN.K*FUECHS.K’’’’’’’’’’’R FSRATE.KL=FSK*FUECHS.K’’’.NOTE Gleichgewichtsbedingungen:’’’’’’’’’’’’’’’NOTE HASEN=GPROZ/(100*Gfress)’NNOTE Hasengeburtenkoeffizient*GRAS=Trefferwahrscheinlichkeit*Fuechse’’’’’’’’’’.NOTE +Hstirb’’’’>NOTE Fuechsesterbekoeffizient=Fuechsegeburtenkoeffizient*HasenN FUECHS=IF.C GPROZ=3 Graswachstum 3%’’’’’’’’’’’’.C GFRESS=3E-4 (Grasfressanteil) pro Hasen’.C HGK=1E-3 Hasengeburtskoeff’’’’’’’’’’.C TREFF=4E-2 Trefferwahrscheinlichkeit’’>C HSTIRB=0.001 Hasensterbekoeffizient (ohne Fuechse)’’’’’’.C FGK=0.05 Fuechsegeburtenkoeffizient’.C FSK=5 Fuechsesterbekoeffizient’’’NOTE SIMULATIONSPARAMETER’’’’’.C PLTPER=.083 monatlich, 0.083=1/12 !’>PLOT GRAS=G(995,1005)/HASEN=H(85,115)/FUECHS=F(15,35) Tdyn.grashasenfuchse’’’’’’’’’’’NDRAW GRAS=G(995,1005)/HASEN=H(85,115)/FUECHS=F(15,35) Test’’’’’’’’’’’’’>PLOT GRAS=G(995,1005)/HASEN=H(85,115)/FUECHS=F(15,35)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ dyn.workfluc’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘ˆa€ė’’.+ " ’’’’/M’’’’’’ dyn.workfluc’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’a€’H’’’’’’’’’’’’’’’’’’’±€’0’’’’’’’’’’’’’’’’’’’ń€’H’’’’’’’’’’’’’’’’’’’A’G’’’’’’’’’’’’’’’’’’’‘’H’’’’’’’’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’ၒ?’’’’’’’’’’’’’’’’’’’1‚’’’’’’’’’’’’’’’’’’’’A‚’@’’’’’’’’’’’’’’’’’’’‘‚’’’’’’’’’’’’’’’’’’’’’’NOTE’’’’’’’’’’’’’’’’’”‚’9’’’’’’’’’’’’’’’’’’’į‚’’’’’’’’’’’’’’’’’’’’ƒ’6’’’’’’’’’’’’’’’’’’’Aƒ’A’’’’’’’’’’’’’’’’’’’‘ƒ’3’’’’’’’’’’’’’’’’’’’’’ N JS=JM’’’’’’’’’’’у’4’’’’’’’’’’’’’’’’’’’„’7’’’’’’’’’’’’’’’’’’’Q„’’’’’’’’’’’’’’’’’’’’’’NOTE’’’’’’’’’’’’’’’’’q„’?’’’’’’’’’’’’’’’’’’’Į„’;’’’’’’’’’’’’’’’’’’’…’@’’’’’’’’’’’’’’’’’’’Q…’F’’’’’’’’’’’’’’’’’’’’’NOTE’’’’’’’’’’’’’’’’’”…’E’’’’’’’’’’’’’’’’’’’ń…’F’’’’’’’’’’’’’’’’’’’A†’A’’’’’’’’’’’’’’’’’’’‘†’G’’’’’’’’’’’’’’’’’’’ᆒB’’’’’’’’’’’’’’’’’’’’’NOTE’’’’’’’’’’’’’’’’’1‡’G’’’’’’’’’’’’’’’’’’’’’ C SW=0’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’”‡’G’’’’’’’’’’’’’’’’’’’ń‡’A’’’’’’’’’’’’’’’’’’’’’NOTE’’’’’’’’’’’’’’’’’’’ C DT=.2’’’’’’’’’’’Aˆ’’’’’’’’’’’’’’’’’’’’’’ C PLTPER=6’’’’’’’’aˆ’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NNOTE *******************************************************************’’’’’’>NOTE MODEL OF WORKLOAD FLUCTUATIONS’’’’’’’’’’’’’’NNOTE *******************************************************************’’’’’’NNOTE JOHN HENIZE 5.11.81 ’’’’’’’NNOTE *******************************************************************’’’’’’NL MM.K=MM.J+(DT)*(-MTR.J) MANPOWER IN MARKETING’’’’’’’’’’’’’’’N MM=4 MENNL MP.K=MP.J+(DT)*(MTR.J) MANPOWER IN PRODUCTION’’’’’’’’’’’’’’N MP=6 MEN>L JIP.K=JIP.J+(DT)*(JS.J-JC.J) JOBS_IN_PROCESS’’’’’N JIP=6 JOBS’’’’’’’’’’’’’’’>A JM.K=MM.K/MEJ JOBS MARKETED’’’’’’’’NC MEJ=2 MAN_MONTHS/JOB MARKETING EFFORT PER JOB’’’’’’’’’’’’’>L JS.K=JS.J+(DT/SD)*(JM.J-JS.J) JOBS SOLD’’’’’’’’’’’>C SD=2 MONTH SALES DELAY’’’’’’’’’’>A JC.K=MP.K/AJS JOBS COMPLETED’’’’’’’C AJS=8 MAN_MONTH/JOB’’’’’’NA MTR.K=(BA.K+PMA.K)*MTC.K MANPOWER TRANSFER RATE’’’’’’’’’’’’’’’>A BA.K=MMJ*(JIP.K-DJIP) BACKLOG ADJUSTMENT’’’NC DJIP=6 JOBS DESIRED JOBS IN PROCESS’’’’’’’’’’’’’’NC MMJ=.15 MEN PER MONTH PER JOB MEN REALLOCATED PER MONTH PER’’’’’’’’NA MTC.K=CLIP(MMC.K,PMC.K,BA.K,0) MANPOWER TRANSFER CONSTRAINT’’’’’’’’’NA MMC.K=MMR.K MARKETING MANPOWER CONSTRAINT’’’’’’’’NA MMR.K=MM.K/(MM.K+MP.K) MARKETING MANPOWER RATIO’’’’’’’’’’’’’NA PMC.K=PMR.K*PMR.K PRODUCTION MANPOWER CONSTRAINT’’’’’’’NA PMR.K=MP.K/(MM.K+MP.K) PRODUCTION MANPOWER RATIO’’’’’’’’’’’’NA PMA.K=SWITCH(0,PMA1.K,SW) PRODUCTION MANPOWER ADJUSTMENT’’’’’’’A PMA1.K=(DMP.K-MP.K)/MAT’’NA DMP.K=JS.K*AJS DESIRED MANPOWER IN PRODUCTION’’’’’’’NC MAT=10 MOd <= 40 ’’’’’’’’ THEN write (ind*" ") ’’. ELSE write (text(ind) + ": ") ’’’’’’’’. value (fc(f).call, t, fc(f).father); ’’. write term backward (t) ’’’’’’’’’’’’’’’ IF testing ’’’’’’’’’’’’’’> THEN put(tp); put(kp); put(fp); put(fsp); put(np); put(ep) ENDPROC inform; ’’’’’’’’’’’’’’.PROC syntax error (TEXT CONST message): ’’’’’’ free of errors:= FALSE; ’’’ write ("!- "); ’’’’’’’’’’’’ write note (message); ’’’’’ write note (" at '"); ’’’’’. write note (look ahead symbol); ’’’’’’’’’’’ write note ("' "); ’’’’’’’’ IF from file ’’’’’’’’’’’’> THEN write note ("in rule "); write note (rule count); ’’’’> write note ("line "); write note (lineno(file) - 1) ’’ look ahead empty:= TRUE; ’’ line; note line ’’’’’’’’’’’ENDPROC syntax error; ’’’’’’’’.PROC write note (TEXT CONST t): ’’’’’’’’’’’’’’ write (t); ’’’’’’’’’’’’’’. IF from file THEN note (t) FI ’’’’’’’’’’’ENDPROC write note; ’’’’’’’’’’.PROC write note (INT CONST i): ’’’’’’’’’’’’’’’ put (i); . IF from file THEN note (i) FI ’’’’’’’’’’’ENDPROC write note; ’’’’’’’’’’PROC trace (TEXT CONST on): ’’ testing:= test on; ’’’’’’ tracing:= trace on. ’’’’’. trace on: pos (on, "on") > 0. ’’’’’’’’’’’. test on : pos (on, "test") > 0 ’’’’’’’’’’ENDPROC trace; ’’’’’’’’’’’’’’’.PROC new kp (INT VAR pointer): ’’’’’’’’’’’’’’’ kp INCR 1; pointer:= kp; . IF length (kcfirst) < 2*kp ’’’’’’’’’’’’ THEN IF kp > 15990 ’’’’ THEN pegel overflow > ELSE kcfirst CAT "1234567890123456"; ’’’’’’’’’’’’’’’> kcrest CAT "1234567890123456"; ’’’’’’’’’’’’’’’ENDPROC new kp; ’’’’’’’’’’’’’’.PROC new tp (INT VAR pointer): ’’’’’’’’’’’’’’’ tp INCR 1; pointer:= tp; . IF length (tcsymbol) < 2*tp ’’’’’’’’’’’ THEN IF tp = 15990 ’’’’ THEN pegel overflow > ELSE tcsymbol CAT "1234567890123456"; ’’’’’’’’’’’’’’> tcarguments CAT "1234567890123456"; ’’’’’’’’’’’> tcarity CAT "1234567890123456"; ’’’’’’’’’’’’’’’. tcrest CAT "1234567890123456" ’ENDPROC new tp; ’’’’’’’’’’’’’’.PROC new (INT VAR pegel, pointer): ’’’’’’’’’’’ IF pegel = limit ’’’’’’ THEN pegel overflow ’’’’’. ELSE pegel INCR 1; pointer:= pegel ’’’’’’.PROC pegeloverflow: line; write (" "); ’’’’’> put(tp); put(kp); put(fp); put(fsp); put(np); put(ep); ’’. errorstop ("pegeloverflow") ’’’’’’’’’’’’’ENDPROC pegeloverflow; ’’’’’’’>{ ’Programmtransformation: ’’’’’’. PASCAL mit Pointer ==> ELAN ’’’’’’’’’’’’’’1. Rekursive Datentypen: ’’’’’. type t = ^tcell; ==> LET T = INT; ’’’’’’N { schwache Datenabstraktion mit LET ist besser, ’’’’’N weil keine neuen Zugriffsprozeduren erforderlich. ’. GLOBAL: ’’’’’’’’’’’ } ’’’> LET nil = 0, limit <= 500; ’’’’’’’’N ROW limit TCELL VAR tc; { t cell } ’’’’’’’’N INT VAR tp:= nil; { t pegel } ’’’’’’’’2. Deklaration: ’’’’’’’’’’’’’’N var x : t; ==> T VAR x; { Type checking selber machen ! } ’’’’’3. Pointer-Initialisierung: ’’. x:= nil; ==> x:= nil; ’’’’’’’’’’4. Allokation: ’’’’’’’’’’’’’’’. new (x); ==> new (tp,x); ’’’’’’’. dispose (x); ==> kommt nicht vor ’’’5. Applikation: ’’’’’’’’’’’’’’n x^.feld ==> TERMSCELL:(TERM:(tcsymbolISUBx, tcargumentsISUBx, tcarityISUBx), tcrestISUBx).feld > WITH ==> Refinement verwenden ’’’’’’’’’’’’’’N{ Programmtransformation ROW limit TERMSCELL VAR tc => TEXT VAR } ’’’’’’’’’’’ "new (tp, " CA "new tp (";  col(1); ’’’’’’’’’’’’’’ D "tc("; ’’’’’’’’’’ IF at ("tc(tc(") ’’’ THEN D "tc("; ’’’’’’’’ attest; ’’’’’’’’’ col(1); ’’’’’’’’’ D "tc(" ’’’’’’’’’ attest ’’’’’’’’’’’’’’’ UNTIL eof PER ’’’’’’’’’’’’’NIF at ("tc("+any**1+").first."+any**2+":="+any**3+";"+any**4) ’’’’’’’’’’’’’’NTHEN C ("replace(tc"+match(2)+","+match(1)+","+match(3)+");"+match(4)) ’’’’’’’>ELIF at ("tc("+any**1+").rest:="+any**3+";"+any**4) ’’’’’’’’’’NTHEN C ("replace(tcrest,"+match(1)+","+match(3)+");"+match(4)) ’’’’’’’’’’’’’’’>ELIF at ("tc("+any**1+").first:="+any**3+";"+any**4) ’’’’’’’’’>THEN C ("replace(tcsymbol,"+match(1)+","+match(3)+ ’’’’’’’’’’’> ".symbol); replace(tcarguments,"+match(1)+","+match(3)+ ’’’> ".arguments); replace(tcarity,"+match(1)+","+match(3)+ ’’’’ ".arity);"+match(4)) ’’’’’’>ELIF at ("tc("+any**1+").first."+any**2+" "+any**4) ’’’’’’’’’’>THEN C ("(tc"+match(2)+"ISUB("+match(1)+")) "+match(4)) ’’’’’’.ELIF at ("tc("+any**1+").rest"+any**4) ’’’’’’’>THEN C ("(tcrestISUB("+match(1)+")) "+match(4)) ’’’’’’’’’’’’’’>ELIF at ("tc("+any**1+").first).first"+any**4) ’’’’’’’’’’’’’’’.THEN C ("TERM:(tcsymbolISUB"+match(1)+ ’’’’’’’. ").first, tcargumentsISUB"+match(1)+ ’’’’’’> ").first, tcarityISUB"+match(1)+").first)"+match(4)) ’’’’’’.ELIF at ("tc("+any**1+").first"+any**4) ’’’’’’.THEN C ("TERM:(tcsymbolISUB"+match(1)+ ’’’’’’’N ", tcargumentsISUB"+match(1)+", tcarityISUB"+match(1)+")"+match(4)) ’’’’’’’NELIF at ("tc("+any**1+"):= TERMSCELL:("+any**2+","+any**3+")"+any**4) ’’’’’’’’>THEN C ("replace(tcsymbol,"+match(1)+","+match(2)+ ’’’’’’’’’’’> ".symbol); replace(tcarguments,"+match(1)+","+match(2)+ ’’’> ".arguments); replace(tcarity,"+match(1)+","+match(2)+ ’’’’N ".arity); replace(tcrest,"+match(1)+","+match(3)+")"+match(4)) ’’’’’’’’’’’’.ELIF at ("tc("+any**1+")"+any**4) ’’’’’’’’’’’’>THEN C ("TERMSCELL:(TERM:(tcsymbolISUB"+match(1)+ ’’’’’’’’’’’’N ", tcargumentsISUB"+match(1)+", tcarityISUB"+match(1) ’’’’’’’’’’> +"), tcrestISUB"+match(1)+")" +match(4)) ’’’’’’’’’’’’col(col-1); D("*"); C "" ’’’’’END PACKET prolog; ’’’’’’’’’’’.lernsequenz auf taste legen ("7",""124""); ’’’.lernsequenz auf taste legen ("Ū",""91""); ’’’’.lernsequenz auf taste legen ("+",""93""); ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’prolog installation’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NTHS MANPOWER ADJUSTMENT TIME’’’’’’’’’’’’’C LENGTH=120’’’’’’’’’’’’’’’.PLOT MM=M,MP=P(0,10)/JIP=J(0,20)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’dyn.cob’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńa€ė’’ " ’’’’M’’’’’’dyn.cob’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€’’’’’’’’’’’’’’’’’’’’€’1’’’’’’’’’’’’’’’’’’’Į€’’’’’’’’’’’’’’’’’’’’ဒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ N PREIS=0’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’ C K=1’’’’’’’’’’’’’’ C A=1.’’’’’’’’’’’’’ C B=.9’’’’’’’’’’’’’ C C=12.4’’’’’’’’’’’ C D=1.2’’’’’’’’’’’’ C DT=.1’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’&’’’’’’’’’’’’’’’’’’’с’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NOTE COBWEB MODEL 27.11.81’’’>L PREIS.K=PREIS.J+(DT)*K*(NACHFR.J-ANGEBOT.J)’’’’’’’’’’’’’L ANGEBOT.K=A+B*PREIS.J’’’A NACHFR.K=C-D*PREIS.K’’’’NOTE B>0, D>0, K>0’’’’’’’’’’’N ANGEBOT=11’’’’’’’’’’’’’’C LENGTH=10’’’’’’’’’’’’’’’C PRTPER=.1’’’’’’’’’’’’’’’C PLTPER=.1’’’’’’’’’’’’’’’.PLOT PREIS=P/NACHFR=N(1,10)/ANGEBOT=A’’’’’’’’PRINT PREIS,ANGEBOT,NACHFR’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’P@’’@’’’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’dyn.oszillator’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ƒa€ė’’ " ’’’’M’’’’a€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q€’’’’’’’’’’’’’’’’’’’’‘€’’’’’’’’’’’’’’’’’’’’’’ N X=2’’’’’’’’’’’’±€’>’’’’’’’’’’’’’’’’’’’’’ N Y=3’’’’’’’’’’’’’’ C M=5’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’ń€’9’’’’’’’’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’1’:’’’’’’’’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’q’@’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’с’’’’’’’’’’’’’’’’’’’’’’ C F=0’’’’’’’’’’’’’’ C K=1’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’‚’K’’’’’’’’’’’’’’’’’’’’’ C DT=0.01’’’’’’’’a‚’D’’’’’’’’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’±‚’.’’’’’’’’’’’’’’’’’’’į‚’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’PLOT Y’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’dyn.oszillatorNOTE OSZILLATOR’’’’’’’’’’’’’’L X.K=X.J+Y.J*DT’’’’’’’’’’>L Y.K=(Y.J+DT*(F/M-X.J*OMEGANULLQUADRAT.J))/(1+GAMMA.J*DT)>NOTE linearer harmonischer Oszillator mit BETA=0 und F=0’’’’’>NOTE gedaempfter Oszillator mit BETA<>0 und F=0’’’’NNOTE allgemeiner Oszillator mit BETA<>0 und F=f(TIME)’’’’’’’’’’’’’’C BETA=0.5A GAMMA.K=BETA/M’’’’’’’’’’A OMEGANULLQUADRAT.K=K/M’’NNOTE hier heisst eine Konstante"K". DYNAMO verwechselt das nicht mit .K !!’’’NNOTE DT WIRD EXTRA SO KLEIN GEWAEHLT; DAMIT DIE ANNAEHERUNG GUT IST’’’’’’’’’’.NOTE DAS GEHT AUF KOSTEN DER RECHENZEITEN !!!C LENGTH=68 ’’’’’’’’’’’’’’C PLTPER=1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”a€ė’’wtĢ’’’’ĢĢxM’ž’’’’a€’’’’’’’’’’’’’’’’’’’’’’’’’’’’w’’’’’’’’’’’’’’’’’’€’K’’’’’’’’’’’’’’’’’’’р’K’’’’’’’’’’’’’’’’’’’!’K’’’’’’’’’’’’’’’’’’’q’K’’’’’’’’’’’’’’’’’’’Į’K’’’’’’’’’’’’’’’’’’’‚’K’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a‚’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ THEN’’’’’’’’’’’’’’”‚’ ’’’’’’’’’’’’’’’’’’’т’’’’’’’’’’’’’’’’’’’’ƒ’"’’’’’’’’’’’’’’’’’’’1ƒ’,’’’’’’’’’’’’’’’’’’’aƒ’E’’’’’’’’’’’’’’’’’’’’’FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ƒ’’’’’’’’’’’’’’’’’’’’у’ ’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’’’ page;’’’’’’’’’’’’’A„’9’’’’’’’’’’’’’’’’’’’„’J’’’’’’’’’’’’’’’’’’’ф’I’’’’’’’’’’’’’’’’’’’!…’K’’’’’’’’’’’’’’’’’’’q…’B’’’’’’’’’’’’’’’’’’’Į…’I’’’’’’’’’’’’’’’’’’’’’ line (2).’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’1†’’’’’’’’’’’’’’’’’’’’Q†’3’’’’’’’’’’’’’’’’’’’‘†’3’’’’’’’’’’’’’’’’’’’’’ line.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ц’’’’’’’’’’’’’’’’’’’’ń†’3’’’’’’’’’’’’’’’’’’’1‡’3’’’’’’’’’’’’’’’’’’’q‡’3’’’’’’’’’’’’’’’’’’’±‡’3’’’’’’’’’’’’’’’’’’’ń‡’3’’’’’’’’’’’’’’’’’’’1ˆ’3’’’’’’’’’’’’’’’’’’’qˆ’3’’’’’’’’’’’’’’’’’’’±ˆ’3’’’’’’’’’’’’’’’’’’’ńˆ’3’’’’’’’’’’’’’’’’’’’1‰’#’’’’’’’’’’’’’’’’’’’a‰’3’’’’’’’’’’’’’’’’’’’”‰’’’’’’’’’’’’’’’’’’’’’’ line.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į‰’’’’’’’’’’’’’’’’’’’’ቒ’’’’’’’’’’’’’’’’’’’Š’;’’’’’’’’’’’’’’’’’’’AŠ’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aŠ’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Š’’’’’’’’’’’’’’’’’’’’±Š’/’’’’’’’’’’’’’’’’’’’ńŠ’’’’’’’’’’’’’’’’’’’’’’ checkoff;’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’’’ checkon;’’’’’’’’’’1‹’’’’’’’’’’’’’’’’’’’’Q‹’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q‹’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘‹’!’’’’’’’’’’’’’’’’’’’Į‹’’’’’’’’’’’’’’’’’’’’į‹’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’1Œ’’’’’’’’’’’’’’’’’’’’QŒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qŒ’0’’’’’’’’’’’’’’’’’’’±Œ’’’’’’’’’’’’’’’’’’’’ь’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńŒ’7’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’#’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±’H’’’’’’’’’’’’’’’’’’’Ž’5’’’’’’’’’’’’’’’’’’’’’ put (t).’’’’’’’’’’AŽ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ PROC cl eol: ’’’’’’’’aŽ’’’’’’’’’’’’’’’’’’’’qŽ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ PROC cl eop: ’’’’’’’’‘Ž’’’’’’’’’’’’’’’’’’’’”Ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŽ’ ’’’’’’’’’’’’’’’’’’’ńŽ’’’’’’’’’’’’’’’’’’’’’’ cl eol ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1’ ’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’ cl eop ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’prolog installation’’’’’’’’’’’N(*************************************************************************)’’’N(*** Insertiert die fŪr PROLOG benŚtigten Pakete und holt die ***)’’’N(*** Beispiele vom Archiv. ***)’’’N(*** ***)’’’N(*** Autor : W. Metterhausen Stand : 03.12.87 ***)’’’N(*************************************************************************)’’’erste bildschirmmeldung;’’’’’’IF yes("Prolog insertieren?")’. hole sourcen vom archiv;’’’’’’’’’’’’’’. insertiere alle pakete;’’’’’’’’’’’’’’’. hole beispiele vom archiv;’’’’’’’’’’’’. forget ("prolog installation", quiet);’’N type("push(""bye""13""prolog again"");prolog(""standard"")"13""); ’’’’’’’’’insertiere alle pakete :’’’’’’. insert and say ("thesaurus");’’’’’’’’’’’’’’ insert and say ("prolog").’erste bildschirmmeldung :’’’’’> put center (" Generator fŪr Prolog gestartet."); line;’’’’’N put center ("--------------------------------------------------");line;’’’’N put center (" Prolog kann nur in einer Task aufgebaut werden, ");line;’’’’’N put center (" die nicht bereits umfangreiche insertierte Pakete ");line;’’’N put center (" enthŁlt! Gegebenenfalls sollte Prolog in ");line;’’’’’’’’’’’’N put center (" einer Task direkt unter ""UR"" angelegt werden. ");line;’’’’’hole sourcen vom archiv :’’’’’ TEXT VAR datei;’’’’’’’’’’’> datei := "thesaurus"; hole wenn noetig;’’’’’’’’’’’> datei := "prolog"; hole wenn noetig;’’’’’’’’’’’hole beispiele vom archiv :’’’> datei := "standard"; hole wenn noetig;’’’’’’’’’’’> datei := "sum"; hole wenn noetig;’’’’’’’’’’’> datei := "permute"; hole wenn noetig;’’’’’’’’’’’> datei := "family"; hole wenn noetig;’’’’’’’’’’’> datei := "puzzle"; hole wenn noetig;’’’’’’’’’’’> datei := "calc"; hole wenn noetig;’’’’’’’’’’’> datei := "prieks"; hole wenn noetig;’’’’’’’’’’’> datei := "topographie"; hole wenn noetig;’’’’’’’’’’’> datei := "quicksort"; hole wenn noetig;’’’’’’’’’’’. datei := "prolog dokumentation";’’’’’’’’’’’> hole wenn noetig;’’’’’’’’’’’ release(archive);’’’’’’’’’’hole wenn noetig :’’’’’’’’’’’’ IF NOT exists (datei) THEN’> put line (""""+ datei + """ wird vom Archiv geholt");’’’ fetch (datei, archive)’’.PROC insert and say (TEXT CONST datei) :’’’’’’ INT VAR cx, cy;’’’’’’’’’’’’> put line ("Inserting """ + datei + """...");’’’’’’’’’’’’’’’ get cursor (cx, cy);’’’’’’’ insert (datei);’’’’’’’’’’’’ cl eop (cx, cy); line;’’’’’ forget (datei, quiet).’’’’’END PROC insert and say;’’’’’’.TEXT PROC inverse (TEXT CONST t):’’’’’’’’’’’’’ ""15"" + t + " " + ""14""’’’END PROC inverse;’’’’’’’’’’’’’.PROC put center (TEXT CONST t):’’’’’’’’’’’’’’’ put center (t, 80)’’’’’’’’’END PROC put center;’’’’’’’’’’>PROC put center (INT CONST zeile, TEXT CONST t):’’’’’’’’’’’’’’ put center (zeile, t, 80)’’END PROC put center;’’’’’’’’’’>PROC put center (TEXT CONST t, INT CONST gesamtbreite):’’’’’’’ INT VAR cy; get cursor (cy, cy);’’’’’’’. put center (cy, t, gesamtbreite)’’’’’’’’’’’END PROC put center;’’’’’’’’’’NPROC put center (INT CONST zeile, TEXT CONST t, INT CONST gesamtbreite):’’’’’’> cursor ((gesamtbreite - length (t)) DIV 2, zeile);’’’’’’’’’END PROC put center;’’’’’’’’’’ out (""5"") END PROC cl eol;’’’’’’’’’’’’’’ out (""4"") END PROC cl eop; ’’’’’’’’’’’’’.PROC cl eol (INT CONST cx, cy): ’’’’’’’’’’’’’’ cursor (cx, cy); ’’’’’’’’’’END PROC cl eol; ’’’’’’’’’’’’’.PROC cl eop (INT CONST cx, cy): ’’’’’’’’’’’’’’ cursor (cx, cy); ’’’’’’’’’’END PROC cl eop; ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ dyn.quadrat’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€ė’’ " ’’’’M’’’’’’ dyn.quadrat’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€’8’’’’’’’’’’’’’’’’’’’”€’’’’’’’’’’’’’’’’’’’’’’ N F=0’’’’’’’’’’’’’’ C DT=0.01’’’’’’’’Į€’D’’’’’’’’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’PLOT F’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’’PRINT F’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’>NOTE HIER BERECHNEN WIR DAS QUADRAT MITTELS ABLEITUNG !’’’’’’L F.K=F.J+2*TIME.J*DT’’’’’NNOTE DT WIRD EXTRA SO KLEIN GEWAEHLT; DAMIT DIE ANNAEHERUNG GUT IST’’’’’’’’’’.NOTE DAS GEHT AUF KOSTEN DER RECHENZEITEN !!!C LENGTH=17 ’’’’’’’’’’’’’’C PLTPER=1C PRTPER=1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ dyn.steifedgl’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”a€ė’’"’’’’M’’’’’’ dyn.steifedgl’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€’=’’’’’’’’’’’’’’’’’’’”€’,’’’’’’’’’’’’’’’’’’’р’,’’’’’’’’’’’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’’’ N Y1=1’’’’’’’’’’’’’’ N Y2=0’’’’’’’’’’’’’’ N Y3=-1’’’’’’’’’’’1’A’’’’’’’’’’’’’’’’’’’’’ C LENGTH=20’’’’’’’’’’’’C DT=.01’’’’’’’’’’’’’’’ C PRTPER=1’’’’’’’’’’’’’ C PLTPER=1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’>NOTE STIFF EQUATIONS SIEHE: SIMULATION AUGUST 1980, SEITE 38’.L Y1.K=Y1.J+DT*(-21*Y1.J+19*Y2.J-20*Y3.J)’’.L Y2.K=Y2.J+DT*(+19*Y1.J-21*Y2.J+20*Y3.J)’’.L Y3.K=Y3.J+DT*(+40*Y1.J-40*Y2.J-40*Y3.J)’’NNOTE KONSTANTEN MUESSEN GEEIGNET GEWAEHLT WERDEN: DT SEHR KLEIN’’’’’’’’’’’’’PRINT Y1,Y2,Y3PLOT Y1,Y2,Y3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ dyn.natchez’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’įa€ė’’ "’’’’M’’’’’’ dyn.natchez’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€’*’’’’’’’’’’’’’’’’’’’‘€’$’’’’’’’’’’’’’’’’’’’Į€’.’’’’’’’’’’’’’’’’’’’ń€’4’’’’’’’’’’’’’’’’’’’1’>’’’’’’’’’’’’’’’’’’’’’ N SUN=20 ’’’’’’’’’’’’ N NOBLE=10 ’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’C DT=1’’’’’’’’’’’’’’’ C LENGTH=17’’’’’’’’’’ C PLTPER=1’’’’’’’’’±’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’.NOTE Heiratsregeln der NATCHEZ Indianer ’’’’.L SUN.K=SWITCH(0,SUN.J,STINKARD.J)’’’’’’’’’’.L NOBLE.K=SWITCH(0,NOBLE.J+SUN.J,STINKARD.J)>L HONORED.K=SWITCH(0,HONORED.J+NOBLE.J,STINKARD.J)’’’’’’’’’’>L STINKARD.K=CLIP(STINKARD.J-NOBLE.J,0,STINKARD.J-NOBLE.J,0)N HONORED=10 ’’’’’’’’’’’’’’’N STINKARD=3000’’’’’’’’’’’’’.PLOT SUN=*,NOBLE=N,HONORED=H,STINKARD=S’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ thesaurus’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’)ų’’’’’’’’’’’’’’’’’’’’’€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į¬a€ė’’gO’’’’iiiOkkkOpČ’ž’’ok’’a€ thesaurus. 2Bii’’€’E’’’’’’’’’’’L’’’’’’’’’’’’’’’’’’р’D’’’’’’’’’’’’’’’’’’’!’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’%’’’’’’’’’’’’’’’’’’’ń’R’’’’’’’’’’’’’’’’’’’Q‚’R’’’’’’’’’’’’’’’’’’’±‚’R’’’’’’’’’’’’’’’’’’’ƒ’R’’’’’’’’’’’’’’’’’’’qƒ’S’’’’’’’’’’’’’’’’’’’у’R’’’’’’’’’’’’’’’’’’’1„’R’’’’’’’’’’’’’’’’’’’‘„’R’’’’’’’’’’’’’’’’’’’ń„’R’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ LET nil = 0 ,’’’’’’’’q…’’’’’’’’’’’’’’’’’’’’‘…’’’’’’’’’’’’’’’’’’’’±…’’’’’’’’’’’’’’’’’’’’ń…’ ’’’’’’’’’’’’’’’’’’’1†’#’’’’’’’’’’’½¼’’q†’’’’’’’’’’’jb’’‡’’’’’’’’’’’’’’’’’’’’1‡’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q‡’’’’’’’’’’’’’’’’’’’’q‡’’’’’’’’’’’’’’’’’’’’‘‡’’’’’’’’’’’’’’’’’’’’±‡’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ч’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’!ˆ’’’’’’’’’’’’’’’’’’’’’’ dummy .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aˆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aˆ’9’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ˆ’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ሒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‰’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A‰’’’’’’’’’’’’’’’’’’’’a‰’’’’’’’’’’’’’’’’’’’’‘‰’&’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’Į‰’’’’’’’’’’’’’’’’’’’’ቒ4’’’’’’’’’’’’’’’’’’’!Š’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AŠ’’’’’’’’’’’’’’’’’’’’aŠ’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’”Š’#’’’’’’’’’’’’’’’’’’’ъ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńŠ’’’’’’’’’’’’’’’’’’’’!‹’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q‹’’’’’’’’’’’’’’’’’’’’q‹’’’’’’’’’’’’’’’’’’’’‘‹’F’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į‹’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Œ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AŒ’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’”Œ’’’’’’’’’’’’’’’’’’’’ь’’’’’’’’’’’’’’’’’’’’ńŒ’E’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’"’’’’’’’’’’’’’’’’’’’‘’&’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’ń’"’’’’’’’’’’’’’’’’’’’!Ž’ ’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’QŽ’’’’’’’’’’’’øhc’’qŽINT VAR end¼j¶’’’’’’’’’’’’’’’’’’’’’’’’ю’’’’’’’’’’’’’’’’’’’’ńŽ’N’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ENDOP := ; ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’!‘’)’’’’’’’’’’’’’’’’’’’Q‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q‘’’’’’’’’’’’’’’’’’’’’‘‘’=’’’’’’’’’’’’’’’’’’’ё’6’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ overflow :’’’’’’’’’’’q’’G’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’!“’’’’’’’’’’’’’’’’’’’’Q“’+’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’”“’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ѓ’’’’’’’’’’’’’’’’’’’’ń“’8’’’’’’’’’’’’’’’’’’’1”’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q”’$’’’’’’’’’’’’’’’’’’’”’?’’’’’’’’’’’’’’’’’’’є’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń”’’’’’’’’’’’’’’’’’’’’•’’’’’’’’’’’’’’’’’’’’1•’’’’’’’’’’’’’’’’’’’’Q•’"’’’’’’’’’’’’’’’’’’’•’’’’’’’’’’’’’’’’’’’’”•’:’’’’’’’’’’’’’’’’’’’į•’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’–’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1–’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a–’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’–’@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’і’D’’’’’’’’’’’’’’’’’’’!—’ ’’’’’’’’’’’’’’’’’’’Q—’E’’’’’’’’’’’’’’’’’’’”—’C’’’’’’’’’’’’’’’’’’’’’ PER ;’’’’’’Lø·’’ń—’’’’’’’’’’’’·cø’’A˜ get entry :’’lG»’’q˜’0IF (ist SUBøŗ’’Į˜’ THEN posø»’’a¬’2ELIF (list d¼’’”¬’5change all KF’’™’F’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a™’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’™’8’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į™’’’’’’’’’’’’’’’’’’’’į™’#’’’’’’’’’’’’’’’’’’’š’!’’’’’’’’’’’’’’’’’’’Aš’*’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qš’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘š’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᚒ’’’’’’’’’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’!›’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A›’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a›’8’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”›’’’’’’’’’’’’’’’’’’’’Į›’’’’’’’’’’’’’’’’’’’’į›’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’Aœ’$’’’’’’’’’’’’’’’’’’’qœ’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘œ’’’’’’’’’’’’’’’’’’’’±œ’F’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’)’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’ PER ;’’’’’’’’’’’’’’q’,’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’ń’<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1ž’’’’’’’’’’’’’’’’’’’’Qž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ erase cache :’’’’’’’’qž’’’’’’’’’’’’’’’’’’’’‘ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±ž’’’’’’’’’’’’’’’’’’’’ў’;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1Ÿ’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aŸ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’@@’’’’ dyn.wachstum’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q‚a€ė’’"’’’’M’’’’’’ dyn.wachstum’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’a€’4’’’’’’’’’’’’’’’’’’’’’NOTE’’’’’’’’’’’’’’’’’”€’5’’’’’’’’’’’’’’’’’’’ဒ%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’3’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’0’’’’’’’’’’’’’’’’’’’’’NOTE’’’’’’’’’’’’’’’’’с’’’’’’’’’’’’’’’’’’’’’’NOTE’’’’’’’’’’’’’’’’’ń’3’’’’’’’’’’’’’’’’’’’’’ C DT=1’’’’’’’’’’’’’’ C PLTPER=5’’’’’’’’1‚’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’>NOTE Ein einfaches Modell des Bevoelkerungswachstums’’’’’’’’’’>L BEVOELKERUNG.K=BEVOELKERUNG.J+DT*GEBURTENRATE.JK’’’’’’’’’.N BEVOELKERUNG=ANFANGSBEVOELKERUNG’’’’’’’’’C ANFANGSBEVOELKERUNG=1000’>R GEBURTENRATE.KL=BEVOELKERUNG.K*WACHSTUMSFAKTOR’’’’’’’’’’’N GEBURTENRATE=10’’’’’’’’’’>C WACHSTUMSFAKTOR=0.03 das heisst: 3 Prozent’’’’’’’’’’’’’’NOTE Simulationsparameter’’’’’>PLOT BEVOELKERUNG=B(1E3,9E4)/GEBURTENRATE=G(10,9E3)’’’’’’’’’’’C LENGTH=300’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ dyn.simon’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aƒa€ė’’ "’’’’M’’’’’’ dyn.simon’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€’<’’’’’’’’’’’’’’’’’’’’’NOTE’’’’’’’’’’’’’’’’’”€’)’’’’’’’’’’’’’’’’’’’р’D’’’’’’’’’’’’’’’’’’’!’J’’’’’’’’’’’’’’’’’’’q’#’’’’’’’’’’’’’’’’’’’”’"’’’’’’’’’’’’’’’’’’’с’*’’’’’’’’’’’’’’’’’’’‚’)’’’’’’’’’’’’’’’’’’’1‚’’’’’’’’’’’’’’’’’’’’’’ C EINF=2’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’Q‚’1’’’’’’’’’’’’’’’’’’’‘‚’’’’’’’’’’’’’’’’’’’’’’ C A1=1.0’’’’’’’’’’’’’ C A2=1.5’’’’’’’’’’’’’C B1=1’’’’’’’’’’’’’’’ C beta=1.0’’’’’’’’’’’ C C1=1.4’’’’’’’’’’’’’ C C2=1.5’’’’’’’’’’’±‚’’’’’’’’’’’’’’’’’’’’’’ C DT=0.1’’’’’’’’’’’’’ C LENGTH=60’’’’’’’’Į‚’’’’’’’’’’’’’’’’’’’’т’,’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’1ƒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’>NOTE Simons MODELL der sozialen Gruppe Stand: 08.03.1983’’.A INTERAKT.K=A1*FREUNDLICH.K+A2*AKTIV.K’’’’’NL FREUNDLICH.K=FREUNDLICH.J+DT*(B1*(INTERAKT.J-beta*FREUNDLICH.J))’’’’’’’’’’NL AKTIV.K=AKTIV.J+DT*(C1*(FREUNDLICH.J-gamma*AKTIV.J)+C2*(EINF-AKTIV.J))’’’’.N INTERAKT=beta*A2*C2*EINF/NENNER’’’’’’’’’’’.N AKTIV=C2*(beta-A1)*EINF/NENNER’’’’’’’’’’’’.N FREUNDLICH=A2*C2*EINF/NENNER+STOERTERM’’’’.N NENNER=-C1*A2+(beta-A1)*(C2+C1*gamma)’’’’’C STOERTERM=0.4’’’’’’’’’’’’’>NOTE Konstanten sind alle positiv vorausgesetzt’’’’’’’’’’’’’NOTE Stabil fuer beta>a1’’’’C gamma=1.5 C PLTPER=0.5.PLOT INTERAKT=i,FREUNDLICH=f,AKTIV=a(-10,10)’’.PRINT INTERAKT,FREUNDLICH,AKTIV’’’’’’’’’’’’’’’C PRTPER=0.5’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’dyn.gekoppeltependel’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ÿ’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’џ’6’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’! ’/’’’’’’’’’’’’’’’’’’’’’ FI . ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’± ’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń ’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1”’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q”’H’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’””’’’’’’’’’’’’’’’’’’’’Į”’)’’’’’’’’’’’’’’’’’’’’’ IF overflow’’’’’’’’ń”’*’’’’’’’’’’’’’’’’’’’!¢’@’’’’’’’’’’’’’’’’’’’q¢’'’’’’’’’’’’’’’’’’’’’”¢’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ overflow :’’’’’’’’’’’Į¢’G’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’1£’’’’’’’’’’’’’’’’’’’’Q£’%’’’’’’’’’’’’’’’’’’’£’P’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ᣒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!¤’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a¤’’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”¤’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į¤’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’!„’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a„’D’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±„’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’Ń„’’’’’’’’’’’’’’’’’’’’ń„’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1¦’’’’’’’’’’’’’’’’’’’’Q¦’’’’’’’’’’’’’’’’’’’’a¦’’’’’’’’’’’’’’’’’’’’¦’’’’’’’’’’’’’’’’’’’’”¦’"’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ѧ’’’’’’’’’’’’’’’’’’’’ń¦’<’’’’’’’’’’’’’’’’’’’1§’’’’’’’’’’’’’’’’’’’’Q§’ THEN corr¹KJ’’q§’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AŖ’rrect chachG½K’’‘§’ ntry·g’’±§’’’’’’’’’’’’’’’’’’’’ѧ’<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ø’’’’’’’’’’’’’’’’’’’’1Ø’’’’’’’’’’’’’’’’’’’’QØ’’’’’’’’’’’’’’’’’’’’qØ’’’’’’’’’’’’’’’’’’’’Ø’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘Ø’;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŃØ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’©’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1©’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ENDPROC get ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a©’L’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±©’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į©’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!Ŗ’’’’’’’’’’’’clh’’aŖ FI .’’’’’’’i’’įŖ’$ .’’’’’’’’’dj’’¬’M’’’’’’’’’’’mk’’q« FI .d pos :h¹l’’±«’ THEN chacknm’’A«’’’’’’’’’’’mon’’’’’’’’’’’’’’’’no’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’thesaurus. 2B version’’’’’’’’’N’’’’’’’’’N(* ------------------- VERSION 2 19.01.87 ------------------- *)’’’’’’’’’’NPACKET thesaurus handling (* Autor: J.Liedtke *)’’’’’’’’’’. DEFINES THESAURUS , ’’’’’’’’’’’’’’’ := , ’’’’’’. empty thesaurus , ’’’’’’’’’^ insert, (* fuegt ein Element ein *)’’’’’’’’’’’’^ delete, (* loescht ein Element falls vorhanden *)’’’’’’’’’’’’^ rename, (* aendert ein Element falls vorhanden *)’’’’’’’’’’’’^ CONTAINS , (* stellt fest, ob enthalten *)’’’’’’’’’’’’^ link , (* index in thesaurus *) ’’’’’’’’’’’^ name , (* name of entry *)’’’’’’’’’’’’^ decode invalid chars ,(* Steuerzeichen dekodieren *)’’’’’’’’’’’’^ get , (* get next entry ("" is eof) *)’’’’’’’’’’’’^ highest entry : (* highest valid index of thes *)’’’’’’’’’’’’TYPE THESAURUS = TEXT ;’’’’’’’ niltext = "" ,’’’’’’’’’’’’ max name length = 80 ,’’’’> begin entry char = ""0"" , (* FF FF *))))))))’’’’’’’’’> end entry char = ""255"" ,, (* FE FE *))))))))’’’’’’’’’> nil entry = ""0""255"" ,,,,,,,,,,,,,’’’’’’’’’’’’’’’ž invalid chars = ""0""1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17""18""19""20""21""22""23""24""25""26""27""28""29""30""31""254""255"" ,’’’ nil name = "" ,’’’ quote = """" ;’TEXT VAR entry ,’’’’’’’’’’’’’’ dummy ;’’’’’’’’’’’’’’INT VAR cache index := 0 ,’’’ cache pos ;’’’’’’’’’’.TEXT PROC decode (INT CONST number) :’’’’’’’’’ dummy := " " ;’’’’’’’’’’’’’ replace (dummy, 1, number) ;ENDPROC decode ;’’’’’’’’’’’’’’>INT PROC decode (TEXT CONST string, INT CONST position) :’’’’’> subtext (string, position, position + 1) ISUB 1 .’’’’’’’’’’’ENDPROC decode ;’’’’’’’’’’’’’’>PROC access (THESAURUS CONST thesaurus, TEXT CONST name) :’’’’ construct entry ;’’’’’’’’’’’. IF NOT cache identifies entry’’’’’’’’’’’’’’’. THEN search through thesaurus list’’’’’’’’ IF entry found’’’’’’’’’’’’’’> THEN cache index := decode (list, cache pos - 2)’’’’’’’’’’ ELSE cache index := 0’’’’’construct entry :’’’’’’’’’’’’’ entry := begin entry char ;’ entry CAT name ;’’’’’’’’’’’’. decode invalid chars (entry, 2) ;’’’’’’’’’’’ entry CAT end entry char .’’.search through thesaurus list :’’’’’’’’’’’’’’’. cache pos := pos (list, entry) .’’’’’’’’’’’’cache identifies entry :’’’’’’ cache pos <> 0 AND’’’’’’’’’’N pos (list, entry, cache pos, cache pos + LENGTH entry) = cache pos .’’’’’’’’entry found : cache pos > 0 .list : CONCR (thesaurus) .’’’ENDPROC access ;’’’’’’’’’’’’’’>PROC access (THESAURUS CONST thesaurus, INT CONST index) :’’’’ IF cache identifies index’’’. THEN cache index := index ;’’’’’’’’’’’’’’’ construct entry’’’’’’N ELSE cache pos := pos (list, decode (index) + begin entry char) ;’’’’’’’’’ IF entry found’’’’’’’. THEN cache pos INCR 2 ;’’’’’’’’’’’’. cache index := index ;’’’’’’’’. construct entry’’’’’’’’’’’’’’’. ELSE cache index := 0 ;’’’’’’’’’’’’. entry := niltext’’’’’’’’’’’’’’construct entry :’’’’’’’’’’’’’^ INT VAR end pos ;= pos (list, end entry char, cache pos char, cache pos)) .....’’’’’’’’’’’’’cache identifies index :’’’’’’^ subtext (list, cache pos-2, cache pos) = decode (index) + begin entry char ....’’’’’’’’’’’’’entry found : cache pos > 0 .list : CONCR (thesaurus) .’ENDPROC access ;’’’’’’’’’’’’’’.THESAURUS PROC empty thesaurus :’’’’’’’’’’’’’’ THESAURUS : (""1""0"")’’’’’’ENDPROC empty thesaurus ; ’’’’>OP := (THESAURUS VAR dest, THESAURUS CONST source ) : ’’’’’’’’. CONCR (dest) := CONCR (source) .’’’’’’’’’’’’TEXT VAR insert name ;’’’’’’’’NPROC insert (THESAURUS VAR thesaurus, TEXT CONST name, INT VAR index) : ’’’’’’ insert name := name ;’’’’’’’. decode invalid chars (insert name, 1) ;’’’’’ insert name if possible .’’’insert name if possible :’’’’’> IF insert name = "" OR LENGTH insert name > max name length’> THEN index := nil ; errorstop ("Name unzulł’’’’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±a€ė’’"’’’’M’’’’a€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’€’’’’’’’’’’’’’’’’’’’’”€’’’’’’’’’’’’’’’’’’’’Į€’’’’’’’’’’’’’’’’’’’’ဒ2’’’’’’’’’’’’’’’’’’’!’2’’’’’’’’’’’’’’’’’’’’’ N x1=a’’’’’’’’’’’’’’ N x2=0’’’’’’’’’’’’’’ N v1=0’’’’’’’’’’’’’’ N v2=0’’’’’’’’’’’’’’C a=3’’’’’’’’’’’’’’’ C m1=2’’’’’’’’’’’’’’ C m2=2’’’’’’’’’’’’’’ C d0=9’’’’’’’’’’’’’’C d=2’’’’’’’’’’’’’’’ C dt=0.1’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’dyn.gekoppeltependel’’’’’’’’’’NOTE gekoppelte pendel’’’’’’’’L x1.k=x1.j+dt*v1.j’’’’’’’’L x2.k=x2.j+dt*v2.j’’’’’’’’>L v1.k=v1.j+dt*(-d0/m1*x1.j-(d/m1)*(x1.j-x2.j))’’’’’’’’’’’’>L v2.k=v2.j+dt*(-d0/m2*x2.j-(d/m2)*(x2.j-x1.j))’’’’’’’’’’’’C length=50C pltper=0.3’’’’’’’’’’’’’’’PLOT x1=1(-3,9)/x2=2(-9,3)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ dyn.abnahme’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į‚a€ė’’"’’’’M’’’’’’ dyn.abnahme’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’a€’6’’’’’’’’’’’’’’’’’’’’’NOTE’’’’’’’’’’’’’’’’’”€’E’’’’’’’’’’’’’’’’’’’ń€’’’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’q’0’’’’’’’’’’’’’’’’’’’±’.’’’’’’’’’’’’’’’’’’’ၒ1’’’’’’’’’’’’’’’’’’’!‚’’’’’’’’’’’’’’’’’’’’’’NOTE’’’’’’’’’’’’’’’’’A‚’’’’’’’’’’’’’’’’’’’’’’NOTE’’’’’’’’’’’’’’’’’a‚’B’’’’’’’’’’’’’’’’’’’’’ C DT=1’’’’’’’’’’’’’’ C PLTPER=1’’’’’’’’±‚’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’>NOTE Ein einfaches Modell der Bevoelkerungsentwicklung’’’’’’’’NL BEVOELKERUNG.K=BEVOELKERUNG.J+DT*(GEBURTENRATE.JK-STERBERATE.JK)’’’’’’’’’N BEVOELKERUNG=1000’’’’’’’’>R GEBURTENRATE.KL=BEVOELKERUNG.K*WACHSTUMSFAKTOR’’’’’’’’’’’N GEBURTENRATE=10’’’’’’’’’’>C WACHSTUMSFAKTOR=0.01 das heisst: 1 Prozent’’’’’’’’’’’’’’.R STERBERATE.KL=BEVOELKERUNG.K*STERBEFAKTOR>C STERBEFAKTOR=0.001 das heisst: 1 Promille’’’’’’’’’’’’’N STERBERATE=10’’’’’’’’’’’’NOTE Simulationsparameter’’’’’NPLOT BEVOELKERUNG=B(0,2000)/GEBURTENRATE=G(0,40)/STERBERATE=S(0,6)’’’’’’’’’’’’C LENGTH=68’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ dyn.wasserŚko’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q†a€ė’’BB??"’’’’C&M ’’’’’’ dyn.wasserŚko’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’n t=15’’’’’’’’’’’’’’’a€’-’’’’’’’’’’’’’’’’’’’‘€’)’’’’’’’’’’’’’’’’’’’Į€’L’’’’’’’’’’’’’’’’’’’’*’’’’’’’’’’’’’’’’’’’A’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q’C’’’’’’’’’’’’’’’’’’’’’ c pi=3.1415’’’’’’’’’’Į’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’D’’’’’’’’’’’’’’’’’’’A‚’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q‚’G’’’’’’’’’’’aessig")’’’’’’’’ ELIF overflow’’’’’’’’’’’’’’’ THEN index := nil’’’’’’’ ELSE insert element’’’’’N LENGTH CONCR (thesaurus) + LENGTH insert name + 4 > max text length .’’’’’’’insert element :’’’’’’’’’’’’’’ search free entry ;’’’’’’’’’ IF entry found ’’’’’’’’’’’. THEN insert into directory ’’’’’’’’’’’’’’’. ELSE add entry to directory if possible’’’search free entry :’’’’’’’’’’’. access (thesaurus, nil name) .’’’’’’’’’’’’’’insert into directory :’’’’’’’> change (list, cache pos + 1, cache pos, insert name) ;;;;;’’ index := cache index .’’’’’’.add entry to directory if possible :’’’’’’’’’’N INT CONST next free index := decode (list, LENGTH list - 1) ;’’’’’’’’’’’’’’’ add entry to directory .’’’’add entry to directory :’’’’’’ list CAT begin entry char ;’ cache pos := LENGTH list ;’’. cache index := next free index ;’’’’’’’’’’’’ list CAT insert name ;’’’’’’> list CAT end entry char + decode (next free index + 1) ;’’’’ index := cache index .’’’’’’.entry found : cache index > 0 .’’’’’’’’’’’’’.list : CONCR (thesaurus) .’’’’’’’’’’’ENDPROC insert ; ’’’’’’’’’’’’’NPROC decode invalid chars (TEXT VAR name, INT CONST start pos) :’’’’’’’’’’’’’’N INT VAR invalid char pos := pos (name, ""0"", ""31"", start pos) ;’’’’’’’’’’. WHILE invalid char pos > 0 REP’’’’’’’’’’’’’’N change (name, invalid char pos, invalid char pos, decoded char) ;’’’’’’’’’N invalid char pos := pos (name, ""0"", ""31"", invalid char pos)’’’’’’’’’’’N cache index INCR 1 ;pos (name, ""254"", ""255"", start pos) ;’’’’’’’’’’’’’’’. WHILE invalid char pos > 0 REP’’’’’’’’’’’’’’N IF (list SUB cache pos + 2) = begin entry char pos, decoded char) ;’’’’’’’’’N THEN cache pos INCR 21s (name, ""254"", ""255"", invalid char pos)’’’’’’’’Ndecoded char : quote + text(code(name SUB invalid char pos)) + quote.’’’’’’’’ENDPROC decode invalid chars ;>PROC insert (THESAURUS VAR thesaurus, TEXT CONST name) :’’’’’’ INT VAR index ;’’’’’’’’’’’’’. insert (thesaurus, name, index) ;’’’’’’’’’’’. IF index = nil AND NOT is error’’’’’’’’’’’’’. THEN errorstop ("THESAURUS-Ueberlauf")’’’’ENDPROC insert ;’’’’’’’’’’’’’’NPROC delete (THESAURUS VAR thesaurus, TEXT CONST name, INT VAR index) : ’’’’’’ access (thesaurus, name) ;’’ index := cache index ;’’’’’’ delete (thesaurus, index) .’ENDPROC delete ;’’’’’’’’’’’’’’>PROC delete (THESAURUS VAR thesaurus, INT CONST index) :’’’’’’ access (thesaurus, index) ;’ IF entry found’’’’’’’’’’’’’’ THEN delete entry’’’’’’’’’delete entry :. IF is last entry of thesaurus’’’’’’’’’’’’’’’. THEN cut off as much as possible’’’’’’’’’’ ELSE set to nil entry’’’’’set to nil entry :’’’’’’’’’’’’N change (list, cache pos, cache pos + LENGTH entry - 1, nil entry) . ’’’’’’’’cut off as much as possible :’. WHILE predecessor is also nil entry REP’’’’’ set cache to this entry’’’. list := subtext (list, 1, cache pos - 1) ;’’ erase cache .’’’’’’’’’’’’’’’.predecessor is also nil entry :’’’’’’’’’’’’’’’> subtext (list, cache pos - 4, cache pos - 3) = nil entry ..’set cache to this entry :’’’’’ cache pos DECR 4 .’’’’’’’’’’ cache pos := 0 ;’’’’’’’’’’’’ cache index := 0 .’’’’’’’’’’is last entry of thesaurus :’’> pos (list, end entry char, cache pos) = LENGTH list - 2 .’’’list : CONCR (thesaurus) ..entry found : cache index > nil .’’’’’’’’’’’ENDPROC delete ;’’’’’’’’’’’’’’NBOOL OP CONTAINS (THESAURUS CONST thesaurus, TEXT CONST name ) : ’’’’’’’’’’’’’> IF name = niltext OR LENGTH name > max name length’’’’’’’’ THEN FALSE> ELSE access (thesaurus, name) ; entry found’’’’’’’’’’’’’’’.entry found : cache index > nil . ’’’’’’’’’’ENDOP CONTAINS ; ’’’’’’’’’’’’’>PROC rename (THESAURUS VAR thesaurus, TEXT CONST old, new) :’’> rename (thesaurus, link (thesaurus, old), new)’’’’’’’’’’’’’’ENDPROC rename ;’’’’’’’’’’’’’’NPROC rename (THESAURUS VAR thesaurus, INT CONST index, TEXT CONST new) :’’’’’’ insert name := new ;’’’’’’’’. decode invalid chars (insert name, 1) ;’’’’’. THEN errorstop ("THESAURUS-Ueberlauf")’’’’N ELIF insert name = "" OR LENGTH insert name > max name length ’’’’’’’’’’’’’’. THEN errorstop ("Name unzulaessig")’’’’’’’ ELSE change to new name’’’N LENGTH CONCR (thesaurus) + LENGTH insert name + 4 > max text length .’’’’’’’change to new name :’’’’’’’’’’ access (thesaurus, index) ;’. IF cache index <> 0 AND entry <> ""’’’’’’’’’^ THEN change (list, cache pos + 1, cache pos + LENGTH entry - 2, insert name)’’’’’’’’’’’’’’list : CONCR (thesaurus) .’ENDPROC rename ;’’’’’’’’’’’’’’>INT PROC link (THESAURUS CONST thesaurus, TEXT CONST name) : ’ access (thesaurus, name) ;’’ cache index .’’’’’’’’’’’’’’’ENDPROC link ; ’’’’’’’’’’’’’’’>TEXT PROC name (THESAURUS CONST thesaurus, INT CONST index) :  access (thesaurus, index) ;’. subtext (entry, 2, LENGTH entry - 1) .’’’’’’ENDPROC name ;NPROC get (THESAURUS CONST thesaurus, TEXT VAR name, INT VAR index) :’’’’’’’’’’ identify index ;’’’’’’’’’’’’ to next entry’’’’’’’’’’’’’> UNTIL end of list COR valid entry found PER .’’’’’’’’’’’’’’’identify index :’’’’’’’’’’’’’’ IF index = 0 THEN cache index := 0 ;’’’ cache pos := 1’’’’’. ELSE access (thesaurus, index)’’’’’’’’’’’’to next entry :’’’’’’’’’’’’’’’> cache pos := pos (list, begin entry char, cache pos + 1) ;’’ IF cache pos > 0’’’’’’’’’’’’ THEN correct cache pos ;;’ ELSE get nil entry’’’’’’’’ get entry 1 ;’’’’’’’’ index := cache index ;’’’’’’> name := subtext (list, cache pos + 1, end entry pos - 1) .’’get nil entry :’’’’’’’’’’’’’’’ cache index := 0 ;’’’’’’’’’’ cache pos := 0 ;’’’’’’’’’’’’ index := 0 ; name := "" .>end entry pos : pos (list, end entry char, cache pos) .’’’.end of list : index = 0 .’’’’’’’’’’’’’’’.valid entry found : name <> "" .’’’’’’’’’’’’’’.list : CONCR (thesaurus) .’’’’’’’NINT PROC highest entry (THESAURUS CONST thesaurus) : (*840813*)’’. decode (list, LENGTH list - 1) - 1 .’’’’’’’’list : CONCR (thesaurus) .’’ENDPROC highest entry ;’’’’’’’ENDPACKET thesaurus handling ;correct cache pos ::’’’’’’’’’’N entry := subtext (list, cache pos, )) .(list, end entry char, cache pos)) .’. entry := subtext (list, cache pos, end pos) .pos (list, end entry char, cache pos’’’’’’’’’’. end pos := end pos r, cache pos’’’’’’’’’’.pos (list, end entry char, cache pos’’’’’’’’’’> end pos := pos (list, end entry char, cache pos) ’’’’’’’’’^ THEN cache pos INCR 1, cache posst SUB end pos + 3) = begin entry char) PER ;.’’’’’’’’’’’’N entry := subtext (list, cache pos, pos (list, end entry char, cache pos)) .’> ELIF (list SUB cache pos + 1) = begin entry char’’’’’’’’’’’’> change all (name, ""255"", quote + "255" + quote) .’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į‚’!’’’’’’’’’’’’’’’’’’’ń‚’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1ƒ’+’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aƒ’=’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”ƒ’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’у’(’’’’’’’’’’’’’’’’’’’„’K’’’’’’’’’’’’’’’’’’’’’ n p=p0’’’’’’’’’’’’’’ n z=z0’’’’’’’’’’’’’’ n f=f0’’’’’’’’’’’’’’ n b=b0 ’’’’’’’’’’’’’ n n=n0 ’’’’’’’’’’’’’ c p0=10’’’’’’’’’’’’’ c z0=3’’’’’’’’’’’’’’ c f0=1’’’’’’’’’’’’’’ c b0=0.01’’’’’’’’’Q„’B’’’’’’’’’’’’’’’’’’’”„’N’’’’’’’’’’’’’’’’’’’’’ c p1=0.006’’’’’’’’’’ c p2=1’’’’’’’’’’’’’’ c p3=0.006’’’’’’’’’’ c p4=0.03’’’’’’’’’’’ c p5=1’’’’’’’’’’’’’’ c p6=100’’’’’’’’’’’’ c p7=0.33’’’’’’’’’’’ c p8=100’’’’’’’’’’’’ c p9=1E-4’’’’’’’’’’’ c p10=1’’’’’’’’’’’’’ c p11=1’’’’’’’’’’’’’ c p12=0.25’’’’’’’’’’ c p13=10’’’’’’’’’’’’ c p14=0.1’’’’’’’’’’’ c p15=0.2’’’’’’’’’ń„’M’’’’’’’’’’’’’’’’’’’’’ c dt=0.5’’’’’’’’’’A…’’’’’’’’’’’’’’’’’’’’’’ c pltper=1’’’’’’’’Q…’M’’’’’’’’’’’’’’’’’’’”…’’’’’’’’’’’’’’’’’’’’Į…’’’’’’’’’’’’’’’’’’’’į…’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’!†’’’’’’’’’’’’’’’’’’’’A†’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’.note*** wasserŚkosystem nach abel und reich’.note*** in: microextra 4/83 seite 34 ff’’’’’Nnote************************************************************************’’.note* hilfsgleichung fuer temperatur t’’’’.note* die zeit time in wochen’’’’’’’’’’’’’Na t.k=15+4*sin((time.k-10)*2*pi/52) temperatur t; time in wochen’’’’’’’’’’’.note gleichung fuer phytoplankton p’’’’’’Nl p.k=p.j+dt*(p.j*(p1*n.j*t.j-p2*z.j)(100-p.j)/100) phytoplankton p’’’’’’’’’’.note gleichung fuer zooplankton z’’’’’’’Nl z.k=z.j+dt*(z.j*(p3*t.j*p.j+p4*n.j-(p5*f.j+p6*b.j)-1/p.j)(30-z.j)/30)’’’’’’’.note gleichung fuer fische f’’’’’’’’’’’’’>l f.k=f.j+dt*(f.j*(p7*z.j-p8*b.j-p9/(z.j+p.j))(10-f.j)/10)’’’’.note gleichung fuer raubfisch barsch b’’’>l b.k=b.j+dt*(b.j*(p10*f.j+p11*z.j-1/(p12*f.j))(0.1-b.j)/0.1)’.note **** gleichung fuer naehrstoffmenge n’’’’.l n.k=n.j+dt*(p13-n.j*(p14*p.j-p15*z.j))’’’’’’Nnote **** anfangswerte ****************************************************’’’Nc n0=30 in kg/volumeneinheit bzw. StŪck/volumeneinheō[’’’’’’’’’’’’Nnote ***** konstanten ********************************************************Nnote **** simulationskonstanten *********************************************’c length=60Nnote***** outputvariablen****************************************************’a lp.k=ln(p.k/p0)’’’’’’’’’’a lz.k=ln(z.k/z0)’’’’’’’’’’a lf.k=ln(f.k/f0)’’’’’’’’’’a lb.k=ln(b.k/b0)’’’’’’’’’’a logn.k=ln(n.k/n0)’’’’’’’’.plot lp=p,lz=z,lf=f,lb=b,logn=n(-4,4)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’dyn.bev’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q‰a€ė’’41"’’’’5=M’’’’’’dyn.bev’’’’’’’’’’’’’’’’’’’’’’4’’’’’’’’’’’’’’’’’’a€’>’’’’’’’’’’’’’’’’’’’’’NOTE’’’’’’’’’’’’’’’’’”€’A’’’’’’’’’’’’’’’’’’’ń€’,’’’’’’’’’’’’’’’’’’’’’NOTE’’’’’’’’’’’’’’’’’!’I’’’’’’’’’’’’’’’’’’’’’ FOR LJ2=2,80’’’’’’’’’q’D’’’’’’’’’’’’’’’’’’’Į’J’’’’’’’’’’’’’’’’’’’‚’ ’’’’’’’’’’’’’’’’’’’A‚’’’’’’’’’’’’’’’’’’’’a‚’=’’’’’’’’’’’’’’’’’’’”‚’F’’’’’’’’’’’’’’’’’’’ń‚’L’’’’’’’’’’’’’’’’’’’Aƒ’3’’’’’’’’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’ T IBEV=’’’’’’’’’’’’”ƒ’,’’’’’’’’’’’’’’’’’’’у’2’’’’’’’’’’’’’’’’’’’„’,’’’’’’’’’’’’’’’’’’’A„’/’’’’’’’’’’’’’’’’’’’„’,’’’’’’’’’’’’’’’’’’’±„’,’’’’’’’’’’’’’’’’’’’į„’,’’’’’’’’’’’’’’’’’’’…’.’’’’’’’’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’’’T SQ=’’’’’’’’’’’’’’A…’H’’’’’’’’’’’’’’’’’’’‘…’H’’’’’’’’’’’’’’’’’’’į…’H’’’’’’’’’’’’’’’’’’’1†’H’’’’’’’’’’’’’’’’’’’†’H’’’’’’’’’’’’’’’’’’’ц’H’’’’’’’’’’’’’’’’’’’!‡’H’’’’’’’’’’’’’’’’’’’q‡’H’’’’’’’’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’T GR=’’’’’’’’’’’’’’Į‡’@’’’’’’’’’’’’’’’’’’’ˆ’@’’’’’’’’’’’’’’’’’’’aˆ’B’’’’’’’’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’’C DT=1’’’’’’’’’’’’’’’ C PLTPER=1’’’’’’’’’’’ C PRTPER=1’’’’’’’’’’’ N TIME=1982’’’’’’’’±ˆ’’’’’’’’’’’’’’’’’’’’ш’9’’’’’’’’’’’’’’’’’’’‰’<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’>NOTE EIN BEV×LKERUNGSMODELL DER BUNDESREPUBLIK DEUTSCHLANDNNOTE ANGABEN DER GEBURTENRATEN (GR) UND STERBEQUOTIENTEN (SQ)’’’’’’’’’’’’’.NOTE AUS DEM STATISTISCHEN JAHRBUCH 1982’’NFOR LJ=1,80 LEBENSJAHRE’’’’’NL BEV.K(1)=BEV.J(1)+DT*(GB.J-A.J(1)-S.J(1)) BABIES’’’’’’’’’’NL BEV.K(LJ2)=BEV.J(LJ2)+DT*(A.J(LJ2-1)-A.J(LJ2)-S.J(LJ2)) BEV×LKERUNG ’’’’.A A.K(LJ)=(1-SQ(LJ))*BEV.K(LJ)’’’’’’’’’’’’’’A S.K(LJ)=SQ(LJ)*BEV.K(LJ)’’>A GB.K=SCLPRD(BEV.K,15,44,GR,1)/2 Geburten’NA GBEV.K=SUM(BEV.K) GesamtbevŚlkerung’’’’’’’’NA ZBEV.K=SUMV(BEV.K,16,59) zahlende BevŚlkerung (in Rentenversicherung)’’>A PRENT.K=SUMV(BEV.K,60,80) potentielle Rentner’’’’’’’’’’’N BEV(LJ)=IBEV(LJ)*1E3’’’’’’.X 584/585/590/609/652/728/780/843/927/980/’’>X 1014/1032/1045/1049/1024/1003/986/959/929/@@’’’’standard’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń‡a€ė’’%"`’’’’``&M’’’’’’standard’’’’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’a€’5’’’’’’’’’’’’’’’’’’’”€’%’’’’’’’’’’’’’’’’’’’р’4’’’’’’’’’’’’’’’’’’’’5’’’’’’’’’’’’’’’’’’’Q’9’’’’’’’’’’’’’’’’’’’‘’5’’’’’’’’’’’’’’’’’’’с’'’’’’’’’’’’’’’’’’’’’‚’&’’’’’’’’’’’’’’’’’’’1‚’L’’’’’’’’’’’’’’’’’’’‚’M’’’’’’’’’’’’’’’’’’’т’=’’’’’’’’’’’’’’’’’’’ƒ’I’’’’’’’’’’’’’’’’’’’aƒ’6’’’’’’’’’’’’’’’’’’’”ƒ’’’’’’’’’’’’’’’’’’’’Įƒ’’’’’’’’’’’’’’’’’’’’გ1’’’’’’’’’’’’’’’’’’’!„’/’’’’’’’’’’’’’’’’’’’a„’4’’’’’’’’’’’’’’’’’’’”„’5’’’’’’’’’’’’’’’’’’’į„’5’’’’’’’’’’’’’’’’’’’!…’7’’’’’’’’’’’’’’’’’’’’’repeat. ’’’’’’’’’’’’’a…’*’’’’’’’’’’’’’’’’’’’‘…’3’’’’’’’’’’’’’’’’’’’х’4’’’’’’’’’’’’’’’’’’’†’,’’’’’’’’’’’’’’’’’’’A†’I’’’’’’’’’’’’’’’’’’’‘†’4’’’’’’’’’’’’’’’’’’’ц’5’’’’’’’’’’’’’’’’’’’‡’4’’’’’’’’’’’’’’’’’’’’’true. ’’’’’’’’’’’’’’’Q‡’8’’’’’’’’’’’’’’’’’’’‘‡’-’’’’’’’’’’’’’’’’’’’Į‡’-’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’>abolish (X) :- elan (abolish, X). ’’’’’’’’’.append ([], X, X) :- !. ’’’’’’’’’>append ([X|Y], Z, [X|W]) :- append (Y, Z, W). ’’’’’’’’’’>atom (X) :- functor (X, Y, 0). ’’’’’’’’’>atomic (X) :- atom (X); integer (X). ’’’’’>consult (X) :- elan (consult, X). ’’’’’’’’’.end :- bye. ’’’’’’’.fail :- []. ’’’’’’’’Nfindall (X, Y, Z) :- tell ("$$"), write ("[ "), findall (X,Y); ’’N write (" ]"), told, see ("$$"), read (Z), ’> seen, elan (forget, "$$"). ’Nfindall (X, Y) :- call (Y), writeq (X), write (","), []. ’’’’’>integer (X) :- functor (X, Y, -1). ’’’’’’’’listing (X). ’’’’’’’’’’’’’’member (X, [X|Z]). >member (X, [Y|Z]) :- member (X, Z). ’’’’’’’’’’’’’>nl :- elan (line). ’’’’’’’’’’’’’’’>non var (X) :- var (X), !, []; . ’’’’’’’’’’>not (X) :- call (X), !, []; . ’’’’’’’’’>notrace :- elan (trace, off). ’’’’’’’’’>reconsult (X) :- elan (reconsult, X). ’’’’’’’.repeat :- repeat. ’’’’>see (X) :- elan (sysin, X). ’’’’’’’’’’’>seen :- elan (sysin, ""). ’’’’’’’’’’.tab (X) :- tab(X,1). ’’Ntab (X,Y) :- Y<=X, !, put (32), incr(Y), tab(X,Y);. ’’’’’>tell (X) :- elan (sysout, X). ’’’’’’’’’’>told :- elan (sysout, ""). ’’’’’’’’’>trace :- elan (trace, on). ’’’’’’’’’’>< (X, Y) :- <= (X, Y), <> (X, Y). ’’’’’’.> (X, Y) :- <= (Y, X). ’.>= (X, Y) :- < (Y, X). ’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’sum’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!ƒa€ė’’ l’’’’llM’’’’’’sum’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€’<’’’’’’’’’’’’’’’’’’’”€’0’’’’’’’’’’’’’’’’’’’ဒ’’’’’’’’’’’’’’’’’’’’8’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’G’’’’’’’’’’’’’’’’’’’±’3’’’’’’’’’’’’’’’’’’’ń’7’’’’’’’’’’’’’’’’’’’1‚’1’’’’’’’’’’’’’’’’’’’q‚’’’’’’’’’’’’’’’’’’’’‚’A’’’’’’’’’’’’’’’’’’’т’A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’>suc (0, 1). suc (1, 2). suc (2, 3). suc (3, 4). suc (4, 5). ’’>suc (5, 6). suc (6, 7). suc (7, 8). suc (8, 9). ’’’’’’’’’’’’’’sum (0, X, X). ’’’’’’’’’’’’’’’>sum (X, Y, Z):- suc (V, X), sum (V, Y, W), suc (W, Z). ’’’’’’plus (X, [0,0], X):- !. ’’’’’Nplus (X, Y, Z):- plus one (V, Y), plus (X, V, W), !, plus one (W, Z). ’’’’’’’>plus one ([X, Y], [V, W]):- suc (Y, W), X = V, !; ’’’’’’’’’’’> Y = 9, suc (X, V), W = 0. ’’’’’’’>treereverse (X,Y):- rev (X,Y), !; rev (Y,X), !. ’’’’’’’’’’’’’rev ([], []). Nrev ([X|Y], Z):- X <> [H|T], rev (Y, W), !, append (W, [X], Z); ’’’’’’’’’’’’’N rev (X, V), rev (Y, W), !, append (W, [V], Z). ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’903/’’’’’’’’’’’’.X 884/857/850/845/841/844/854/872/854/810/’’>X 756/676/722/826/829/905/1029/1062/1026/968/’’’’’’’’’’’’’’’.X 934/919/884/783/711/725/763/784/784/768/’’.X 742/744/724/700/716/751/765/673/488/385/’’.X 397/479/613/690/698/681/664/666/654/630/’’.X 603/573/546/510/476/445/402/359/320/1681 NX .01965/.00123/.00082/.00082/.00082/.00055/.00055/.00055/.00055/.00055/’’’’’’NX .00033/.00033/.00033/.00033/.00033/.00064/.00064/.00064/.00064/.00064/’’’’’’NX .00183/.00183/.00183/.00183/.00183/.00131/.00131/.00131/.00131/.00131/’’’’’’NX .00152/.00152/.00152/.00152/.00152/.00193/.00193/.00193/.00193/.00193/’’’’’’NX .00302/.00302/.00302/.00302/.00302/.00497/.00497/.00497/.00497/.00497/’’’’’’NX .00750/.00750/.00750/.00750/.00750/.01220/.01220/.01220/.01220/.01220/’’’’’’NX .01868/.01868/.01868/.01868/.01868/.03146/.03146/.03146/.03146/.03146/’’’’’’NX .05206/.05206/.05206/.05206/.05206/.08241/.08241/.08241/.08241/.175 ’’’’’’NX .0008/.0041/.0138/.0274/.0453/.0597/.0745/.0861/.0933/.1025/’’’’’’’’’’’’’’NX .1067/.1074/.1050/.0963/.0872/.0753/.0642/.0531/.0430/.0360/’’’’’’’’’’’’’’NX .0297/.0225/.0184/.0144/.0114/.0087/.0063/.0044/.0031/.0020 ’’’’’’’’’’’’C LENGTH=2000’’’’’’’’’’’’’’’>NOTE PRINT GB,A(1),S(1),BEV(1),BEV(2),GR(1),GR(15),GR(30)’’’’’>PRINT GBEV,BEV(1),BEV(40),BEV(60),BEV(63),BEV(65),ZBEV,PRENT’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ dyn.delaytest’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aa€ė’’ "’’’’ M’’’’’’ dyn.delaytest’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’a€’’’’’’’’’’’’’’’’’’’’€’’’’’’’’’’’’’’’’’’’’’’ C D=50’’’’’’’’’’’”€’$’’’’’’’’’’’’’’’’’’’р’’’’’’’’’’’’’’’’’’’’ń€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NOTE GOODMAN S.248’’’’’’’’’’’A Y.K=DELAY3(X,D)’’’’’’’’’.R X.KL=TABLE(XT,TIME.K,0,125,25)’’’’’’’’’’T XT=0/10/0/-10/0/10’’’’’’PLOT X=X,Y=Y(-10,10)’’’’’’’’’’.SPEC DT=0.5,LENGTH=125,PLTPER=2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’dyn.mehreredelays’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€ė’’ "’’’’ M’’’’a€’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’€’’’’’’’’’’’’’’’’’’’’”€’’’’’’’’’’’’’’’’’’’’Į€’’’’’’’’’’’’’’’’’’’’’’ C D=50’’’’’’’’’’’ဒ$’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’dyn.mehreredelays’’’’’’’’’’’’’NOTE GOODMAN S.248’’’’’’’’’’’A Y.K=DELAY3(X,D)’’’’’’’’’A Z.K=DELAY3(Y,D)’’’’’’’’’.R X.KL=TABLE(XT,TIME.K,0,125,25)’’’’’’’’’’T XT=0/10/0/-10/0/10’’’’’’PLOT X=X,Y=Y,Z=Z(-10,10)’’’’’’.SPEC DT=0.5,LENGTH=125,PLTPER=2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ dyn.wohnen’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’permute’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q‚a€ė’’x’’’’xxM’’’’’’permute’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€’’’’’’’’’’’’’’’’’’’’€’’’’’’’’’’’’’’’’’’’’”€’*’’’’’’’’’’’’’’’’’’’р’’’’’’’’’’’’’’’’’’’’ń€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’Q’"’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’с’’’’’’’’’’’’’’’’’’’’ń’ ’’’’’’’’’’’’’’’’’’’!‚’’’’’’’’’’’’’’’’’’’’A‚’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’permute ([], []). ’’’’’’’’’’’’permute ([E|X], Z):- ’’’’’’’’’. permute (X, Y), insert (E, Y, Z). ’’’’insert (E, X, [E|X]). ’’’’’’’insert (E, [F|X], [F|Y]):- ’’ insert (E, X, Y). ’’’’marquise(RESULT):- ’’’’’’’’’’’. permute (["beautiful marquise", ’’’’’’’’’’’’. "your beautiful eyes", ’’’’’’’ "make me", ’ "die", ’’’. "of love" ’’’’’’’’’’’’’’ ], ’’’. RESULT). ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’family’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į†a€ė’’„’’’’„„ M’’’’’’family’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a€’F’’’’’’’’’’’’’’’’’’’±€’C’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’?’’’’’’’’’’’’’’’’’’’q’?’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’ၒ/’’’’’’’’’’’’’’’’’’’!‚’-’’’’’’’’’’’’’’’’’’’Q‚’=’’’’’’’’’’’’’’’’’’’‘‚’+’’’’’’’’’’’’’’’’’’’Į‚’’’’’’’’’’’’’’’’’’’’į‚’E’’’’’’’’’’’’’’’’’’’1ƒ’8’’’’’’’’’’’’’’’’’’’qƒ’;’’’’’’’’’’’’’’’’’’’±ƒ’I’’’’’’’’’’’’’’’’’’’„’)’’’’’’’’’’’’’’’’’’’1„’,’’’’’’’’’’’’’’’’’’’a„’@’’’’’’’’’’’’’’’’’’’±„’D’’’’’’’’’’’’’’’’’’’…’3’’’’’’’’’’’’’’’’’’’A…’>’’’’’’’’’’’’’’’’’’’…’9’’’’’’’’’’’’’’’’’’’Į…’'’’’’’’’’’’’’’’’’’’’ń…’3’’’’’’’’’’’’’’’’’’’1†’>’’’’’’’’’’’’’’’’’’’q†’9’’’’’’’’’’’’’’’’’’’±†’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Nmann(jŪrgen). mann(detlef). mann (frank). mann (peter). mann(jochen). ’’’’’’’’Nfrau(gaby). frau(yvonne). frau(sinha). frau(rita). frau(viktoria). ’’’’’’’’’’’frau(adelheid). ’’’’’’’’’’’’’’Nvater(gaby, peter). vater(yvonne, peter). vater(frank, peter). ’’’’’’’’’’’’’’’Nmutter(gaby, rita). mutter(yvonne, rita). mutter(frank, rita). ’’’’’’’’’’’’’’’mutter(rita,viktoria). ’’’’’’’>vater(jŪrgen, heinz). mutter(jŪrgen, natalie). ’’’’’’’’’’’’’’’.vater(kalle, heinz). mutter(kalle, natalie). ’>mann(gaby, jŪrgen). mann(yvonne, detlef). mann(sinha,frank). ’.mann(rita, peter). mann(adelheid, jochen). ’’’frau(X,Y) :- mann (Y,X). ’’’’’Ngroūmutter(X,Y):- mutter(X,H), mutter(H,Y); vater(X,H), mutter(H,Y). ’’’’’’’’’>sohn(X,Y):- vater(Y,X), mann(Y); mutter(Y,X), mann(Y) . ’’’’’’>tochter(X,Y):- vater(Y,X), frau(Y); mutter(Y,X), frau(Y). ’’’Ngeschwister(X,Y):-vater(X,A),vater(Y,A),mutter(X,B),mutter(Y,B),<>(X,Y). ’’’’’.bruder(X,Y):- geschwister(X,Y), mann(Y). ’’’’’.schwester(X,Y):- geschwister(X,Y), frau(Y). ’’Nschwager(X,Y):- mann(X,Z), bruder(Z,Y); frau(X,Z), bruder(Z,Y). ’’’’’’’’’’’’’’NschwŁgerin(X,Y):-mann(X,Z),schwester(Z,Y);frau(X,Y),schwester(Z,Y). ’’’’’’’’’’>freund (X,Y):- mann(Y), mann(X), <>(X,Y); ’’’’’’’’’’’> mann(Y), frau(X), mann(Z,Y), <>(X,Z); > mann(Y), frau(X), !, mann(Z,Y), []; ’’’’’. mann(Y), frau(X). ’’’’’’’>freundin (X,Y):- frau(Y), frau(X), <>(X,Y); ’’’’’’’’’’’> frau(Y), mann(X), mann(Y,Z), <>(X,Z); > frau(Y), mann(X), !, mann(Y,Z), []; ’’’’’. frau(Y), mann(X). ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’Ą’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ыa€ė’’kh"’’’’lM’’’’’’ dyn.wohnen’’’’’’’’’’’’’’’’’’’k’’’’’’’’’’’’’’’’’’a€’)’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’‘€’B’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’ဒ’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’’*’’’’’’’’’’’’’’’’’’’’’ N pop=popi’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’A’ ’’’’’’’’’’’’’’’’’’’q’%’’’’’’’’’’’’’’’’’’’”’,’’’’’’’’’’’’’’’’’’’с’,’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ C nim=.145’’’’’’’’’’note’’’’’’’’’’’’’’’’’!‚’/’’’’’’’’’’’’’’’’’’’a‚’N’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’±‚’’’’’’’’’’’’’’’’’’’’’’ C mpt=5’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’т’D’’’’’’’’’’’’’’’’’’’!ƒ’,’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’Qƒ’#’’’’’’’’’’’’’’’’’’’ƒ’&’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’±ƒ’:’’’’’’’’’’’’’’’’’’’ńƒ’+’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’A„’;’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’’’ C nom=.02’’’’’’’’’’’note ’’’’’’’’’’’’’’’’”„’1’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’’’ C drf=.025’’’’’’’’’’note ’’’’’’’’’’’’’’’’…’*’’’’’’’’’’’’’’’’’’’1…’.’’’’’’’’’’’’’’’’’’’a…’M’’’’’’’’’’’’’’’’’’’±…’’’’’’’’’’’’’’’’’’’’х’M’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’!†’’’’’’’’’’’’’’’’’’’’’’ N h=hi’’’’’’’’’’’’’’ c hi=10’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’Q†’’’’’’’’’’’’’’’’’’’’q†’3’’’’’’’’’’’’’’’’’’’±†’2’’’’’’’’’’’’’’’’’’’ń†’,’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’!‡’’’’’’’’’’’’’’’’’’’’’’ C nhc=.12’’’’’’’’’’’note ’’’’’’’’’’’’’’’’Q‡’8’’’’’’’’’’’’’’’’’’’‘‡’<’’’’’’’’’’’’’’’’’’’ч’9’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’ˆ’#’’’’’’’’’’’’’’’’’’’Aˆ’'’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’qˆ’’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’‘ˆ’)’’’’’’’’’’’’’’’’’’’Įˆ’$’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’ńˆ’’’’’’’’’’’’’’’’’’’’’’ C upp=.33’’’’’’’’’’’note’’’’’’’’’’’’’’’’’‰’+’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’A‰’$’’’’’’’’’’’’’’’’’’’q‰’’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’‘‰’3’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’щ’’’’’’’’’’’’’’’’’’’’’’ C lpu=1’’’’’’’’’’’ń‰’’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’Š’&’’’’’’’’’’’’’’’’’’’1Š’’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’QŠ’’’’’’’’’’’’’’’’’’’’’’ C alth=50’’’’’’’’’’’note’’’’’’’’’’’’’’’’’qŠ’0’’’’’’’’’’’’’’’’’’’±Š’K’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’!‹’K’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’q‹’1’’’’’’’’’’’’’’’’’’’’’ C dt=1’’’’’’’’’’’’±‹’’’’’’’’’’’’’’’’’’’’’’ C pltper=2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’.note modell des wohnbaus in einer stadt’’’’’Nnote siehe Goodman: Study Notes in System Dynamics, Seite 332 ff’’’’’’’’’’’’note BevŚlkerungs-Sektor’’’’.L pop.k=pop.j+dt*(imr.jk-omr.jk-ndr.jk)’’’’C popi=30.3.note pop population (people)’’’’’’’’’’’’’’.note popi population initial value’’’’’’’’’.note imr immigration rate (people/year)’’.note omr out-migration rate(people/year)’’R imr.kl=nim*ammp.k*pop.k’’>note nim normal immigration (fraction/year)’’’’’’’’’’’’’’’Nnote ammp attractiveness for migration multiplier perceived (dimensionless)A ammp.k=smooth(amm.k,mpt)’Nnote amm attractiveness for migration multiplier (dimensionless)’’’’’’’’’’.note mpt migrant perception time (years)’’.A amm.k=table(ammt,hr.k,0,2,.25)’’’’’’’’’’’.T ammt=.05/.1/.2/.4/1/1.6/1.8/1.9/2’’’’’’’’>note ammt attractiveness for migration multiplier table’’’’.note hr housing ratio (dimensionless)’’’A dmm.k=1/amm.k’’’’’’’’’’’’>note dmm departure migration multiplier (dimensionless)’’’R omr.kl=nom*dmm.k*pop.k’’’>note nom normal out migration (fraction/year)’’’’’’’’’’’’’R ndr.kl=pop.k*drf’’’’’’’’’.note ndr net death rate (people/year)’’’’.note drf death rate factor (fraction/year)Nnote*************************************************************************’note housing sector’’’’’’’’’Nnote*************************************************************************’.L h.k=h.j+dt*(hcr.jk-hdr.jk)’’’’’’’’’’’’’’’note h housing (units)’’>note hcr housing construction rate (units/year)’’’’’’’’’’’>note hdr housing demolition rate (units/year)’’’’’’’’’’’’.note hi initial value of houses (units)’’.R hcr.kl=nhc*hcm.k*lam.k*h.k’’’’’’’’’’’’’’’>note nhc normal housing construction (fraction/year)’’’’’’>note hcm housing construction multiplier (dimensionless)’’>note lam land availability multiplier (dimensionless)’’’’’.A hcm.k=table(hcmt,hr.k,0,2,.25)’’’’’’’’’’’.T hcmt=2.5/2.4/2.3/2/1/.37/.2/.1/.05’’’’’’’A hr.k=h.k/hd.k’’’’’’’’’’’’.note hr housing ratio(dimensionless)’’’’’.note hd housing desired (units)’’’’’’’’’’A hd.k=pop.k*upp’’’’’’’’’’’.note upp units per person (unit/person)’’’.A lam.k=table(lamt,lfo.k,0,1,.25)’’’’’’’’’’T lamt=1/.8/.5/.2/0’’’’’’’’>note lfo land fraction occupied (dimensionless)’’’’’’’’’’’A lfo.k=H.k*lpu/land’’’’’’’C land=1500.note lpu land per unit(acres/unit)’’’’’’’’note land (acres)’’’’’’’’’’R hdr.kl=h.k/alth’’’’’’’’’’>note alth average lifetime of housing (years)’’’’’’’’’’’’’’Nnote***********************************************************************’’’note control statements’’’’’Nnote***********************************************************************’’’>plot h=h(0,2000)/pop=p(0,8000)/hcr=c,hdr=d(0,100)’’’’’’’’’’’’’C length=200’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ dyn.wurzel’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’puzzle’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Įƒa€ė’’’’’’M’’’’’’puzzle’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€’*’’’’’’’’’’’’’’’’’’’‘€’6’’’’’’’’’’’’’’’’’’’р’#’’’’’’’’’’’’’’’’’’’’7’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’*’’’’’’’’’’’’’’’’’’’‘’*’’’’’’’’’’’’’’’’’’’Į’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń’-’’’’’’’’’’’’’’’’’’’!‚’/’’’’’’’’’’’’’’’’’’’a‚’+’’’’’’’’’’’’’’’’’’’‘‚’6’’’’’’’’’’’’’’’’’’’т’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń‚’’’’’’’’’’’’’’’’’’’’ƒ’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qƒ’’’’’’’’’’’’’’’’’’’’qƒ’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’repeat. ’’’’’’’’’’’’’”ƒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’. {Solution: 9,5,6,7,0,8,2} ’’’’>puzzle:- repeat, permute ((9,8,7,6,5,2,0), SENDMORY), ’’’’’’’’. write (SENDMORY), ’’’’’’’’’’’> puzzle (SENDMORY, SEND, MORE, MONEY), ’’’’’’’ elan (line), . write (SEND), write (+), ’’’’. write (MORE), write (=), ’’’’. write (MONEY). ’’’’’’’’’’’’’’.puzzle([S,E,N,D,O,R,Y], SEND, MORE, MONEY):- ’> SEND IS ((S * 10 + E) * 10 + N) * 10 + D, ’’’’’’’’’’’’’’’. MORE IS ((10 + O) * 10 + R) * 10 + E, ’’’> MONEY IS (((10 + O) * 10 + N) * 10 + E) * 10 + Y, ’’’’’’’’ MONEY IS SEND + MORE. ’’’’permute ([], []). ’’’’’’’’’’’’>permute ([E|X], Z):- permute (X, Y), insert (E, Y, Z). ’’’’’’’insert (E, X, [E|X]). ’’’’’’’.insert (E, [F|X], [F|Y]):- insert (E, X, Y). repeat:- repeat. ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’calc’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’’’’ų’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’…a€ė’’"œ’’’’œœ#M’’’’’’calc’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’a€’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”€’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ဒ’’’’’’’’’’’’’’’’’’’’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’-’’’’’’’’’’’’’’’’’’’‘’1’’’’’’’’’’’’’’’’’’’с’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’!’’’’’’’’’’’’’’’’’’’A‚’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’”‚’’’’’’’’’’’’’’’’’’’’Į‚’%’’’’’’’’’’’’’’’’’’’ń‚’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ƒ’D’’’’’’’’’’’’’’’’’’’ƒ’D’’’’’’’’’’’’’’’’’’’у’D’’’’’’’’’’’’’’’’’’’!„’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’‘„’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ф’ ’’’’’’’’’’’’’’’’’’’…’*’’’’’’’’’’’’’’’’’’’1…’G’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’>{ CALC evaluates arithmetic expressions with store } ’’’’’’’’’>calc:- eval ([], RS), write (result store), write (RS), nl. ’’eval (SI, SO):- ’’’’’’’’’’’’’’> read (CALC), nonvar (CALC), eval member (CALC, SI, SO). ’’’eval member (CALC, SI, SO):- ’. member (CALC, [stop,end,bye,eof]), SO=SI; ’> eval (CALC,I,SI,ST), write (I), eval (ST,SO); ’’’’’’’’’’’’’> write (error in), write (CALC), nl, eval (SI, SO). ’’’’’’’’.eval (I, I, S, S):- integer (I). ’’’’’’’’’’’’’>eval (N, I, S, S):- atom (N), eval atom (N, I, S). ’’’’’’’’’’’eval atom (N, I, S):- ’’’’’’’’ member (N=I, S); ’’’’’’’’’’’. write ("error: Cell"), write (N), ’’’’’’’’’> write("not found in store. 0 substituted."), nl, I=0. ’’’’Neval ( L+R,I,SI,SO):- eval (L,J,SI,ST), eval (R,K,ST,SO), I IS J+K. ’’’’’’’’’’Neval ( L-R,I,SI,SO):- eval (L,J,SI,ST), eval (R,K,ST,SO), I IS J-K. ’’’’’’’’’’Neval ( L*R,I,SI,SO):- eval (L,J,SI,ST), eval (R,K,ST,SO), I IS J*K. ’’’’’’’’’’Neval ( L/R,I,SI,SO):- eval (L,J,SI,ST), eval (R,K,ST,SO), I IS J/K. ’’’’’’’’’’eval (N=O, I, SI, SO):- ’’’’’’> atom (N), eval (O,I,SI,ST), eval repl (N,I,ST,SO). ’’’’’’’’’.eval repl (N, I, [], [=(N,I)]). ’’’’’’’’’’’’’’.eval repl (N, I, [=(N,_)|S], [=(N,I)|S]). ’’’’Neval repl (N, I, [=(M,J)|SI], [=(M,J)|SO]):- eval repl (N, I, SI, SO). ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€ė’’  "’’’’M ’’’’’’ dyn.wurzel’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€’ ’’’’’’’’’’’’’’’’’’’’’note’’’’’’’’’’’’’’’’’’’ l uj.k=u.j’’’’’’’’’’’‘€’’’’’’’’’’’’’’’’’’’’±€’’’’’’’’’’’’’’’’’’’’’’n uj=1’’’’’’’’’’’’’’’’’n u=1’’’’’’’’’’’’’’’’’’n v=1’’’’’’’’’’’’’’’’Į€’’’’’’’’’’’’’’’’’’’’ဒ’’’’’’’’’’’’’’’’’’’’’c dt=1’’’’’’’’’’’’’’’’’ c length=20’’’’’’’’’’’’ c prtper=1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’.note theon von smyrnas verfahren’’’’’’’’’’’’’’l u.k=u.j+2*v.j’’’’’’’’’’’’’’’l v.k=v.j+uj.ja wurzelzwei.k=u.k/v.k’’’’’’’’print u,v,wurzelzwei’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ out.world’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ń’’’’’’’’’’’’’’’’’’’’’’’Ą’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńŠa€ė’’-*!"!’’’’.M’’’’’’ out.world’’’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’a€’’’’’’’’’’’’’’’’’’’’€’>’’’’’’’’’’’’’’’’’’’Į€’D’’’’’’’’’’’’’’’’’’’’=’’’’’’’’’’’’’’’’’’’Q’E’’’’’’’’’’’’’’’’’’’”’<’’’’’’’’’’’’’’’’’’’ၒE’’’’’’’’’’’’’’’’’’’1‚’;’’’’’’’’’’’’’’’’’’’q‚’;’’’’’’’’’’’’’’’’’’’±‚’;’’’’’’’’’’’’’’’’’’’ń‚’;’’’’’’’’’’’’’’’’’’’1ƒ’;’’’’’’’’’’’’’’’’’’’qƒ’;’’’’’’’’’’’’’’’’’’’±ƒ’;’’’’’’’’’’’’’’’’’’’ńƒ’;’’’’’’’’’’’’’’’’’’’1„’;’’’’’’’’’’’’’’’’’’’q„’;’’’’’’’’’’’’’’’’’’’±„’;’’’’’’’’’’’’’’’’’’’ń„’;’’’’’’’’’’’’’’’’’’’1…’;’’’’’’’’’’’’’’’’’’’q…’<’’’’’’’’’’’’’’’’’’’±…’;’’’’’’’’’’’’’’’’’’’ń…’;’’’’’’’’’’’’’’’’’’’1†’;’’’’’’’’’’’’’’’’’’’q†’;’’’’’’’’’’’’’’’’’’’±†’;’’’’’’’’’’’’’’’’’’’ń†’<’’’’’’’’’’’’’’’’’’’1‡’;’’’’’’’’’’’’’’’’’’’q‡’;’’’’’’’’’’’’’’’’’’’±‡’;’’’’’’’’’’’’’’’’’’’ń‡’;’’’’’’’’’’’’’’’’’’’1ˆ’;’’’’’’’’’’’’’’’’’’’qˆ’<’’’’’’’’’’’’’’’’’’’±ˆ’;’’’’’’’’’’’’’’’’’’’ńˆ’;’’’’’’’’’’’’’’’’’’’1‰’;’’’’’’’’’’’’’’’’’’’q‰’;’’’’’’’’’’’’’’’’’’’±‰’;’’’’’’’’’’’’’’’’’’’ń‰’;’’’’’’’’’’’’’’’’’’’1Š’<’’’’’’’’’’’’’’’’’’’qŠ’;’’’’’’’’’’’’’’’’’’’±Š’<’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’PAGE 1 : WORLD DYNAMICS W5’>P=P(0,8E9)/POLR=2(0,40)/CI=C(0,20E9)/QL=Q(0,2)/NR=N(0,1000E9) N 0.0 2.000000e9 4.000000e9 6.000000e9 8.000000e9p’’’’’’’’’’> 0.0 10. 20. 30. 40.2’N 0.0 5.000000e9 1.000000e10 1.500000e10 2.000000e10c’’’’’’’’’> 0.0 .5 1. 1.5 2.q’’N 0.0 2.500000e11 5.000000e11 7.500000e11 1.000000e12n’’’’’’’’’>1900. 2c________p__.__q_________.____________._______n____.’’’>1902. 2c p . q . . n .’’’>1908. 2c p . q . . n .’’’>1914. 2c p . q . . n .’’’>1920. 2 c p. q . . n .’’’>1926. 2_c__________p____________q____________.______n_____.’’’>1932. 2 c .p .q . n .’’’>1938. 2 c . p .q . n .’’’>1944. 2 c . p . q . n .’’’>1950. 2 c . p ˜@˜@ . n .’’’>1956. 2______c_____.______p_____.q___________.___n________.’’’>1962. 2 c . p q . n .’’’>1968. 2 c . p q. . n .’’’>1974. .2 c . p. .n .q’’>1980. .2 c. q.p n .’’’>1986. .2___________.c_________q_.__p_______n_.____________.’’’>1992. . 2 . c q . p n . .’’’>1998. . 2 . c q . p n . .’’’>2004. .__2_________.____c_q_____._____np_____.____________.’’’>2010. . 2 . c . n p . .q’’>2016. . 2 . q c . n p . .’’’>2022. . 2 . q c . n p . .’’’>2028. . 2 . q c n p . .’’’>2034. ._____2______.___q____c_n_._______p____.____________.’’’>2040. . 2 . q cn . p . .’’’>2046. . 2 . q c . p . .n’’>2052. . 2 . q nc . p . .’’’>2058. . 2 . q n c . p . .’’’>2064. ._____2______.__q_n__c____.__p_________.____________.’’’>2070. . 2 . q n c . p . .’’’>2076. . 2 . qn c .p . .’’’>2082. . 2 . qn c .p . .’’’>2088. . 2 . q c p . .n’’>2094. .__2_________.qnc________p.____________.____________.’’’>2100. . 2 .qc p . . .n’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’prieks’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į‰a€ė’’<9Ø’’’’ØØ=M’’’’’’prieks’’’’’’’’’’’’’’’’’’’’’’’<’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a€’’’’’’’’’’’’’’’’’’’’€’’’’’’’’’’’’’’’’’’’’”€’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į€’#’’’’’’’’’’’’’’’’’’’ń€’.’’’’’’’’’’’’’’’’’’’!’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’#’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’±’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ၒ*’’’’’’’’’’’’’’’’’’’‚’0’’’’’’’’’’’’’’’’’’’Q‚’1’’’’’’’’’’’’’’’’’’’‘‚’1’’’’’’’’’’’’’’’’’’’т’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ’%’’’’’’’’’’’’’’’’’’’Aƒ’+’’’’’’’’’’’’’’’’’’’qƒ’4’’’’’’’’’’’’’’’’’’’±ƒ’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńƒ’0’’’’’’’’’’’’’’’’’’’1„’6’’’’’’’’’’’’’’’’’’’q„’?’’’’’’’’’’’’’’’’’’’Į„’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’!…’’’’’’’’’’’’’’’’’’’’A…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a…’>’’’’’’’’’’’’’’’’’’’”…’;’’’’’’’’’’’’’’’’’’’į…’@’’’’’’’’’’’’’’’’’’’1†’4’’’’’’’’’’’’’’’’’’’q†’+’’’’’’’’’’’’’’’’’’’”†’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᆒ=’’’’’’’’’’’’’’’’’’’!‡’<’’’’’’’’’’’’’’’’’’’a‡’’’’’’’’’’’’’’’’’’’’‡’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į‡’F’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’1ˆ’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’”ˆ’7’’’’’’’’’’’’’’’’’’’ሒ’’’’’’’’’’’’’’’’’’’‰’-’’’’’’’’’’’’’’’’’’’1‰’’’’’’’’’’’’’’’’’’’’Q‰’$’’’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’”‰’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ist priek (bo priek). ’’’’’’’’ist priek (ki priek). ’’’’’’’’ist priek (bla priek). ’’’’’’’.WER GNASELT WEN :- population (B), ’’’’’’’’’’’. member ([WEN, WER, _], B), . bedingungen (B). ’’’’’’’’’’.WER KNAUDERT WEN:- population (B), ’’’’’’’’’’’. member ([WER, _, WEN], B), . bedingungen (B). ’’’’’’’’’’.population (B):- sind prieks (U, V, W), ’’’’> sind knauderarten (R, S, T), ’’’’’’’’’’’’’’> B = [ [drausla puemfe, U, R], ’’’’’’’’’’’’’> [glessla puemfe, V, S], ’’’’’’’’’’’’’> [hapla puemfe, W, T] ]. ’’’’’’’’’’.sind prieks (X,Y,Z):- ist priek (G), ’’’’’’’’’. ist priek (H), H<>G, ’’’> ist priek (I), I<>G, I<>H, !, ’’’’’’’’’’> permute ([G,H,I], [X,Y,Z]). ’’’’’’’’>sind knauderarten (X,Y,Z):- ist knauderart (G), ’’’’’’’’’’’’’’> ist knauderart (H), H<>G, ’’’’’’’’N ist knauderart (I), I<>G, I<>H, !, ’’’’’’’’’’’’’’’> permute ([G,H,I],[X,Y,Z]). ’’’ist knauderart (an). ’’’’’’’’’ist knauderart (ab). ’’’’’’’’’ist knauderart (ueber). ’’’’’’>bedingungen (B):- not member ([hapla puemfe,ki priek,_],B) , > not member ([hapla puemfe,_,ueber],B) , ’’’N not member ([drausla puemfe,bo priek,_],B) , ’’’’’’’’’’’’’’> not member ([_,bo priek,ab],B) , ’’’’’’’’’’. noch ne bedingung (B) , ’’’> weitere bedingungen (B) , !. ’’’’’’’’’’’’’’>weitere bedingungen (B):- not member([_,ki priek,ueber],B), ’> not member([_,bo priek,ueber],B) ’’ ; ’> member([drausla puemfe,_,an],B). ’’Nnoch ne bedingung (B):- not member ([drausla puemfe,ki priek,_],B) ’’’’’’’’ ; ’N not member ([glessla puemfe,_,ueber],B). ’’’’’’’’’’permute ([], []). ’’’’’’’’’’’’>permute (X, [Y|Z]):- delete (Y ,X, E), permute (E, Z). ’’’’’’’delete (X, [X|Z], Z). ’’’’’’’’.delete (X, [Y|Z], [Y|E]):- delete (X, Z, E). ’member (X, [X|Z]). ’’’’.member (X, [Y|Z]):- member (X, Z). ’’’’’’’’’’not member (X, []). ’’’’’’’’’’>not member (X, [Y|Z]):- X <> Y, not member (X,Z). ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ quicksort’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A‚a€ė’’ “’’’’““M’’’’’’ quicksort’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”€’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ဒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’#’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’:’’’’’’’’’’’’’’’’’’’ၒ2’’’’’’’’’’’’’’’’’’’!‚’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’>(* quicksort algorithm nach Clocksin-Mellish *) ’’’’’’’’’’’’’’>(* Example : quicksort ([1,3,2,4], [1,2,3,4], []) *) ’’’’’’’quicksort ([H|T], S, X) :- ’’’ split (H, T, A, B), . quicksort (A, S, [H|Y]), ’’’’’’’’’’’. quicksort (B, Y, X). ’’’’’’’’’’’’’’’quicksort ([], X, X). ’’’’’’’’>split (H, [A|X], [A|Y], Z) :- A <= H, split (H, X, Y, Z). ’’’’>split (H, [A|X], Y, [A|Z]) :- ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ dyn.forst7’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’’ų’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’•a€ė’’NNPK’’’’’’’’QQQRM’’QQ’’’’ dyn.forst7’’’’’’’ ^’’’N5’’’’’’’’’’’’’’’’2’’a€note ****# ’’”€’te fors’’’’note ’’’’’’’’’’Į€’te stehend’’a‚’0 sthv ’’±‚’ sthv ’’…’Fsourcen.k=r ’’1ƒ’5 vorr ’’ƒ’= pfle  ’’į‚’8’’’’’’’’’’’% ’’„’7 tpff’’A’ ernt2%’’ĮŠ’: ernt’’±“’< tern’’‚’. ’’A‚’’’’’’’’’’’’ ’’”„’te resourc ’’Įƒ’8’’’’’’’’’’’’’Į„’1 star ’’a…’" reso’’1Œ’@ anpaJ’’х’8 prei’’†’# einn$I’’”‘’:veraefaktorJ’’!’ eig.4’’’2 tanpI;"’’†’6te Pflegez’’Į†’? pfzu ’’‡’" pfzu!!’’A‡’ star""’’a‡’/ pfveN#’’Š’apersize(20K$’’ń‘’ tpfv%’’ń‡’3 erntML&’’Aˆ’ int ,ratio25/'’’ˆ’ pltp/*(’’QŠ’000) HK)’’ђ’ pfve(1-’’’’note ’’’’’’’’++’’’’note ’’’’’’’,’’‰’7te holz(&-’’!’’I1e3)/pfzust<M.’’į‹note ("pica")'(0’’”‰’ leng00’’”Š’te prtp*H1’’Į‰’"’’’’’’’’’’’3’’1‹’# rati33’’q‹’ maxvL4’’!“’9 eige':’’””’n dyn.fors66’’’’’’’’’’’’’’’’77’’’’’’’’’’’’’’’’88’’’’’’’’’’’’’’’’99’’’’’’’’’’’’’’’’::’’’’’’’’’’’’’’’’@;’’’’note ’’’’’’’’?.=’’Œ’te arbe;==’’’’note’’’’’’’’’@?>’’”Œ’ arbe><?’’ńŒ’Ibeit.k=arbe;>G’’A’ star;AA’’a’C prei;BB’’±’7 arbe;CC’’Ž’> notw;DD’’AŽ’E tnot;EE’’‘Ž’' rati;FF’’‘’B ernt;GG’’’- tern1)H’’a”’<agelength(5I’’‘’. pfx1J’’Q‘’- vent)$K’’”’Cype("picac"&4L’’a“’& anpa.&M’’‘“’ eige#P’’ń“’apersize(20#O’’Į”’agelength(5#PP’’į”’ype("picac"Q’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’>note ***********************************************’’’’’’’note forstbetriebsmodell ’note stehender Holzvorrat ’’.l sthv.k=sthv.j+dt*(zuw.jk-ernte.jk) ’’n sthv=startholz ’’’’’’>resourcen.k=resourcen.j+dt*(einnahmen.jk-pfausgaben.jk-eigenenc vorratsfaktor=0.04 >r zuw.kl=sthv.k*vorratsfaktor*pflegefaktor.k ’’’’’’’’’’a pflegefaktor.k=tabhl(t ternproz=0.1/0.3/0.35. stehenderholzvorrat stehenderholzvorrat’’’’’’’’Nl holz.k=holz.j+dt*(zuwachs.jk-ernte.jk) s.jk-ernte.jk) s.jk-ernte.jk) .n holz=startholz rrat=startholz ’’’’’’’Nr zuwachs.kl=holz.k*vorratsfaktor*pflegefaktor.k pflegefaktor.k ’’’’’’’Nc vorratsfaktor=0.035 Zuwachs in % von holzenderholzvorratt’’’’’’’’’>a pflegefaktor.k=tabhl(tpffaktor,pfzustand.k,0,1,0.1) ’>c startholz=15000 Angabe in Festmetern(fm)’’’’’’>t tpffaktor=.7/.7/.7/.7/.7/.8/.9/.95/1/1.05/1.2 ’’’’’’’>r ernte.kl=stehenderholzvorrat.k*ernteproz.k*ernteprozfa ernteproz.k=tabhl(ternote resourcen ’’’’’’’’’’’’’’Nc startresourcen=100000 Geldeinheiten -pfausgaben.jk-eigenentn.jk)’Nl resourcen.k=resourcen.j+dt*(einnahme.jk-eig.jk-pfausgaben.jk))))))’’’.n resourcen=startresourcen k’’’’’’’’’’’>r einnahmen.kl=stehenderholzvorrat.k*ernteproz.k*preis >c preis=190 Geldeinheiten pro fm t’’’’’.r einnahme.kl=ernte1.k*preisventn.k ’r entn.kl=varentn.k*resa varentn.k=resourcen.k>note Pflegezustand (pfzustand; dimensionslose GrŚūe) ’’’’’’’’Nl pfzustand.k=pfzustand.j+dt*(pfverbess.jk-pfversch.jk) ’’’’’.n pfzustand=startpfzustand ’’’’’’’’’’’’c startpfzustand=0.8’’’Nr pfverbess.kl=smooth(pfx1.k,pfverzoeg) pfzustand.k),pfverzoeg) ’’’’’’’180000,100000) ’’’’’’t tpfverae=-0.4/-0.2/0/Na ernte1.k=holz.k*ernteproz.k*ernteprozfak.k*ernteprozfak.kkkkk’’’’’’’’>n eigenent=eigenentstart en.k-varentn.k ustand.k ’’Nc pltper=1lfaktor.k=tabhl(tpfvers,pflegeaufwand.k,0,80000, ’’’’’’ 80000) ’’’’’’’’’’’’’’t tpfvers=0.2/0 ’’’’’’’>note print ratio1,ratio2,eigenent,arbeit,pfzustand nnnnnn’>plot stehenderholzvorrat=s/resourcen=r/pfzustand=p(0,1)/entnahx 1e3)/pfzustac length=50 ’’’’’’’’’’’>t tpfversch=.4/.2/.1/.05/0 lfaktor.k*pfzustand.k ’’’’’’NNOTE 25.04.1985 14.30 bhl(tpfveraeb,pflegeaufwand.k,80000,180000,100000) Nc dt=1 schlfaktor.k=tabhl(tpfvers,pflegeaufwand.k,0,80000,80000) ’’’’’’note prtper=1 ’’’’’’’>a ernteproz.k=tabhl(ternproz,ratio1.k,0.5,1.2,0.1) ’’.t ternproz=0.02/0.0.03/0.035/0.06/0.08 >a ratio1.k=holz.k/maxvorrat at.k/maxvorrat ’’’’’’’’’’’’c maxvorrat=16000 ’’’’.a varentn.k=tabhl(tvarent,ratio2.k,0.5,t tvarent=0.5/0.6/0.7/.N#type("pica")# 1985 15.45at=h(1e4,2e4)/resourcen=R(5e4,2e5)/arbeit=a(400, ’’’Na anpassungsfaktor.k=tabhl(tanpass,ratio2.k,0.5,1.5,0.1) tn.kkk’’’’’’’note arbeitseinheitennnn’’’’’Nn arbeit=startarbeit 00 pfausgaben.jk*arbeitspreis-arbeitsverbrauch.jk’Nl arbeit.k=arbeit.j+dt*(pfausgaben.jk/preisae-arbeitsverbrauch.jk)’’’’’c startarbeit=80000’’’’Nc preisae=100 ( preis pro arbeitseinheit in geldeinheiten ) ’’’’’’’’’’’Nr arbeitsverbrauch.kl=min(arbeit.k,notwarbeit.k)))))cennn’’’’’’’’’’’’’’>a notwarbeit.k=tabhl(tnotwarb,pfzustand.k,0.0,1.0,0.1) Nt tnotwarb=1600/1550/1500/1450/1400/1300/1150/950/800/700/600 ’’’’’’’’.a ratio2.k=arbeit.k/notwarbeit.k/100 ’’>a ernteproz.k=tabhl(ternteprozfakratio2.k,0.2,1.4,0.2) >t ternteprozfak=.4/.5/1/2/1.05/1/.9/.77035/.03 ’’’’’’’’Nr ernte.kl=ernte1.k holzvorrat.k*ernteproz.k*ernteprozfak.k’’’’’’’’’’’’Na ernteprozfak.k=tabhl(ternteprozfak,ratio2.k,0.2,1.6,0.2) ’’’’’’’’’’’’>pfveraefaktor.k=tabhl(tpfveraesplit (H, X, Y, Z). ’’’’’’’’’’’’split (_, [], [], []). ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ topographie’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’ų’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’„a€ė’’=:Ą’’’’ĄĄ>M’’’’’’ topographie’’’’’’’’’’’’’’’’’’=’’’’’’’’’’’’’’’’’’a€’’’’’’’’’’’’’’’’’’’’€’’’’’’’’’’’’’’’’’’’’”€’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’Į€’’’’’’’’’’’’’’’’’’’’ဒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’ !. ’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ nol(N):- ’’’’’’’’’’’’’’ read(N). ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’ read(X), ’’’’’’’’’’ read(Y), ’’’’’’’’ၒ’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ enter(L):- ’’’’’’’’’’’’ nol(N), ’’’’’’’’’1‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’Q‚’’’’’’’’’’’’’’’’’’’’’’ H=[X,Y]; ’’’’’’’’’’ H=[Y,X]; ’’’’’’’’q‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’‘‚’’’’’’’’’’’’’’’’’’’’±‚’’’’’’’’’’’’’’’’’’’’Į‚’’’’’’’’’’’’’’’’’’’’į‚’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’ L<>N, ’’’’’’’’’’’!ƒ’’’’’’’’’’’’’’’’’’’’Aƒ’’’’’’’’’’’’’’’’’’’’aƒ’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’”ƒ’’’’’’’’’’’’’’’’’’’’Įƒ’’’’’’’’’’’’’’’’’’’’’’ L<>N, ’’’’’’’’’’’გ’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’go:- ’’’’’’’’’’’’’’’’A„’’’’’’’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’member(X,[X|_]). ’’’’’’’’’’’’’member(X,[_|Y]):- ’’’’’’’’’’’’ member(X,Y). ’’’’’’’’’’’’’append([],L,L). ’’’’’’’’’’’’’’append([X|A],B,[X|C]):- ’’’’’’ append(A,B,C). ’’’’’’’’’’’efface(A,[A|L],L):- ’’’’’’’’’’efface(A,[B|L],[B|M]):- ’’’’’’ efface(A,L,M). ’’’’’’’’’’’efface(_,[],[]). ’’’’’’’’’’’’’input(_,_,N,N,L,L). ’’’’’’’’’’input(X,Y,R,N,L,O):- ’’’’’’’’’ append([[X,Y]],L,M), ’’’’’ C IS R+1,  input(_,_,C,N,M,O). ’’’’’’ input(X,Y,0,N,[],L). ’’’’’searchnext(X,Y,[H|T]):- ’’’’’’ searchnext(X,Y,T). ’’’’’’’onemove(_,_,[],L):- ’’’’’’’’’’ write(L). onemove(X,Y,L,H):- ’’’’’’’’’’’ searchnext(X,Y,L), ’’’’’’’ efface([X,Y],L,N), ’’’’’’’ write(N),elan(line), ’’’’’ append(H,[Y],F), ’’’’’ onemove(Y,Z,N,F). ’’’’’’’’onemove(X,Y,L,H):- ’’’’’’’’’’’ searchnext(X,Y,L), ’’’’’’’ efface([Y,X],L,N), ’’’’’’’ write(N),elan(line), ’’’’’ append(H,[Y],F), ’’’’’ onemove(Y,Z,N,F). ’’’’’’’’ enter(L),!, ’’’’’’’’’’’’’’ onemove(X,Y,L,[X]). ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’******** LISP ********’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a‚a€ė’’C’’’’CCM’’’’a€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’‚’ stallations’’1‚’ ===========’’’’ ’’’’’’’’’’’’’’Į€’gin ("LISP" ’’ဒtch all (ar ’’’sert ("lisp ’’’obal manage ’’!’’’’’’’’’’’’  ’’A’’’’’’’’’’’’ ’’a’’’’’’’’’’’’ ’’”’gin "lisp",’’Į’tch ("lisp.’’’’lisp ’’’’’’’’’’’’’’’’’’’’’’’’ ’’ၒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’b,pflegeaufwand.k,80000,180000,1>r eig.kl=eigenent.kvarent,ratio2.k,0.5,1.5,0.1) ’’’’’’#pagelength(59.0)# ktor=0.2 ’’>t tanpass=.5/.55/.6/.7/.9/1/1/1/1.1/1.2/1.3///4.1 ’’’’’.varentn.k*resourcen.k*entnahmefaktor’’’’’’’’’’a ventn.k=’’’’’’’’’’’’’>a pfx1.k=pfverbfaktor.k*(1-pfzustand.k),pfverzoeg)’’’’’.r pfausgaben.kl=resourcen.k-eigenent.k’#type("picac")# 985 15.45’’’’Na pfverbfaktor.k=tabhl(tpfverb,ratio2.k,.8,1.4,.2) 000) ’’’’’’’’’.t tpfverb=0/0/.1/0.22255 ’’’’’’’’’’’’nplot holz=h(1e4,2e4)/eigenent=e(0,2e5)/pfzustand=P(0,1)/ratio2=2(0,5))))))))))))))))))))))))))/’’’’’’’’’’’>r pfversch.kl=smooth(pfverschfaktor.k*pfzustand.k,pfverNc pfverzoeg=2 or.k=tabhl(tpfversch,ratio2.k,0,.8,.2) ’’’’’’’’’’’’’’>l eigenent.k=min(eigenent.j*anpass.jk,resourcen.j)’’’’’.r anpass.kl=anpassungsfaktor.k ’’’’’’’’c eigenentstart=20000 ’>t ternproz=0.02/0.025/0.03/0.03/0.03/0.035/0.06/0.08 ’’#papersize(20.5,61.0)# .30 ’’Nr pfversch.kl=smooth(pfverschfaktor.k*pfzustand.k,pfverzoeg) ’’’’’’’’’’>a pfverschfaktor.k=tabhl(tpfversch,ratio2.k,0,.8,.2) ’’run dyn.forst7’’’’’’’’’’’’’’’#pagelength(59.0)# ’’’’’’’’’’’#type("picac")# ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’dyn.ruestungswettlauf’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±†a€ė’’ ’’’’#M’’’’a€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’€’(te ruestun’’’’note ’’’’’’’’’’±€’;te literat’’’’note ’’’’’’’’ ’’ń€’/ igeneskri ’’1’te konstant ’’ńnote genkrieg  ’’’* ’’’’’’’’’’’’’’’’’”ƒ’/ ’’’’’’’’ ’’!‚’( gegenkrieg’’’’note ’’’’’’’’ ’’ƒ’0 ’’’’’’’’’’ ’’‚’Ete anfangsw’’т’>te werden a’’’’note ’’’’’’’’’’ń…’*  "’’’’note ’’’’’’’’’’ńƒ’( k=2 ’’!„’4 l=1 ’’a„’? a=2 ’’±„’ b=3 ’’ф’5 g=7 ’’…’ h=9 ’’1…’G mehrpot=’’Q†’2ot eigenkri’’’’ c dt=0.5 ’’’±…’ length=2’’х’ time=198 ’’’’ c pltper=1!’’‘†’ unten=-1""’’’’ c oben=250’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’dyn.ruestungswettlauf’’’’’’’’’.note ruestungswettlauf nach richardson ’’’’’’>note literatur: thiel "quantitaet oder begriff" S. 436 ff ’’’>x (k*gegenkriegspot.j-a*eigenkriegspot.j+g) nkriegspot.j’’’Nnote konstanten (k*gegenkriegspot.j-a*eigenkriegspot.j+g) .l gegenkriegspot.k=gegenkriegspot.j+dt* ’’’>x l*eigenkriegspot.j-b*gegenkriegspot.j+h) .n eigenkriegspot=(k*h+b*g)/(a*b-k*l)+mehrpot .n gegenkriegspot=(l*g+a*h)/(a*b-k*l) ’’’’’’.n eigenkriegspot=(k*h+b*g)/(a*b-k*l)+mehrpot Nnote anfangswerte fuer eigenkriegspotential und gegenkriegspotential ’’’’’’’’’>note werden am gleichgewichtspunkt plus etwas mehrpot gegeben >n eigenkriegspot=(k*h+b*g)/(a*b-k*l)+mehrpot ’’’’’’’’’’’’’’Nx (k*gegenkriegspot.j-a*eigenkriegspot.j+g) ’’’’’’’’’’’’’’Nx (l*eigenkriegspot.j-b*gegenkriegspot.j+h) ’’’’’’’’’’’’’’.c k=2 verteidigungskoeffizient ’’’’’’>c l=1 " des gegners ’’’’’’’’’’Nc a=2 koeffizient fuer aufwand zur kriegsvorbereitung t’’’’’’’’’’’’’’c b=3 " ’’’’’>c g=7 koeffizient fuer aggressive absichten ’’’’’’’’’c h=9 " ’’’’’Nc mehrpot=3 stoerung des gleichgewichts durch mehr potential ’’’’’’’.plot eigenkriegspot=e,gegenkriegspot=g(unten,oc length=2050 ’’’’’’’’’’’’’n time=1985 ’’’’’’’’’’’’’’’^l eigenkriegspot.k=eigenkriegspot.j+dt* (k*gegenkriegspot.j-a*eigenkriegspot.j+g) ’’’’’>plot eigenkriegspot=e,gegenkriegspot=g(unten,oben) ’’’’’’’’’’’c unten=-11 ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’ruestungsgleichgewicht.const’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’******** LISP ********’’’’’’’’Installationsanleitunvon LISP ============================= begin ("LISP") hen",archive) ’fetch all (archive) ’’’’’’’’’’insert ("lisp.1") ’’’’’’’’’’’’insert ("lisp.4") ’’’’’’’’’’’insert ("lisp.3") ’’’’’’’’’’’insert ("lisp.2") ’’’’’’’’’’’global manager ’’’’’’’’’’’’’’’begin ("lisp", "LISP") ’’’’’’’fetch ("lisp.bootstrap") ’’’’’reserve ("sprachen",archive) ’.Installationsanleitung fŪr LISP ’’’’’’’’’’.=============================== ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ lisp handbuch’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’ų’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ņåa€ė’’ÖŠÓ ’’’’  ×M’’’’’’ lisp handbuch’’’’’’’’’’’’’’’’Ö’’’’’’’’’’’’’’’’’’a€’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±€’’’’’’’’’’’’’’’’’’’’р’!’’’’’’’’’’’’’’’’’’’’’ #off ("u")# ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #center#Lisp ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #off("b")# ’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’ #on ("b")# ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1’?’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ #off("b")# ’’’’’’’’’’”’L’’’’’’’’’’’’’’’’’’’‚’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1‚’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q‚’M’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ #free(7.0)# ’’’’’’’’’Į‚’’’’’’’’’’’’’’’’’’’’’’ #free(2.0)# ’’’’’’’’’į‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ƒ’’’’’’’’’’’’’’’’’’’’Aƒ’’’’’’’’’’’’’’’’’’’’aƒ’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’”ƒ’’’’’’’’’’’’’’’’’’’’Įƒ’’’’’’’’’’’’’’’’’’’’გ’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’!„’’’’’’’’’’’’’’’’’’’’A„’’’’’’’’’’’’’’’’’’’’’’lisp ’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’’’#block# ’’’’’’’’’’’’’’’ #pageblock# ’’’’’’’’’’’#head# ’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’’’ #center#% ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#end# ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”„’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ф’+’’’’’’’’’’’’’’’’’’’…’=’’’’’’’’’’’’’’’’’’’A…’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±…’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’†’J’’’’’’’’’’’’’’’’’’’Q†’J’’’’’’’’’’’’’’’’’’’”†’J’’’’’’’’’’’’’’’’’’’ń†’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A‡’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘‡’J’’’’’’’’’’’’’’’’’’’ᇒJ’’’’’’’’’’’’’’’’’’’1ˆ’J’’’’’’’’’’’’’’’’’’’ˆ’J’’’’’’’’’’’’’’’’’’’ш’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‰’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q‰’J’’’’’’’’’’’’’’’’’’’Į‰’J’’’’’’’’’’’’’’’’’’’Š’J’’’’’’’’’’’’’’’’’’’aŠ’J’’’’’’’’’’’’’’’’’’’±Š’J’’’’’’’’’’’’’’’’’’’‹’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q‹’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”‹’J’’’’’’’’’’’’’’’’’’’ń‹’J’’’’’’’’’’’’’’’’’’’AŒ’J’’’’’’’’’’’’’’’’’’’‘Œ’J’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ጒ$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’O’’’’’’’’’’’’’’’’’’’q’N’’’’’’’’’’’’’’’’’’’Į’W’’’’’’’’’’’’’’’’’’’!Ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŽ’R’’’’’’’’’’’’’’’’’’’”Ž’Q’’’’’’’’’’’’’’’’’’’’O’’’’’’’’’’’’’’’’’’’a’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’a’N’’’’’’’’’’’’’’’’’’’±’J’’’’’’’’’’’’’’’’’’’‘’V’’’’’’’’’’’’’’’’’’’a‘’O’’’’’’’’’’’’’’’’’’’Į‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į‘’U’’’’’’’’’’’’’’’’’’’A’’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q’’O’’’’’’’’’’’’’’’’’’’ђ’J’’’’’’’’’’’’’’’’’’’!“’J’’’’’’’’’’’’’’’’’’’q“’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±“’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į“’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’K’’’’’’’’’’’’’’’’’’’a”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’‘”’’’’’’’’’’’’’’’’’’’’±”’’’’’’’’’’’’’’’’’’’’є’0’’’’’’’’’’’’’’’’’’’•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1•’N’’’’’’’’’’’’’’’’’’’•’N’’’’’’’’’’’’’’’’’’’ѕ’Q’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1–’J’’’’’’’’’’’’’’’’’’’–’M’’’’’’’’’’’’’’’’’’’і’M’’’’’’’’’’’’’’’’’’’!—’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q—’O’’’’’’’’’’’’’’’’’’’ї’K’’’’’’’’’’’’’’’’’’’!˜’I’’’’’’’’’’’’’’’’’’’q˜’M’’’’’’’’’’’’’’’’’’’Į˜’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’™’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A™’’’’’’’’’’’’’’’’’’’’a™’’’’’’’’’’’’’’’’’’’’™’’’’’’’’’’’’’’’’’’’’”™’’’’’’’’’’’’’’’’’’’’Į™’ ’’’’’’’’’’’’’’’’’’’ń™’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!š’O’’’’’’’’’’’’’’’’’’’š’S’’’’’’’’’’’’’’’’’’’ᚒ;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!›’#’’’’’’’’’’’’’’’’’’’Q›’#’’’’’’’’’’’’’’’’’’’›’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±›’P’’’’’’’’’’’’’’’’’’’œ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aœ’8’’’’’’’’’’’’’’’’’’’œ’8’’’’’’’’’’’’’’’’’’’Įœ’8’’’’’’’’’’’’’’’’’’’’5’’’’’’’’’’’’’’’’’’’A’5’’’’’’’’’’’’’’’’’’’’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’8’’’’’’’’’’’’’’’’’’’ž’8’’’’’’’’’’’’’’’’’’’Až’8’’’’’’’’’’’ĄĄ’’’’k’’’’’’’’’’’’’’l’’’’’’’’’’’’’’a’’’’’’’’’’’’’’b’’’’’’’’’’’’’’g’’’’’’’’’’’’’’h’’’’’’’’’’’’’’mehrpot’’’’’’’’dt’’’’’’’’’’’’’length’’’’’’’’’pltper’’’’’’’’’unten’’’’’’’’’’oben’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ „‚Pƒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’stabileruestung.const’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĄĄ’’’’k’’’’’’’’’’’’’’l’’’’’’’’’’’’’’a’’’’’’’’’’’’’’b’’’’’’’’’’’’’’g’’’’’’’’’’’’’’h’’’’’’’’’’’’’’mehrpot’’’’’’’’dt’’’’’’’’’’’’’length’’’’’’’’’pltper’’’’’’’’’unten’’’’’’’’’’oben’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ €˜`„€‚‚’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ dyn.forest’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ń’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ĮŽa€ė’’#$!.’’’’’’’’6567RM ’’%5’’’’ dyn.forest’’’’’’’ ^’’’4'’’’’’’’’’’’’’’’’2’’a€note ****4 ’’Œ’!te fore’’’’note ’’’’’’’’’’ńŒ’%te wood st’’a‚’5 sthv ’’±‚’ sthv ’’…’Dsourcen.k=r ’’1ƒ’D vorr ’’q’@ pfle  ’’į‚’?’’’’’’’’’’’2 ’’„’6 tpff’’A„’/ ernt’’!Ž’F ernt’’‹’. tern’’‚’. ’’A‚’’’’’’’’’’’’ ’’”„’te resourc ’’!’D’’’’’’’’’’’’’Į„’/ star ’’a…’" reso&$’’‘‹’5 einn’’х’: prei’’†’, pfau’’A†’ entn’’a†’ cons’’’’note ’’’’’’’’’’†’1te cultiva’’Į†’9 pfzu ’’‡’ pfzu!!’’A‡’ star""’’a‡’4 pfve&%$’’Į’Q 1800$$’’ч’ tpfv5%’’ń‡TE 23.04.1&’’Aˆ’1 pfle/'’’ˆ’ pltp.1,’’QŠ’I000) ))’’ńˆ’ tpfv**’’’’note ’’’’’’’’++’’’’note ’’’’’’’,’’‰’int steh/.-’’‘‰’ dt=1-(.’’Q‰’&ot ’’’’’’’’'-0’’”‰’ leng00’’”Š’ prtp(&1’’Į‰’.’’’’’’’’’’’3’’1‹’" rati33’’q‹’ maxv4’’qŽ’FTE %6’’Œ’’’’’’’’’’’6’’AŒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ž’5’’’’’’’’’’’’’’’’’’’Įž’5’’’’’’’’’’’’’’’’’’’Ÿ’>’’’’’’’’’’’’’’’’’’’AŸ’>’’’’’’’’’’’’’’’’’’’Ÿ’>’’’’’’’’’’’’’’’’’’’ĮŸ’;’’’’’’’’’’’’’’’’’’’ ’;’’’’’’’’’’’’’’’’’’’A ’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’7’’’’’’’’’’’’’’’’’’’Į ’7’’’’’’’’’’’’’’’’’’’”’7’’’’’’’’’’’’’’’’’’’A”’4’’’’’’’’’’’’’’’’’’’”’4’’’’’’’’’’’’’’’’’’’Į”’>’’’’’’’’’’’’’’’’’’’¢’>’’’’’’’’’’’’’’’’’’’A¢’>’’’’’’’’’’’’’’’’’’’¢’;’’’’’’’’’’’’’’’’’’’Į¢’;’’’’’’’’’’’’’’’’’’’£’E’’’’’’’’’’’’’’’’’’’Q£’E’’’’’’’’’’’’’’’’’’’”£’E’’’’’’’’’’’’’’’’’’’ń£’B’’’’’’’’’’’’’’’’’’’A¤’B’’’’’’’’’’’’’’’’’’’‘¤’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page#’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᤒ.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’„’M’’’’’’’’’’’’’’’’’’’a„’N’’’’’’’’’’’’’’’’’’’±„’K’’’’’’’’’’’’’’’’’’’¦’Q’’’’’’’’’’’’’’’’’’’a¦’Q’’’’’’’’’’’’’’’’’’’Į¦’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᦒT’’’’’’’’’’’’’’’’’’’A§’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘§’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ѧ’.’’’’’’’’’’’’’’’’’’’Ø’4’’’’’’’’’’’’’’’’’’’AØ’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ø’S’’’’’’’’’’’’’’’’’’’ᨒQ’’’’’’’’’’’’’’’’’’’A©’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘©’S’’’’’’’’’’’’’’’’’’’ń©’S’’’’’’’’’’’’’’’’’’’QŖ’P’’’’’’’’’’’’’’’’’’’±Ŗ’S’’’’’’’’’’’’’’’’’’’«’O’’’’’’’’’’’’’’’’’’’q«’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”«’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń«’L’’’’’’’’’’’’’’’’’’’A¬’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q¬’P’’’’’’’’’’’’’’’’’’’Ѭ’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’­’N’’’’’’’’’’’’’’’’’’’a­’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±­’&’’’’’’’’’’’’’’’’’’’į­’&’’’’’’’’’’’’’’’’’’’®’.’’’’’’’’’’’’’’’’’’’A®’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’®’T’’’’’’’’’’’’’’’’’’’į®’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Æ’-’’’’’’’’’’’’’’’’’’’1Æ’5’’’’’’’’’’’’’’’’’’’qÆ’-’’’’’’’’’’’’’’’’’’’”Æ’?’’’’’’’’’’’’’’’’’’’ńÆ’.’’’’’’’’’’’’’’’’’’’!°’?’’’’’’’’’’’’’’’’’’’q°’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”°’K’’’’’’’’’’’’’’’’’’’ń°’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1±’O’’’’’’’’’’’’’’’’’’’‘±’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±±’!’’’’’’’’’’’’’’’’’’’į±’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’P’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q²’(’’’’’’’’’’’’’’’’’’’’’9 ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”²’P’’’’’’’’’’’’’’’’’’’³’Q’’’’’’’’’’’’’’’’’’’a³’L’’’’’’’’’’’’’’’’’’’±³’J’’’’’’’’’’’’’’’’’’’“’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1“’S’’’’’’’’’’’’’’’’’’’‘“’L’’’’’’’’’’’’’’’’’’’į“’T’’’’’’’’’’’’’’’’’’’Aµ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qµ’T’’’’’’’’’’’’’’’’’’’±µ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ѵ’#’’’’’’’’’’’’’’’’’’’¶’#’’’’’’’’’’’’’’’’’’’1¶’4’’’’’’’’’’’’’’’’’’’q¶’4’’’’’’’’’’’’’’’’’’’±¶’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń¶’T’’’’’’’’’’’’’’’’’’’Q·’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘·’-’’’’’’’’’’’’’’’’’’’Į·’-’’’’’’’’’’’’’’’’’’’ń·’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ø’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qø’J’’’’’’’’’’’’’’’’’’’”ø’S’’’’’’’’’’’’’’’’’’’¹’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a¹’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”¹’F’’’’’’’’’’’’’’’’’’’ń¹’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ŗ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŗ’’’’’’’’’’’’’’’’’’’’ŗ’’’’’’’’’’’’’’’’’’’’”ŗ’’’’’’’’’’’’’’’’’’’’Įŗ’’’’’’’’’’’’’’’’’’’’įŗ’’’’’’’’’’’’’’’’’’’’»’’’’’’’’’’’’’’’’’’’’!»’’’’’’’’’’’’’’’’’’’’A»’’’’’’’’’’’’’’’’’’’’a»’’’’’’’’’’’’’’’’’’’’»’’’’’’’’’’’’’’’’’’’’”»’’’’’’’’’’’’’’’’’’’’Į»’’’’’’’’’’’’’’’’’’’’į»’’’’’’’’’’’’’’’’’’’’¼’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!¼’.’’’’’’’’’’’’’’’’’’’Q¼’.’’’’’’’’’’’’’’’’’’’¼’.’’’’’’’’’’’’’’’’’’’±¼’+’’’’’’’’’’’’’’’’’’’į¼’+’’’’’’’’’’’’’’’’’’’½’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A½’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’½’:’’’’’’’’’’’’’’’’’’’Į½’A’’’’’’’’’’’’’’’’’’’¾’:’’’’’’’’’’’’’’’’’’’Q¾’1’’’’’’’’’’’’’’’’’’’‘¾’1’’’’’’’’’’’’’’’’’’’Ѿ’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ benutzen. ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’æ’Q’’’’’’’’’’’’’’’’’’’’’dient. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qæ’V’’’’’’’’’’’’’’’’’’’Ńæ’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ą’’’’’’’’’’’’’’’’’’’’1Ą’’’’’’’’’’’’’’’’’’’’QĄ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qĄ’Q’’’’’’’’’’’’’’’’’’’ŃĄ’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AĮ’;’’’’’’’’’’’’’’’’’’’Į’B’’’’’’’’’’’’’’’’’’’ŃĮ’;’’’’’’’’’’’’’’’’’’’Ā’2’’’’’’’’’’’’’’’’’’’QĀ’2’’’’’’’’’’’’’’’’’’’‘Ā’2’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ŃĀ’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ć’+’’’’’’’’’’’’’’’’’’’AĆ’2’’’’’’’’’’’’’’’’’’’Ć’+’’’’’’’’’’’’’’’’’’’±Ć’"’’’’’’’’’’’’’’’’’’’įĆ’"’’’’’’’’’’’’’’’’’’’Ä’"’’’’’’’’’’’’’’’’’’’AÄ’’’’’’’’’’’’’’’’’’’’aÄ’’’’’’’’’’’’’’’’’’’’Ä’’’’’’’’’’’’’’’’’’’’”Ä’’’’’’’’’’’’’’’’’’’’ĮÄ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įÄ’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Å’<’’’’’’’’’’’’’’’’’’’aÅ’C’’’’’’’’’’’’’’’’’’’±Å’<’’’’’’’’’’’’’’’’’’’ńÅ’3’’’’’’’’’’’’’’’’’’’1Ę’3’’’’’’’’’’’’’’’’’’’qĘ’3’’’’’’’’’’’’’’’’’’’±Ę’/’’’’’’’’’’’’’’’’’’’ńĘ’6’’’’’’’’’’’’’’’’’’’1Ē’/’’’’’’’’’’’’’’’’’’’qĒ’&’’’’’’’’’’’’’’’’’’’”Ē’&’’’’’’’’’’’’’’’’’’’ŃĒ’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Č’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Č’’’’’’’’’’’’’’’’’’’’QČ’&’’’’’’’’’’’’’’’’’’’Č’’’’’’’’’’’’’’’’’’’’±Č’’’’’’’’’’’’’’’’’’’’ŃČ’’’’’’’’’’’’’’’’’’’’ńČ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’É’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AÉ’’’’’’’’’’’’’’’’’’’’qÉ’&’’’’’’’’’’’’’’’’’’’”É’’’’’’’’’’’’’’’’’’’’ŃÉ’’’’’’’’’’’’’’’’’’’’ńÉ’’’’’’’’’’’’’’’’’’’’Ź’’’’’’’’’’’’’’’’’’’’AŹ’&’’’’’’’’’’’’’’’’’’’qŹ’’’’’’’’’’’’’’’’’’’’”Ź’’’’’’’’’’’’’’’’’’’’ĮŹ’’’’’’’’’’’’’’’’’’’’įŹ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ė’Q’’’’’’’’’’’’’’’’’’’aĖ’S’’’’’’’’’’’’’’’’’’’ĮĖ’L’’’’’’’’’’’’’’’’’’’Ģ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ģ’’’’’’’’’’’’’’’’’’’’QĢ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ģ’M’’’’’’’’’’’’’’’’’’’ŃĢ’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ķ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AĶ’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ķ’O’’’’’’’’’’’’’’’’’’’įĶ’P’’’’’’’’’’’’’’’’’’’’’ben: ’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AĪ’J’’’’’’’’’’’’’’’’’’’‘Ī’G’’’’’’’’’’’’’’’’’’’įĪ’Q’’’’’’’’’’’’’’’’’’’AĻ’N’’’’’’’’’’’’’’’’’’’‘Ļ’’’’’’’’’’’’’’’’’’’’±Ļ’O’’’’’’’’’’’’’’’’’’’Š’T’’’’’’’’’’’’’’’’’’’qŠ’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Š’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įŠ’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’>note ***********************************************’’’’’’’note forest etriebsmodell note woostehender Holzvorrat .l sthv.k=sthv.j+dt*(zuw.jk-ernte.jk) ’’n sthv=startholz ’’’’’’>resourcen.k=resourcen.j+dt*(einnahmen.jk-pfausgaben.jk-eigenenc vorratsfaktor=0.04 >r zuw.kl=sthv.k*vorratsfaktor*pflegefaktor.k ’’’’’’’’’’a pflegefaktor.k=tabhl(t ternproz=0.1/0.3/0.35. stehenderholzvorrat stehenderholzvorrat’’’’’’’’Nl wood.k=wood.j+dt*(woodgrowth.jk-harvest.jk) ernte.jk) s.jk-ernte.jk) .n wood=startingwood t=startholz ’’’’’’’Nr woodgrowth.kl=wood.k*stocksfactor*cultivationfactor.k aktor.k ’’’’’’’Nc stocksfactor=0.04 growth in % of woodt’’’’’’’’’>a pflegefaktor.k=tabhl(tpffaktor,pfzustand.k,0,1,0.1) ’>c startingwood=15000 Angabe in Festmetern(fm) m*>t tclfactor=0/.1/.2/.3/.4/.5/.7/.95/1/1.05/1.2 ’’’’’’’’>r harvest.kl=wood.k*harvestpercent.k*0.1oz.k*0.1’’’’’’’a ernteproz.k=tabhl(ternote resources ’’’’’’’’’’’’’’Nc startresources=100000 money units n -pfausgaben.jk-eigenentn.jk)’Nl resources.k=resources.j+dt*(income.jk-clexpense.jk-draw.jk))jk)’’’’’’.n resources=startresources k’’’’’’’’’’’>r einnahmen.kl=stehenderholzvorrat.k*ernteproz.k*preis >c price=190 money units per cubic m’’’’.r clexpense.kl=resources.k-constdraw ’r draw.kl=constdraw ’’c constdraw=20000 ’’’’>note cultivationstate (clstate; dimensionless ) ’’’’’’Nl clstate.k=clstate.j+dt*(clbetter.jk-clworse.jk) e.jk) t.jk) ) ) ’’’’’.n clstate=startclstate d d ’’’’’’’’’’’’c startclstate=0.8.8’’’Nr clbetter.kl=clbetterfactor.k*(1-clstate.k) .k) ) entn,80000, ’’’’’’’’180000,100000) ’’’’’’t tclbetter=0.0/0.1 ’’’NNOTE 23.04.1985ktor.k=tabhl(tpfverb,pflegeaufwand.k,80000, ’’’’’’’’’’’>a cultivationcost.k=resources.k-constdraw aw .k ’’Nc pltper=1lfaktor.k=tabhl(tpfvers,pflegeaufwand.k,0,80000, ’’’’’’ 80000) ’’’’’’’’’’’’’’t tclworse=0.2/0 ’’’’’’>print wood,resources,clstate d rcen,pfzustand ’’’’’’’’’’’’’>plot wood=w/resources=r/clstate=c(0,1)))fzustand=p(0,1)’’’’’’’c dt=1 c length=50 ’’’’’’’’’’’>r clworse.kl=clworsefactor.k*clstate.k k ate.k k ’’’’’’Na pfverbfaktor.k=tabhl(tpfverb,pflegeaufwand.k,80000,180000,100000) ’’’Na clworsefactor.k=tabhl(tclworse,cultivationcost.k,0,80000,80000) 0) ’c prtper=1 ’’’’’’’’’’’’>a harvestproz.k=tabhl(ternproz,ratio1.k,0.8,1.2,0.1) ’’.t tharvestpercent=0.1/0.3/0.35/0.4/0.6 >a ratio1.k=wood.k/maxstock at.k/maxvorrat ’’’’’’’’’’’’c maxstock=16000 ’’’’Nr income.kl=wood.k*harvestpercent.k*0.1*price is 0.1*preis ’’’’’’’’’’’’NOTE 23.04.1985>gggggggggggggg gggggggggggggg gggggggggggggg gggggggggggggg ’’>ggggggggg gggggggggggggg gggggggggggggg gggggggggggggg ’.note forest management model ’’’’>NOTE 23.04.1985 english version 22.note wood standing within the forest’’’’’’’’’Nc startingwood=15000 m**3’’’’’’’’’’Na cultivationfactor.k=tabhl(tclfactor,clstate.k,0,1,0.1) ) ’’’’’’’’’’’’^a clbetterfactor.k=tabhl(tclbetter,cultivationcost.k,80000,180000,100000) 0) ’’’’’’’’’’Na harvestpercent.k=tabhl(tharvestpercent,ratio1.k,0.8,1.2,0.1) ’’’’’’’’NNOTE 23.04.1985 english version 22.11.1985’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’dyn.welt/forrester’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ų’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!”a€ė’’~~{{?d’’’’?d?dM’’’’a€’’’’’’’’’’’’’’’’’’’’’’’’’’’’~’’’’’’’’’’’’’’’’’’€’=’’’’’’’’’’’’’’’’’’’Į€’’’’’’’’’’’’’’’’’’’’ဒ!’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’A’!’’’’’’’’’’’’’’’’’’’q’@’’’’’’’’’’’’’’’’’’’Į’!’’’’’’’’’’’’’’’’’’’ń’!’’’’’’’’’’’’’’’’’’’!‚’ ’’’’’’’’’’’’’’’’’’’Q‚’!’’’’’’’’’’’’’’’’’’’‚’%’’’’’’’’’’’’’’’’’’’±‚’!’’’’’’’’’’’’’’’’’’’į‚’ ’’’’’’’’’’’’’’’’’’’ƒ’ ’’’’’’’’’’’’’’’’’’’Aƒ’2’’’’’’’’’’’’’’’’’’’ƒ’(’’’’’’’’’’’’’’’’’’’±ƒ’ ’’’’’’’’’’’’’’’’’’’გ’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’!„’ ’’’’’’’’’’’’’’’’’’’Q„’ ’’’’’’’’’’’’’’’’’’’„’;’’’’’’’’’’’’’’’’’’’Į„’ ’’’’’’’’’’’’’’’’’’’ń„’ ’’’’’’’’’’’’’’’’’’’!…’!’’’’’’’’’’’’’’’’’’’Q…’9’’’’’’’’’’’’’’’’’’’‘…’@’’’’’’’’’’’’’’’’’’’į…’!’’’’’’’’’’’’’’’’’’’†’!’’’’’’’’’’’’’’’’’’’A†’!’’’’’’’’’’’’’’’’’’’q†’!’’’’’’’’’’’’’’’’’’’”†’&’’’’’’’’’’’’’’’’’’’ц’)’’’’’’’’’’’’’’’’’’’‡’(’’’’’’’’’’’’’’’’’’’1‡’%’’’’’’’’’’’’’’’’’’’a‡’&’’’’’’’’’’’’’’’’’’’‘‡’$’’’’’’’’’’’’’’’’’’’Į‡’$’’’’’’’’’’’’’’’’’’’ń‡’ ’’’’’’’’’’’’’’’’’’’!ˆ’"’’’’’’’’’’’’’’’’’’’Qˆ’"’’’’’’’’’’’’’’’’’’’ˆ’ ’’’’’’’’’’’’’’’’’’’±ˆ’$’’’’’’’’’’’’’’’’’’’ሒ$’’’’’’’’’’’’’’’’’’’‰’$’’’’’’’’’’’’’’’’’’’A‰’’’’’’’’’’’’’’’’’’’’a‰’(’’’’’’’’’’’’’’’’’’’‘‰’$’’’’’’’’’’’’’’’’’’’Į‰’A’’’’’’’’’’’’’’’’’’’’’ C fc=1 ’’’’’’’’’’’’’ C fc1=1 ’’’’’’’’’’’’ C fn=1 ’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’1Š’"’’’’’’’’’’’’’’’’’’’aŠ’’’’’’’’’’’’’’’’’’’’Š’&’’’’’’’’’’’’’’’’’’’±Š’%’’’’’’’’’’’’’’’’’’’ኒ#’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’!‹’’’’’’’’’’’’’’’’’’’’A‹’$’’’’’’’’’’’’’’’’’’’’’ N ci=cii ’’’’’’’’’q‹’’’’’’’’’’’’’’’’’’’’‹’9’’’’’’’’’’’’’’’’’’’Į‹’’’’’’’’’’’’’’’’’’’’ы’’’’’’’’’’’’’’’’’’’’ń‹’’’’’’’’’’’’’’’’’’’’Œ’#’’’’’’’’’’’’’’’’’’’AŒ’’’’’’’’’’’’’’’’’’’’aŒ’4’’’’’’’’’’’’’’’’’’’”Œ’’’’’’’’’’’’’’’’’’’’ĮŒ’’’’’’’’’’’’’’’’’’’’ጒ’’’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’1’$’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’(’’’’’’’’’’’’’’’’’’’э’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŃ’P’’’’’’’’’’’’’’’’’’’ĮŃ’T’’’’’’’’’’’’’’’’’’’!Ņ’S’’’’’’’’’’’’’’’’’’’Ņ’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŅ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŅ’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ó’R’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ó’R’’’’’’’’’’’’’’’’’’’Ō’R’’’’’’’’’’’’’’’’’’’qŌ’R’’’’’’’’’’’’’’’’’’’ŃŌ’Q’’’’’’’’’’’’’’’’’’’1Õ’P’’’’’’’’’’’’’’’’’’’‘Õ’#’’’’’’’’’’’’’’’’’’’ĮÕ’S’’’’’’’’’’’’’’’’’’’!Ö’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AÖ’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ö’M’’’’’’’’’’’’’’’’’’’ŃÖ’K’’’’’’’’’’’’’’’’’’’!×’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a×’Q’’’’’’’’’’’’’’’’’’’’’nen. ’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į×’-’’’’’’’’’’’’’’’’’’’ń×’;’’’’’’’’’’’’’’’’’’’1Ų’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŲ’T’’’’’’’’’’’’’’’’’’’±Ų’R’’’’’’’’’’’’’’’’’’’Ł’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŁ’U’’’’’’’’’’’’’’’’’’’ŃŁ’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ś’W’’’’’’’’’’’’’’’’’’’Ś’L’’’’’’’’’’’’’’’’’’’ŃŚ’O’’’’’’’’’’’’’’’’’’’’’ finiert ist. ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ū’U’’’’’’’’’’’’’’’’’’’‘Ū’G’’’’’’’’’’’’’’’’’’’įŪ’P’’’’’’’’’’’’’’’’’’’AÜ’T’’’’’’’’’’’’’’’’’’’”Ü’L’’’’’’’’’’’’’’’’’’’ńÜ’V’’’’’’’’’’’’’’’’’’’QŻ’2’’’’’’’’’’’’’’’’’’’‘Ż’U’’’’’’’’’’’’’’’’’’’ńŻ’X’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŽ’’’’’’’’’’’’’’’’’’’’qŽ’2’’’’’’’’’’’’’’’’’’’±Ž’2’’’’’’’’’’’’’’’’’’’’’ ) ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŽ’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ß’B’’’’’’’’’’’’’’’’’’’ß’6’’’’’’’’’’’’’’’’’’’Įß’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńß’R’’’’’’’’’’’’’’’’’’’Qą’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ą’9’’’’’’’’’’’’’’’’’’’Įą’>’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’!į’@’’’’’’’’’’’’’’’’’’’qį’4’’’’’’’’’’’’’’’’’’’±į’&’’’’’’’’’’’’’’’’’’’įį’+’’’’’’’’’’’’’’’’’’’ā’8’’’’’’’’’’’’’’’’’’’Qā’’’’’’’’’’’’’’’’’’’’qā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ā’L’’’’’’’’’’’’’’’’’’’įā’L’’’’’’’’’’’’’’’’’’’1ć’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qć’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įć’’’’’’’’’’’’’’’’’’’’įć’*’’’’’’’’’’’’’’’’’’’ä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ä’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aä’Q’’’’’’’’’’’’’’’’’’’Įä’P’’’’’’’’’’’’’’’’’’’!å’L’’’’’’’’’’’’’’’’’’’qå’P’’’’’’’’’’’’’’’’’’’Ńå’!’’’’’’’’’’’’’’’’’’’ę’V’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aę’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ę’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įę’Q’’’’’’’’’’’’’’’’’’’!ē’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qē’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ē’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įē’S’’’’’’’’’’’’’’’’’’’!č’O’’’’’’’’’’’’’’’’’’’č’P’’’’’’’’’’’’’’’’’’’įč’N’’’’’’’’’’’’’’’’’’’1é’Q’’’’’’’’’’’’’’’’’’’‘é’A’’’’’’’’’’’’’’’’’’’įé’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ź’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aź’Q’’’’’’’’’’’’’’’’’’’Įź’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įź’-’’’’’’’’’’’’’’’’’’’ė’P’’’’’’’’’’’’’’’’’’’qė’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ė’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’wŁhrend ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńė’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ist. ’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ģ’O’’’’’’’’’’’’’’’’’’’qģ’W’’’’’’’’’’’’’’’’’’’Ńģ’T’’’’’’’’’’’’’’’’’’’’’ vorkommt. ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ķ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aķ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ķ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ķ’N’’’’’’’’’’’’’’’’’’’ī’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aī’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aī’E’’’’’’’’’’’’’’’’’’’±ī’R’’’’’’’’’’’’’’’’’’’ļ’V’’’’’’’’’’’’’’’’’’’qļ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ļ’T’’’’’’’’’’’’’’’’’’’ńļ’K’’’’’’’’’’’’’’’’’’’Aš’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’š’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įš’%’’’’’’’’’’’’’’’’’’’ńš’1’’’’’’’’’’’’’’’’’’’1ń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qń’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ń’-’’’’’’’’’’’’’’’’’’’Įń’9’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ņ’T’’’’’’’’’’’’’’’’’’’ņ’R’’’’’’’’’’’’’’’’’’’’’haben. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įņ’X’’’’’’’’’’’’’’’’’’’Aó’T’’’’’’’’’’’’’’’’’’’”ó’Z’’’’’’’’’’’’’’’’’’’ō’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ō’Q’’’’’’’’’’’’’’’’’’’ō’T’’’’’’’’’’’’’’’’’’’įō’R’’’’’’’’’’’’’’’’’’’’’a)". ’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aõ’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘õ’2’’’’’’’’’’’’’’’’’’’Ńõ’>’’’’’’’’’’’’’’’’’’’ö’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aö’S’’’’’’’’’’’’’’’’’’’”ö’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įö’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’÷’#’’’’’’’’’’’’’’’’’’’1÷’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a÷’S’’’’’’’’’’’’’’’’’’’Į÷’N’’’’’’’’’’’’’’’’’’’ų’T’’’’’’’’’’’’’’’’’’’qų’V’’’’’’’’’’’’’’’’’’’Ńų’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ł’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ał’N’’’’’’’’’’’’’’’’’’’‘ł’Q’’’’’’’’’’’’’’’’’’’’’wendet. ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńł’L’’’’’’’’’’’’’’’’’’’Aś’U’’’’’’’’’’’’’’’’’’’”ś’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įś’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ū’Q’’’’’’’’’’’’’’’’’’’aū’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ū’R’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ (label equal ’’’’’’’’1ü’’’’’’’’’’’’’’’’’’’’’’ (cond ’’’’’’’’’’’Qü’’’’’’’’’’’’’’’’’’’’qü’&’’’’’’’’’’’’’’’’’’’”ü’’’’’’’’’’’’’’’’’’’’Įü’’’’’’’’’’’’’’’’’’’’’’ ) ’’’’’’’’’’’’’įü’<’’’’’’’’’’’’’’’’’’’’’ (T F) ’’’’’’’’’’’ ) ’’’’’’’’’’’’’’’’’ ) ’’’’’’’’’’’’’’’’’’’) ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ż’P’’’’’’’’’’’’’’’’’’’ż’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įż’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńż’(’’’’’’’’’’’’’’’’’’’!ž’+’’’’’’’’’’’’’’’’’’’Qž’:’’’’’’’’’’’’’’’’’’’‘ž’:’’’’’’’’’’’’’’’’’’’Ńž’’’’’’’’’’’’’’’’’’’’’’ ) ’’’’’’’’’’’ ) ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’Ž’<’’’’’’’’’’’’’’’’’’’’’ C poln=1 ’’’’’’’’’’’ C poln1=1 ’’’’’’’’AŽ’’’’’’’’’’’’’’’’’’’’QŽ’'’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’”Ž’’’’’’’’’’’’’’’’’’’’ĮŽ’*’’’’’’’’’’’’’’’’’’’ńŽ’"’’’’’’’’’’’’’’’’’’’!’8’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’”’&’’’’’’’’’’’’’’’’’’’я’’’’’’’’’’’’’’’’’’’’ń’0’’’’’’’’’’’’’’’’’’’’’ C qls=1 ’’’’’’’’’’1’#’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’‘’#’’’’’’’’’’’’’’’’’’’Į’0’’’’’’’’’’’’’’’’’’’‘’"’’’’’’’’’’’’’’’’’’’1‘’’’’’’’’’’’’’’’’’’’’Q‘’&’’’’’’’’’’’’’’’’’’’‘’%’’’’’’’’’’’’’’’’’’’±‘’3’’’’’’’’’’’’’’’’’’’ń‘’&’’’’’’’’’’’’’’’’’’’!’’2’’’’’’’’’’’’’’’’’’’a’’/’’’’’’’’’’’’’’’’’’’”’’,’’’’’’’’’’’’’’’’’’’ђ’’’’’’’’’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’NOTE ’’’’’’’’’’’’’’’’’’ C dt=.1 ’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’1“’’’’’’’’’’’’’’’’’’’’Q“’’’’’’’’’’’’’’’’’’’’a“’’’’’’’’’’’’’’’’’’’’q“’@’’’’’’’’’’’’’’’’’’’Į“’4’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’dyn.welt/forrester’’’’’’’’’’’’>note weltmodell in der form fuer eumel dynamo 17.7.1987’* WORLD DYNAMICS W5 ’’’’’’’.L p.k=p.j+(dt)*(br.jk-dr.jk) ’’’’’’’’’’’’’.N p=pi ’’’’’’’’’’’’’.C pi=1.65e9 ’’’’’’’’’’’’’NR br.kl=(p.k)*(clip(brn,brn1,swt1,time.k))*(brfm.k)*(brmm.k) ’’’’’’’’’’’’’’.X *(brcm.k)*(brpm.k) ’’’’’’’’’’’’’.C brn=.04 ’’’’’’’’’’’’’.C brn1=.04 ’’’’’’’’’’’’’’.C swt1=1970 ’’’’’’’’’’’’’.A brmm.k=tabhl(brmmt,msl.k,0,5,1) ’’’’’’’’’.T brmmt=1.2/1/.85/.75/.77/.7 ’’’’’’’’’’’’’.A msl.k=ecir.k/(ecirn) ’’’’’’’’’’’’’’.C ecirn=1 ’’’’’’’’’’’’’’>A ecir.k=(cir.k)*(1-ciaf.k)*(nrem.k)/(1-ciafn) ’’’’’’’’’’’’.A nrem.k=table(nremt,nrfr.k,0,1,.25) ’’’’’’.T nremt=0/.15/.5/.85/1 ’’’’’’’’’’’’’’A nrfr.k=nr.k/nri L nr.k=nr.j+(dt)*(-nrur.jk).N nr=nri ’’’’’’’’’’’’’’.C nri=900e9 ’’’’’’’’’’’’’’>R nrur.kl=(p.k)*(clip(nrun,nrun1,swt2,time.k))*(nrmm.k) ’’’.C nrun=1 ’’’’’’’’’’’’’’.C nrun1=1 ’’’’’’’’’’’’’’.C swt2=1970 ’’’’’’’’’’’’’>NOTE equation 42 connects here from eq. 4 to eq.9 ’’’’’NR dr.kl=(p.k)*(clip(drn,drn1,swt3,time.k))*(drmm.k)*(drpm.k) ’’’’’’’’’’’’’’.X *(drfm.k)*(drcm.k) ’’’’’’’’’’’’’.C drn=.028 ’’’’’’’’’’’’’.C drn1=.028 ’’’’’’’’’’’’’.C swt3=1970 ’’’’’’’’’’’’’.A drmm.k=tabhl(drmmt,msl.k,0,5,.5) ’’’’’’’’.T drmmt=3/1.8/.8/.7/.6/.53/.5/.5/.5/.5’’’’’.A drpm.k=table(drpmt,polr.k,0,60,10) ’’’’’’.T drpmt=.92/1.3/2/3.2/4.8/6.8/9.2 ’’’’’’’’’.A drfm.k=tabhl(drfmt,fr.k,0,2,.25) ’’’’’’’’.T drfmt=30/3/2/1.4/1/.7/.6/.5/.5 ’’’’’’’’’’.A drcm.k=table(drcmt,cr.k,0,5,1) ’’’’’’’’’’.T drcmt=.9/1/1.2/1.5/1.9/3 ’’’’’’’’’’’’’’.A cr.k=(p.k)/(la*pdn) ’’’’’’’’’’’’.C la=135e6 ’’’’’’’’’’’’.C pdn=26.5 ’’’’’’’’’’’’’’.A brcm.k=table(brcmt,cr.k,0,5,1) ’’’’’’’’’’.T brcmt=1.05/1/.9/.7/.6/.55 <’’’’’’’’’’.A brfm.k=tabhl(brfmt,fr.k,0,4,1) ’’’’’’’’’’T brfmt=0/1/1.6/1.9/2 ’’’’’.A brpm.k=table(brpmt,polr.k,0,60,10) ’’’’’’.T brpmt=1.02/.9/.7/.4/.25/.15/.1 ’’’’’’’’’’NA fr.k=(fpci.k)*(fcm.k)*(fpm.k)*(clip(fc,fc1,swt7,time.k))/fn ’’’’’’’’’’’’’C swt7=1970 ’’’’’’’’’’’’’’’.A fcm.k=table(fcmt,cr.k,0,5,1) ’’’’’’’’’’’’T fcmt=2.4/.6/.4/.3/.2 ’’’’.A fpci.k=tabhl(fpcit,cira.k,0,6,1) ’’’’’’’’.T fpcit=.5/1/1.4/1.7/1.9/2.05/2.2 ’’’’’’’’’.A cira.k=(cir.k)*(ciaf.k)/ciafn ’’’’’’’’’’’C ciafn=.3 A cir.k=(ci.k/p.k) ’’’’’’’’.L ci.k=ci.j+(dt)*(cig.jk-cid.jk) ’’’’’’’’’’C cii=.4e9 >R cig.kl=(p.k)*(cim.k)*(clip(cign,cign1,swt4,time.k)) ’’’’’C cign=.05 C cign1=.05 ’’’’’’’’’’’’’’’C swt4=1970 ’’’’’’’’’’’’’’’.A cim.k=tabhl(cimt,msl.k,0,5,1) ’’’’’’’’’’’T cimt=.1/1/1.8/2.4/2.8/3 ’>R cid.kl=(ci.k)*(clip(cidn,cidn1,swt5,time.k)) ’’’’’’’’’’C cidn=.025 ’’’’’’’’’’’’’’’C cidn1=.025 ’’’’’’’’’’’’’’C swt5=1970 ’’’’’’’’’’’’’’’.A fpm.k=table(fpmt,polr.k,0,60,10)’’’’’’’’’.T fpmt=1.02/.9/.65/.35/.2/.1/.05 ’’’’’’’’’’A polr.k=pol.k/pols ’’’’’’’C pols=3.6e9 ’’’’’’’’’’’’’’.L pol.k=pol.j+(dt)*(polg.jk-pola.jk) ’’’’’’N pol=poli C poli=.2e9 ’’’’’’’’’’’’’’’>R polg.kl=(p.k)*(clip(poln,poln1,swt6,time.k))*(polcm.k) ’’C swt6=1970.A polcm.k=tabhl(polcmt,cir.k,0,5,1) ’’’’’’’T polcmt=.05/1/3/5.4/7.4/8’R pola.kl=pol.k/polat.k ’’’.A polat.k=table(polatt,polr.k,0,60,10) ’’’’.T polatt=.6/2.5/8/11.5/15.5/20 ’’’’’’’’’’’’>L ciaf.k=ciaf.j+(dt/ciaft)*((cfifr.j*ciqr.j)-ciaf.j) ’’’’’’N ciaf=ciaf1 ’’’’’’’’’’’’’’C ciaf1=.2 C ciaft=15 .A cfifr.k=tabhl(cfifrt,fr.k,0,2,.5)’’’’’’’’T cfifrt=1/.6/.3/.15/.1 ’’>A ql.k=(qls)*(qlm.k)*(qlc.k)*(qlf.k)*(qlp.k) ’’’’’’’’’’’’’’.A qlm.k=tabhl(qlmt,msl.k,0,5,1) ’’’’’’’’’’’.T qlmt=.2/1/1.7/2.3/2.7/2.9 ’’’’’’’’’’’’’’’.A qlc.k=table(qlct,cr.k,0,5,.5) ’’’’’’’’’’’>T qlct=2/1.3/1/.75/.55/.45/.38/.3/.25/.22/.2 ’’’’’’’’’’’’’’.A qlf.k=tabhl(qlft,fr.k,0,4,1) ’’’’’’’’’’’’T qlft=0/1/1.8/2.4/2.7’’’’’.A qlp.k=table(qlpt,polr.k,0,60,10) ’’’’’’’’.T qlpt=1.04/.85/.6/.3/.15/.05/.02 ’’’’’’’’’>NOTE equation 42 located between eq. 4 and 9. ’’’’’’’’’’’.A nrmm.k=tabhl(nrmmt,msl.k,0,10,1) ’’’’’’’’>T nrmmt=0/1/1.8/2.4/2.9/3.3/3.6/3.8/3.9/3.95/4 ’’’’’’’’’’’’>NOTE input from eqn. 38 and 40 to eqn. 35 ’’’’’’’’’’’’’’’.A ciqr.k=tabhl(ciqrt,qlm.k/qlf.k,0,2,.5) ’’T ciqrt=.7/.8/1/1.5/2 ’’’’’NOTE control cards ’’’’’’’’’’’C length=2100 ’’’’’’’’’’’’’N time=1900 ’’’’’’’’’’’’’’’C prtper=4 C pltper=4 NPLOT p=p(0,8e9)/polr=2(0,40)/ci=c(0,20e9)/ql=q(0,2)/nr=n(0,1e12)’’’’’’’’’’’’’’>note PLOT fr=f,msl=m,qlc=4,qlp=5(0,2)/ciaf=a(.2,.6) ’’’’’’’’’’PRINT p,nr,ci,pol,ciaf ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ń’’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’6’’’’’’’’’’’’’’’’’’’’’ ) ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’P’’’’’’’’’’’’’’’’’’’’’ kommt. ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’-’’’’’’’’’’’’’’’’’’’‚’.’’’’’’’’’’’’’’’’’’’’’ ) ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’&’’’’’’’’’’’’’’’’’’’ā’T’’’’’’’’’’’’’’’’’’’B’W’’’’’’’’’’’’’’’’’’’’’ hŁngt. ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’*’’’’’’’’’’’’’’’’’’’Ņ’(’’’’’’’’’’’’’’’’’’’’7’’’’’’’’’’’’’’’’’’’B’G’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’ ) ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Beispiel: ’’’’’’’’’’’Ņ’3’’’’’’’’’’’’’’’’’’’’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’P’’’’’’’’’’’’’’’’’’’²’N’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"’)’’’’’’’’’’’’’’’’’’’R’S’’’’’’’’’’’’’’’’’’’²’U’’’’’’’’’’’’’’’’’’’’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’#’’’’’’’’’’’’’’’’’’’‚’=’’’’’’’’’’’’’’’’’’’Ā’4’’’’’’’’’’’’’’’’’’’’’ ) ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Beispiel: ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’ ’’’’’’’’’’’’’’’’’’’R’!’’’’’’’’’’’’’’’’’’’‚’ ’’’’’’’’’’’’’’’’’’’²’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’T’’’’’’’’’’’’’’’’’’’r’M’’’’’’’’’’’’’’’’’’’Ā’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’" ’4’’’’’’’’’’’’’’’’’’’b ’2’’’’’’’’’’’’’’’’’’’¢ ’2’’’’’’’’’’’’’’’’’’’ā ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ) ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Beispiel: ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’" ’’’’’’’’’’’’’’’’’’’’B ’9’’’’’’’’’’’’’’’’’’’’’ ) ’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚ ’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā ’R’’’’’’’’’’’’’’’’’’’" ’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Beispiel: ’’’’’’’’’’’R ’’’’’’’’’’’’’’’’’’’’r ’5’’’’’’’’’’’’’’’’’’’² ’ ’’’’’’’’’’’’’’’’’’’ā ’’’’’’’’’’’’’’’’’’’’’’= ’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’" ’4’’’’’’’’’’’’’’’’’’’b ’1’’’’’’’’’’’’’’’’’’’¢ ’’’’’’’’’’’’’’’’’’’’Ā ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā ’O’’’’’’’’’’’’’’’’’’’B ’H’’’’’’’’’’’’’’’’’’’’ ’U’’’’’’’’’’’’’’’’’’’ņ ’N’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’= ’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’%’’’’’’’’’’’’’’’’’’’²’+’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’= ’’’’’’’’’’’’’’’’’’’’+’’’’’’’’’’’’’’’’’’’’’= ’’’’’’’’’’’’’’’’’’’2’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’Q’’’’’’’’’’’’’’’’’’’ā’Q’’’’’’’’’’’’’’’’’’’B’O’’’’’’’’’’’’’’’’’’’¢’T’’’’’’’’’’’’’’’’’’’’P’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’sowie : ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’:’’’’’’’’’’’’’’’’’’’2’6’’’’’’’’’’’’’’’’’’’’’ ) ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’R’’’’’’’’’’’’’’’’’’’Ņ’V’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’R’’’’’’’’’’’’’’’’’’’’’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’P’’’’’’’’’’’’’’’’’’’2’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’M’’’’’’’’’’’’’’’’’’’Ā’V’’’’’’’’’’’’’’’’’’’"’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’0’’’’’’’’’’’’’’’’’’’²’6’’’’’’’’’’’’’’’’’’’ņ’0’’’’’’’’’’’’’’’’’’’2’'’’’’’’’’’’’’’’’’’’’b’'’’’’’’’’’’’’’’’’’’’’’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’N’’’’’’’’’’’’’’’’’’’’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’(cond ’’’’’’’’’’’’’’’’’ ((atom fn) ’’’’’’’’r’=’’’’’’’’’’’’’’’’’’’²’=’’’’’’’’’’’’’’’’’’’ņ’;’’’’’’’’’’’’’’’’’’’2’B’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’=’’’’’’’’’’’’’’’’’’’ā’;’’’’’’’’’’’’’’’’’’’"’B’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’Ā’2’’’’’’’’’’’’’’’’’’’’D’’’’’’’’’’’’’’’’’’’’’ ) ’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’$’’’’’’’’’’’’’’’’’’’¢’/’’’’’’’’’’’’’’’’’’’ā’6’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’!’’’’’’’’’’’’’’’’’’’’’ ) ) ’’’’’’’’’’’’’’r’7’’’’’’’’’’’’’’’’’’’²’:’’’’’’’’’’’’’’’’’’’ņ’7’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’) ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’N’’’’’’’’’’’’’’’’’’’¢’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’P’’’’’’’’’’’’’’’’’’’B’Q’’’’’’’’’’’’’’’’’’’¢’O’’’’’’’’’’’’’’’’’’’’T’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’N’’’’’’’’’’’’’’’’’’’²’T’’’’’’’’’’’’’’’’’’’’’ den soll". ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’N’’’’’’’’’’’’’’’’’’’b’Q’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’!’’’’’’’’’’’’’’’’’’’ ’1’’’’’’’’’’’’’’’’’’’R ’8’’’’’’’’’’’’’’’’’’’’’ ) ’’’’’’’’’’ ’-’’’’’’’’’’’’’’’’’’’’’ ) ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā ’S’’’’’’’’’’’’’’’’’’’"!’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b!’P’’’’’’’’’’’’’’’’’’’Ā!’T’’’’’’’’’’’’’’’’’’’""’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b"’M’’’’’’’’’’’’’’’’’’’²"’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ"’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’#’0’’’’’’’’’’’’’’’’’’’B#’7’’’’’’’’’’’’’’’’’’’‚#’0’’’’’’’’’’’’’’’’’’’Ā#’'’’’’’’’’’’’’’’’’’’’ņ#’'’’’’’’’’’’’’’’’’’’’"$’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R$’S’’’’’’’’’’’’’’’’’’’²$’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ$’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"%’0’’’’’’’’’’’’’’’’’’’b%’7’’’’’’’’’’’’’’’’’’’¢%’0’’’’’’’’’’’’’’’’’’’ā%’'’’’’’’’’’’’’’’’’’’’&’'’’’’’’’’’’’’’’’’’’’B&’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r&’R’’’’’’’’’’’’’’’’’’’Ņ&’P’’’’’’’’’’’’’’’’’’’2'’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r'’R’’’’’’’’’’’’’’’’’’’Ņ'’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"(’L’’’’’’’’’’’’’’’’’’’r(’R’’’’’’’’’’’’’’’’’’’Ņ(’P’’’’’’’’’’’’’’’’’’’2)’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r)’R’’’’’’’’’’’’’’’’’’’Ņ)’S’’’’’’’’’’’’’’’’’’’2*’L’’’’’’’’’’’’’’’’’’’‚*’U’’’’’’’’’’’’’’’’’’’ā*’N’’’’’’’’’’’’’’’’’’’2+’Q’’’’’’’’’’’’’’’’’’’’+’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā+’P’’’’’’’’’’’’’’’’’’’",’O’’’’’’’’’’’’’’’’’’’‚,’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢,’T’’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2-’Q’’’’’’’’’’’’’’’’’’’’-’F’’’’’’’’’’’’’’’’’’’ā-’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’.’M’’’’’’’’’’’’’’’’’’’R.’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚.’N’’’’’’’’’’’’’’’’’’’Ņ.’P’’’’’’’’’’’’’’’’’’’2/’’’’’’’’’’’’’’’’’’’’R/’N’’’’’’’’’’’’’’’’’’’¢/’O’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’0’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B0’J’’’’’’’’’’’’’’’’’’’’0’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā0’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’@@’’’’ dyn.print’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńƒa€ė’’-*-°’’’’-°-°.M’ž’’’’’’ dyn.printer’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’a€’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ BOOL VAR prt;’’’’’’’’±€’’’’’’’’’’’’’’’’’’’’р’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń€’&’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’!’’’’’’’’’’’’’’’’’’’с’’’’’’’’’’’’’’’’’’’’’’ THEN do lf’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’1‚’’’’’’’’’’’’’’’’’’’’’’ PER.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ do lf :’’’’’’’’’’’’’’’ print line;’’’’’’’’Q‚’’’’’’’’’’’’’’’’’’’’a‚’(’’’’’’’’’’’’’’’’’’’’’ THEN vdt;’’’’’’’’’‘‚’’’’’’’’’’’’’’’’’’’’±‚’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’т’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń‚’’’’’’’’’’’’’’’’’’’’ƒ’(’’’’’’’’’’’’’’’’’’’Aƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aƒ’’’’’’’’’’’’’’’’’’’’’’ IF prt’’’’’’’’’’’’’’ƒ’4’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’Įƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’у’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NPACKET dynamo printer DEFINES initialize print, new line, print :’’’’’’’’’’’’’TEXT VAR headline;’’’’’’’’’’’’REAL VAR prtper, nextprint;’’’.PROC initialize print (TEXT CONST h) :’’’’’’’’ headline := h;’’’’’’’’’’’’’’’ prtper := get prtper;’’’’’’’’ nextprint := 0.0’’’’’’’’’’’’’END PROC initialize print;’’’’.PROC new line (REAL CONST time) :’’’’’’’’’’’’’ IF time >= nextprint’’’’’’’’’ ELSE prt := FALSE’’’’’’’’’’’ WHILE time >= nextprint REP’’ nextprint INCR prtper’’’’’’’ prt := TRUE;. IF pagefeed necessary OR NOT was print’’’’’’ sys page;’’’’’’’’’’’’’ print headline’’’’’’’’ print (time).’’’’’’’’’’’’’’’ print headline :’’’’’’’’’’’’’. println ("TIME " + headline).’’’’’’END PROC new line;’’’’’’’’’’’’PROC print (REAL CONST r) :’’’> THEN print output (text (text (round (r, 5)), 13))’’’’’’’’’’END PROC printEND PACKET dynamo printer’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ dyn.plot+’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Lš’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ńa€ė’’ęŲ! ’’’’! ! ÜM’ž’’’’’’ dyn.plot+’’’’’’’’’’’’’’’’’’’’ŲĆę’’’’’’’’’’’’’’’’’’a€’#’’’’’’’’’’’’’’’’’’’‘€’"’’’’’’’’’’’’’’’’’’’Į€’!’’’’’’’’’’’’’’’’’’’ń€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’#’’’’’’’’’’’’’’’’’’’a’'’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’Į’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’1‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q‚’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”‚’3’’’’’’’’’’’’’’’’’’’į‚’3’’’’’’’’’’’’’’’’’’’!ƒ’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įƒ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńƒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1„’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a„’"’’’’’’’’’’’’’’’’’’’‘„’"’’’’’’’’’’’’’’’’’’’Į„’"’’’’’’’’’’’’’’’’’’’ń„’"’’’’’’’’’’’’’’’’’’’!…’"’’’’’’’’’’’’’’’’’’’Q…’&’’’’’’’’’’’’’’’’’’’…’&’’’’’’’’’’’’’’’’’’’±…’&’’’’’’’’’’’’’’’’’’’į…’-’’’’’’’’’’’’’’’’’’’†’*’’’’’’’’’’’’’’’’’’’A†’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į†’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń†’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‡’’’’’’’’’’’’’’’’’’’’A‡’’’’’’’’’’’’’’’’’’’’a‡’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±‡’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᇒ5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ˆ’’’’’’’’’’’’’’’’’’’’1ˆ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ˆ’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ሒ’’’’’’’’’’’’’’’’’’’ńˆ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‰’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A‰’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a‰’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”‰’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į‰’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ቒ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Š’.’’’’’’’’’’’’’’’’’’’’’’’’’’’ā0’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’21’M’’’’’’’’’’’’’’’’’’’‚1’Q’’’’’’’’’’’’’’’’’’’ā1’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’0’’’’’’’’’’’’’’’’’’’B2’=’’’’’’’’’’’’’’’’’’’‚2’A’’’’’’’’’’’’’’’’’’’Ņ2’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ2’#’’’’’’’’’’’’’’’’’’’"3’?’’’’’’’’’’’’’’’’’’’r3’=’’’’’’’’’’’’’’’’’’’²3’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ3’,’’’’’’’’’’’’’’’’’’’4’2’’’’’’’’’’’’’’’’’’’B4’=’’’’’’’’’’’’’’’’’’’‚4’.’’’’’’’’’’’’’’’’’’’²4’’’’’’’’’’’’’’’’’’’’ā4’;’’’’’’’’’’’’’’’’’’’"5’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B5’Q’’’’’’’’’’’’’’’’’’’¢5’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ (DEFINE ’’’’’’’’’’’Ā5’%’’’’’’’’’’’’’’’’’’’ņ5’'’’’’’’’’’’’’’’’’’’’"6’4’’’’’’’’’’’’’’’’’’’b6’8’’’’’’’’’’’’’’’’’’’¢6’’’’’’’’’’’’’’’’’’’’Ā6’’’’’’’’’’’’’’’’’’’’ā6’#’’’’’’’’’’’’’’’’’’’7’?’’’’’’’’’’’’’’’’’’’b7’=’’’’’’’’’’’’’’’’’’’¢7’’’’’’’’’’’’’’’’’’’’Ā7’"’’’’’’’’’’’’’’’’’’’ņ7’+’’’’’’’’’’’’’’’’’’’"8’1’’’’’’’’’’’’’’’’’’’b8’@’’’’’’’’’’’’’’’’’’’²8’%’’’’’’’’’’’’’’’’’’’ā8’’’’’’’’’’’’’’’’’’’’9’:’’’’’’’’’’’’’’’’’’’B9’’’’’’’’’’’’’’’’’’’’’’ ) ’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b9’Q’’’’’’’’’’’’’’’’’’’Ā9’O’’’’’’’’’’’’’’’’’’’’’ LISP-Heap. ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’":’S’’’’’’’’’’’’’’’’’’’‚:’N’’’’’’’’’’’’’’’’’’’Ņ:’M’’’’’’’’’’’’’’’’’’’";’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R;’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r;’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²;’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā;’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Die Funktion ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’<’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"<’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B<’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚<’O’’’’’’’’’’’’’’’’’’’ā<’R’’’’’’’’’’’’’’’’’’’B=’R’’’’’’’’’’’’’’’’’’’¢=’J’’’’’’’’’’’’’’’’’’’ņ=’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2>’U’’’’’’’’’’’’’’’’’’’’>’M’’’’’’’’’’’’’’’’’’’ā>’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’?’N’’’’’’’’’’’’’’’’’’’b?’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚?’O’’’’’’’’’’’’’’’’’’’ā?’S’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B@’M’’’’’’’’’’’’’’’’’’’’@’P’’’’’’’’’’’’’’’’’’’ņ@’R’’’’’’’’’’’’’’’’’’’RA’"’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚A’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²A’P’’’’’’’’’’’’’’’’’’’B’R’’’’’’’’’’’’’’’’’’’rB’R’’’’’’’’’’’’’’’’’’’ŅB’Q’’’’’’’’’’’’’’’’’’’2C’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bC’Q’’’’’’’’’’’’’’’’’’’ĀC’Q’’’’’’’’’’’’’’’’’’’"D’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rD’T’’’’’’’’’’’’’’’’’’’ŅD’U’’’’’’’’’’’’’’’’’’’2E’R’’’’’’’’’’’’’’’’’’’’E’O’’’’’’’’’’’’’’’’’’’’’ ableiten. ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņE’S’’’’’’’’’’’’’’’’’’’RF’T’’’’’’’’’’’’’’’’’’’²F’S’’’’’’’’’’’’’’’’’’’G’O’’’’’’’’’’’’’’’’’’’’’ eingefŪgt. ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rG’J’’’’’’’’’’’’’’’’’’’ĀG’P’’’’’’’’’’’’’’’’’’’"H’N’’’’’’’’’’’’’’’’’’’rH’Q’’’’’’’’’’’’’’’’’’’ŅH’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page#’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"I’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RI’N’’’’’’’’’’’’’’’’’’’¢I’=’’’’’’’’’’’’’’’’’’’āI’T’’’’’’’’’’’’’’’’’’’BJ’S’’’’’’’’’’’’’’’’’’’¢J’-’’’’’’’’’’’’’’’’’’’ŅJ’Q’’’’’’’’’’’’’’’’’’’2K’T’’’’’’’’’’’’’’’’’’’’K’X’’’’’’’’’’’’’’’’’’’ņK’’’’’’’’’’’’’’’’’’’’L’N’’’’’’’’’’’’’’’’’’’bL’Q’’’’’’’’’’’’’’’’’’’ĀL’O’’’’’’’’’’’’’’’’’’’’’ Eigenschaft. ’’’’’’’’"M’R’’’’’’’’’’’’’’’’’’’‚M’’’’’’’’’’’’’’’’’’’’¢M’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŅM’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņM’M’’’’’’’’’’’’’’’’’’’BN’L’’’’’’’’’’’’’’’’’’’’N’U’’’’’’’’’’’’’’’’’’’ņN’U’’’’’’’’’’’’’’’’’’’RO’Q’’’’’’’’’’’’’’’’’’’’’ Klasse). ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page#’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²O’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āO’U’’’’’’’’’’’’’’’’’’’BP’R’’’’’’’’’’’’’’’’’’’¢P’H’’’’’’’’’’’’’’’’’’’ņP’V’’’’’’’’’’’’’’’’’’’RQ’T’’’’’’’’’’’’’’’’’’’²Q’Q’’’’’’’’’’’’’’’’’’’R’O’’’’’’’’’’’’’’’’’’’rR’*’’’’’’’’’’’’’’’’’’’¢R’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āR’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’S’R’’’’’’’’’’’’’’’’’’’bS’Q’’’’’’’’’’’’’’’’’’’ĀS’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āS’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’T’O’’’’’’’’’’’’’’’’’’’rT’Q’’’’’’’’’’’’’’’’’’’ŅT’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"U’S’’’’’’’’’’’’’’’’’’’‚U’L’’’’’’’’’’’’’’’’’’’ŅU’M’’’’’’’’’’’’’’’’’’’"V’O’’’’’’’’’’’’’’’’’’’‚V’O’’’’’’’’’’’’’’’’’’’āV’N’’’’’’’’’’’’’’’’’’’2W’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bW’Q’’’’’’’’’’’’’’’’’’’ĀW’K’’’’’’’’’’’’’’’’’’’X’R’’’’’’’’’’’’’’’’’’’rX’M’’’’’’’’’’’’’’’’’’’ĀX’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Y’R’’’’’’’’’’’’’’’’’’’bY’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page#’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Y’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀY’N’’’’’’’’’’’’’’’’’’’Z’Q’’’’’’’’’’’’’’’’’’’rZ’L’’’’’’’’’’’’’’’’’’’ĀZ’R’’’’’’’’’’’’’’’’’’’"[’N’’’’’’’’’’’’’’’’’’’r[’K’’’’’’’’’’’’’’’’’’’Ā[’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’\’L’’’’’’’’’’’’’’’’’’’’’ tion lautet ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b\’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’\’$’’’’’’’’’’’’’’’’’’’Ā\’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ\’T’’’’’’’’’’’’’’’’’’’R]’L’’’’’’’’’’’’’’’’’’’¢]’O’’’’’’’’’’’’’’’’’’’^’N’’’’’’’’’’’’’’’’’’’R^’Q’’’’’’’’’’’’’’’’’’’²^’T’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’_’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B_’L’’’’’’’’’’’’’’’’’’’’_’Q’’’’’’’’’’’’’’’’’’’ņ_’N’’’’’’’’’’’’’’’’’’’’’worden. ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B`’5’’’’’’’’’’’’’’’’’’’‚`’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²`’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā`’R’’’’’’’’’’’’’’’’’’’Ba’P’’’’’’’’’’’’’’’’’’’¢a’U’’’’’’’’’’’’’’’’’’’b’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Bb’’’’’’’’’’’’’’’’’’’’bb’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚b’R’’’’’’’’’’’’’’’’’’’āb’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’c’’’’’’’’’’’’’’’’’’’’Bc’’’’’’’’’’’’’’’’’’’’bc’?’’’’’’’’’’’’’’’’’’’’’ ) ) ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²c’M’’’’’’’’’’’’’’’’’’’d’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2d’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rd’P’’’’’’’’’’’’’’’’’’’Ņd’L’’’’’’’’’’’’’’’’’’’"e’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’be’U’’’’’’’’’’’’’’’’’’’Āe’=’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŠ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Š’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ъ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŠ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‹’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A‹’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘‹’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į‹’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń‹’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŒ’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’”Œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ጒ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’/’’’’’’’’’’’’’’’’’’’į’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ž’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŽ’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ color (f); ’’’’’’’’±Ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ю’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŽ’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ color (f); ’’’’’’’’!’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’я’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ѐ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ color (f); ’’’’’’’’A‘’’’’’’’’’’’’’’’’’’’’a‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”‘’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ color (f); ’’’’’’’’ё’/’’’’’’’’’’’’’’’’’’’’’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q’’5’’’’’’’’’’’’’’’’’’’±’’4’’’’’’’’’’’’’’’’’’’ń’’2’’’’’’’’’’’’’’’’’’’1“’)’’’’’’’’’’’’’’’’’’’a“’3’’’’’’’’’’’’’’’’’’’”“’1’’’’’’’’’’’’’’’’’’’į“’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!”’%’’’’’’’’’’’’’’’’’’’Q”’% Autor ’’’’’’’’’’’’”’% Datum ’’’’’’’’’’’’±Š’% Önder.: ChŁ×¦’’’’ ’’’’’’’’’’’’’’’’’’’’±”’’’’’’’’’’’’’’’’’’’’є’’’’’’’’’’’’’’’’’’’’ń”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’•’(’’’’’’’’’’’’’’’’’’’A•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a•’’’’’’’’’’’’’’’’’’’’•’9’’’’’’’’’’’’’’’’’’’Į•’7’’’’’’’’’’’’’’’’’’’–’$’’’’’’’’’’’’’’’’’’’1–’0’’’’’’’’’’’’’’’’’’’q–’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”–’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń–’,’’’’’’’’’’’’’’’’’’’!—’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A—’’’’’’’’’’’’’’’’’’’’a—’’’’’’’’’’’’’’’’’’’’—’L’’’’’’’’’’’’’’’’’’’ї’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń—’’’’’’’’’’’’’’’’’’’’˜’G’’’’’’’’’’’’’’’’’’’a˜’D’’’’’’’’’’’’’’’’’’’±˜’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’™’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A™’’’’’’’’’’’’’’’’’’’’a™’’’’’’’’’’’’’’’’’’’’™’’’’’’’’’’’’’’’’’’’’”™’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į™’+’’’’’’’’’’’’’’’’’’’ń™’’’’’’’’’’’’’’’’’’’’š’,’’’’’’’’’’’’’’’’’’’Aš’,’’’’’’’’’’’’’’’’’’’qš’:’’’’’’’’’’’’’’’’’’’±š’D’’’’’’’’’’’’’’’’’’’›’2’’’’’’’’’’’’’’’’’’’A›’?’’’’’’’’’’’’’’’’’’’‘›’"’’’’’’’’’’’’’’’’’’’Į›’$’’’’’’’’’’’’’’’’’’’ń›’6’’’’’’’’’’’’’’’’’’’1œ’?’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’”œ’3’’’’’’’’’’’’’’’’’’’ᜒ3’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’’’ abbruch; ’’’’’’’’’’a’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’(’’’’’’’’’’’’’’’’’’’Į’$’’’’’’’’’’’’’’’’’’’ń’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ž’)’’’’’’’’’’’’’’’’’’’Qž’&’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’”ž’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’’’ n DECR 1; ’’’’’’’’’Įž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ў’’’’’’’’’’’’’’’’’’’’ńž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’1Ÿ’’’’’’’’’’’’’’’’’’’’’’ out (xn); ’’’’’’’’’aŸ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’”Ÿ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŸ’’’’’’’’’’’’’’’’’’’’្(’’’’’’’’’’’’’’’’’’’ ’)’’’’’’’’’’’’’’’’’’’’’ put ("-"); ’’’’’’’’A ’)’’’’’’’’’’’’’’’’’’’q ’’’’’’’’’’’’’’’’’’’’‘ ’6’’’’’’’’’’’’’’’’’’’Ń ’J’’’’’’’’’’’’’’’’’’’!”’6’’’’’’’’’’’’’’’’’’’a”’K’’’’’’’’’’’’’’’’’’’±”’0’’’’’’’’’’’’’’’’’’’ń”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ abbruch: ’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’1¢’’’’’’’’’’’’’’’’’’’’Q¢’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’”¢’’’’’’’’’’’’’’’’’’’’Į¢’!’’’’’’’’’’’’’’’’’’’ń¢’.’’’’’’’’’’’’’’’’’’’!£’#’’’’’’’’’’’’’’’’’’’Q£’’’’’’’’’’’’’’’’’’’’q£’’’’’’’’’’’’’’’’’’’’‘£’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±£’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń£’&’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’!¤’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A¤’’’’’’’’’’’’’’’’’’’’a¤’’’’’’’’’’’’’’’’’’’’¤’$’’’’’’’’’’’’’’’’’’’±¤’’’’’’’’’’’’’’’’’’’’Ѥ’’’’’’’’’’’’’’’’’’’’ń¤’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’1„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q„’’’’’’’’’’’’’’’’’’’’’’ scan (h); ’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’q„’&’’’’’’’’’’’’’’’’’’’”„’’’’’’’’’’’’’’’’’’’’Į„’’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’¦’’’’’’’’’’’’’’’’’’’’!¦’’’’’’’’’’’’’’’’’’’’A¦’1’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’¦’9’’’’’’’’’’’’’’’’’’’Į¦’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’ᦒ#’’’’’’’’’’’’’’’’’’’§’’’’’’’’’’’’’’’’’’’’1§’’’’’’’’’’’’’’’’’’’’Q§’!’’’’’’’’’’’’’’’’’’’§’4’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’ c INCR 1 ’’’’’’’’Į§’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į§’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ø’9’’’’’’’’’’’’’’’’’’’AØ’6’’’’’’’’’’’’’’’’’’’Ø’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮØ’’’’’’’’’’’’’’’’’’’’ᨒ6’’’’’’’’’’’’’’’’’’’!©’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a©’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’©’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±©’’’’’’’’’’’’’’’’’’’’Ń©’’’’’’’’’’’’’’’’’’’’į©’’’’’’’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’!Ŗ’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’AŖ’’’’’’’’’’’’’’’’’’’’aŖ’’’’’’’’’’’’’’’’’’’’’’ PER ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŖ’’’’’’’’’’’’’’’’’’’’ŃŖ’’’’’’’’’’’’’’’’’’’’’’ add (r); ’’’’’’’’ńŖ’2’’’’’’’’’’’’’’’’’’’1«’6’’’’’’’’’’’’’’’’’’’q«’’’’’’’’’’’’’’’’’’’’‘«’’’’’’’’’’’’’’’’’’’’±«’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’f’P’’’’’’’’’’’’’’’’’’’bf’S’’’’’’’’’’’’’’’’’’’Āf’V’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"g’)’’’’’’’’’’’’’’’’’’’Rg’>’’’’’’’’’’’’’’’’’’’’g’>’’’’’’’’’’’’’’’’’’’Ņg’S’’’’’’’’’’’’’’’’’’’2h’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚h’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²h’G’’’’’’’’’’’’’’’’’’’i’"’’’’’’’’’’’’’’’’’’’2i’P’’’’’’’’’’’’’’’’’’’’i’M’’’’’’’’’’’’’’’’’’’āi’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2j’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Rj’N’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢j’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņj’L’’’’’’’’’’’’’’’’’’’"k’G’’’’’’’’’’’’’’’’’’’rk’P’’’’’’’’’’’’’’’’’’’Ņk’M’’’’’’’’’’’’’’’’’’’"l’’’’’’’’’’’’’’’’’’’’2l’H’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚l’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²l’5’’’’’’’’’’’’’’’’’’’ņl’Q’’’’’’’’’’’’’’’’’’’’’dung. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Rm’M’’’’’’’’’’’’’’’’’’’¢m’7’’’’’’’’’’’’’’’’’’’ām’<’’’’’’’’’’’’’’’’’’’"n’D’’’’’’’’’’’’’’’’’’’rn’@’’’’’’’’’’’’’’’’’’’Ān’$’’’’’’’’’’’’’’’’’’’ņn’F’’’’’’’’’’’’’’’’’’’Bo’2’’’’’’’’’’’’’’’’’’’‚o’E’’’’’’’’’’’’’’’’’’’Ņo’@’’’’’’’’’’’’’’’’’’’"p’&’’’’’’’’’’’’’’’’’’’Rp’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢p’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņp’@’’’’’’’’’’’’’’’’’’’"q’Q’’’’’’’’’’’’’’’’’’’’’aus. ’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚q’<’’’’’’’’’’’’’’’’’’’Āq’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņq’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’S’’’’’’’’’’’’’’’’’’’rr’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’r’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ār’M’’’’’’’’’’’’’’’’’’’s’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"s’’’’’’’’’’’’’’’’’’’’Bs’’’’’’’’’’’’’’’’’’’’bs’’’’’’’’’’’’’’’’’’’’’’ check off ’’’’’’’’’’’‚s’’’’’’’’’’’’’’’’’’’’¢s’’’’’’’’’’’’’’’’’’’’Ās’’’’’’’’’’’’’’’’’’’’ās’’’’’’’’’’’’’’’’’’’’’’ check on ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’t’K’’’’’’’’’’’’’’’’’’’Rt’R’’’’’’’’’’’’’’’’’’’²t’O’’’’’’’’’’’’’’’’’’’u’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’Mit ’’’’’’’’’’’’’’’’’’’ lisp ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2u’L’’’’’’’’’’’’’’’’’’’‚u’O’’’’’’’’’’’’’’’’’’’āu’*’’’’’’’’’’’’’’’’’’’v’6’’’’’’’’’’’’’’’’’’’Rv’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚v’O’’’’’’’’’’’’’’’’’’’āv’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’Mit ’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2w’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bw’Q’’’’’’’’’’’’’’’’’’’Āw’Q’’’’’’’’’’’’’’’’’’’"x’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bx’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’x’R’’’’’’’’’’’’’’’’’’’ņx’M’’’’’’’’’’’’’’’’’’’By’P’’’’’’’’’’’’’’’’’’’¢y’Q’’’’’’’’’’’’’’’’’’’z’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"z’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bz’N’’’’’’’’’’’’’’’’’’’²z’R’’’’’’’’’’’’’’’’’’’{’K’’’’’’’’’’’’’’’’’’’b{’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢{’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Abhilfe; mit ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ{’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ{’#’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"|’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R|’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚|’S’’’’’’’’’’’’’’’’’’’ā|’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ|’=’’’’’’’’’’’’’’’’’’’2}’L’’’’’’’’’’’’’’’’’’’‚}’’’’’’’’’’’’’’’’’’’’²}’N’’’’’’’’’’’’’’’’’’’~’ ’’’’’’’’’’’’’’’’’’’2~’Q’’’’’’’’’’’’’’’’’’’’~’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā~’Q’’’’’’’’’’’’’’’’’’’"’K’’’’’’’’’’’’’’’’’’’r’H’’’’’’’’’’’’’’’’’’’Ā’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Anmerkung: ’’’’’’’’’’ņ’H’’’’’’’’’’’’’’’’’’’B€’S’’’’’’’’’’’’’’’’’’’¢€’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā€’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ€’:’’’’’’’’’’’’’’’’’’’2’M’’’’’’’’’’’’’’’’’’’’’ wird. ’’’’’’’’’’’‚’F’’’’’’’’’’’’’’’’’’’ҁ’O’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2‚’$’’’’’’’’’’’’’’’’’’’b‚’Q’’’’’’’’’’’’’’’’’’’Ā‚’N’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ƒ’*’’’’’’’’’’’’’’’’’’’Bƒ’L’’’’’’’’’’’’’’’’’’’’ƒ’J’’’’’’’’’’’’’’’’’’’⃒R’’’’’’’’’’’’’’’’’’’B„’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚„’"’’’’’’’’’’’’’’’’’’’²„’J’’’’’’’’’’’’’’’’’’’…’O’’’’’’’’’’’’’’’’’’’b…’M’’’’’’’’’’’’’’’’’’’²…’7’’’’’’’’’’’’’’’’’’’ņ…’N’’’’’’’’’’’’’’’’’’’B†’O’’’’’’’’’’’’’’’’’’’¢†’N’’’’’’’’’’’’’’’’’’’ņ†’O’’’’’’’’’’’’’’’’’’’R‡’M’’’’’’’’’’’’’’’’’’’’’ bleibt. ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢‡’)’’’’’’’’’’’’’’’’’’’҇’Q’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2ˆ’’’’’’’’’’’’’’’’’’’’Rˆ’J’’’’’’’’’’’’’’’’’’’¢ˆ’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņˆ’!’’’’’’’’’’’’’’’’’’’"‰’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b‰’!’’’’’’’’’’’’’’’’’’’’‰’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’҉’(’’’’’’’’’’’’’’’’’’’Š’E’’’’’’’’’’’’’’’’’’’RŠ’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Š’)’’’’’’’’’’’’’’’’’’’Š’R’’’’’’’’’’’’’’’’’’’"‹’P’’’’’’’’’’’’’’’’’’’‚‹’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²‹’,’’’’’’’’’’’’’’’’’’’ā‹’N’’’’’’’’’’’’’’’’’’’2Œ’G’’’’’’’’’’’’’’’’’’’‚Œ’J’’’’’’’’’’’’’’’’’’’Ҍ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’2’@’’’’’’’’’’’’’’’’’’’‚’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’"’’’’’’’’’’’’’’’’’’’ā’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2Ž’+’’’’’’’’’’’’’’’’’’’bŽ’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’²Ž’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āŽ’’’’’’’’’’’’’’’’’’’’’V’’’’’’’’’’’’’’’’’’’b’M’’’’’’’’’’’’’’’’’’’²’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’#’’’’’’’’’’’’’’’’’’’"’M’’’’’’’’’’’’’’’’’’’r’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’ņ’M’’’’’’’’’’’’’’’’’’’B‘’Q’’’’’’’’’’’’’’’’’’’¢‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā‘’&’’’’’’’’’’’’’’’’’’’ņ‘’O’’’’’’’’’’’’’’’’’’’R’’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’’%’’’’’’’’’’’’’’’’’’’Ņ’’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“’2’’’’’’’’’’’’’’’’’’’R“’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚“’6’’’’’’’’’’’’’’’’’’’Ā“’O’’’’’’’’’’’’’’’’’’’"”’O’’’’’’’’’’’’’’’’’’’‚”’S’’’’’’’’’’’’’’’’’’’ā”’P’’’’’’’’’’’’’’’’’’’’’ gesetzt. ’’’’’’’’B•’S’’’’’’’’’’’’’’’’’’’¢•’K’’’’’’’’’’’’’’’’’’’ņ•’M’’’’’’’’’’’’’’’’’’’B–’S’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢–’=’’’’’’’’’’’’’’’’’’’ā–’R’’’’’’’’’’’’’’’’’’’B—’L’’’’’’’’’’’’’’’’’’’’—’S’’’’’’’’’’’’’’’’’’’ņ—’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"˜’?’’’’’’’’’’’’’’’’’’’r˜’O’’’’’’’’’’’’’’’’’’’Ҙ’R’’’’’’’’’’’’’’’’’’’2™’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b™’;’’’’’’’’’’’’’’’’’’’¢™’S’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’š’3’’’’’’’’’’’’’’’’’’’Bš’R’’’’’’’’’’’’’’’’’’’¢š’Y’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’›’6’’’’’’’’’’’’’’’’’’’B›’Q’’’’’’’’’’’’’’’’’’’¢›’R’’’’’’’’’’’’’’’’’’’œ’Q’’’’’’’’’’’’’’’’’’’bœ’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢œ’+’’’’’’’’’’’’’’’’’’’Ҝ’N’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń«’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń«’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¬’’’’’’’’’’’’’’’’’’’’1¬’’’’’’’’’’’’’’’’’’’’Q¬’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q¬’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¬’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ѭ’I’’’’’’’’’’’’’’’’’’’!­’I’’’’’’’’’’’’’’’’’’’q­’I’’’’’’’’’’’’’’’’’’’Į­’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’®’I’’’’’’’’’’’’’’’’’’’a®’I’’’’’’’’’’’’’’’’’’’±®’I’’’’’’’’’’’’’’’’’’’Æ’I’’’’’’’’’’’’’’’’’’’QÆ’I’’’’’’’’’’’’’’’’’’’”Æ’I’’’’’’’’’’’’’’’’’’’ńÆ’I’’’’’’’’’’’’’’’’’’’A°’I’’’’’’’’’’’’’’’’’’’‘°’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į°’’’’’’’’’’’’’’’’’’’’±’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A±’’’’’’’’’’’’’’’’’’’’a±’#’’’’’’’’’’’’’’’’’’’‘±’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į±’’’’’’’’’’’’’’’’’’’’ѱ’’’’’’’’’’’’’’’’’’’’ń±’9’’’’’’’’’’’’’’’’’’’’’ xr:= yr; ’’’’’’’’’’’’ block 0; ’’’’’’’’’’1²’(’’’’’’’’’’’’’’’’’’’a²’)’’’’’’’’’’’’’’’’’’’‘²’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ block 0: ’’’’’’’’’’’’Į²’I’’’’’’’’’’’’’’’’’’’³’.’’’’’’’’’’’’’’’’’’’A³’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ block 1: ’’’’’’’’’’’’³’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±³’’’’’’’’’’’’’’’’’’’’ѳ’’’’’’’’’’’’’’’’’’’’ń³’5’’’’’’’’’’’’’’’’’’’1“’A’’’’’’’’’’’’’’’’’’’“’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ block 2: ’’’’’’’’’’’’±“’’’’’’’’’’’’’’’’’’’’Ń“’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ block 3: ’’’’’’’’’’’’µ’$’’’’’’’’’’’’’’’’’’’1µ’’’’’’’’’’’’’’’’’’’’’’ m1:= 1; ’’’’’’’’’’’ m2:= 2 ’’’’’’’’’’Qµ’’’’’’’’’’’’’’’’’’’’qµ’’’’’’’’’’’’’’’’’’’’’’ m2:= n ’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’’’ m1:= 1; ’’’’’’’’’’’ m2:= n; ’’’’’’’’’‘µ’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’±µ’’’’’’’’’’’’’’’’’’’’ѵ’’’’’’’’’’’’’’’’’’’’ńµ’’’’’’’’’’’’’’’’’’’’¶’F’’’’’’’’’’’’’’’’’’’a¶’J’’’’’’’’’’’’’’’’’’’±¶’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ѷ’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’į¶’’’’’’’’’’’’’’’’’’’’·’3’’’’’’’’’’’’’’’’’’’A·’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a·’"’’’’’’’’’’’’’’’’’’’’’ cout (j) ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘·’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±·’’’’’’’’’’’’’’’’’’’’Ń·’'’’’’’’’’’’’’’’’’’’’ø’’’’’’’’’’’’’’’’’’’’ø’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ø’’’’’’’’’’’’’’’’’’’’Qø’’’’’’’’’’’’’’’’’’’’qø’!’’’’’’’’’’’’’’’’’’’”ø’(’’’’’’’’’’’’’’’’’’’Ńø’:’’’’’’’’’’’’’’’’’’’¹’G’’’’’’’’’’’’’’’’’’’a¹’6’’’’’’’’’’’’’’’’’’’”¹’B’’’’’’’’’’’’’’’’’’’ń¹’'’’’’’’’’’’’’’’’’’’’’’ legende ’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ partnerwahl: ’’’’’’’’!ŗ’'’’’’’’’’’’’’’’’’’’’’’ line (2); ’’’’’’’’’Qŗ’&’’’’’’’’’’’’’’’’’’’ŗ’6’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’Įŗ’"’’’’’’’’’’’’’’’’’’’ńŗ’!’’’’’’’’’’’’’’’’’’’!»’"’’’’’’’’’’’’’’’’’’’Q»’ ’’’’’’’’’’’’’’’’’’’»’/’’’’’’’’’’’’’’’’’’’Į»’/’’’’’’’’’’’’’’’’’’’¼’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!¼’’’’’’’’’’’’’’’’’’’’A¼’$’’’’’’’’’’’’’’’’’’’q¼’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”¼’)’’’’’’’’’’’’’’’’’’’Ѽ’’’’’’’’’’’’’’’’’’’’ń¼’’’’’’’’’’’’’’’’’’’’½’’’’’’’’’’’’’’’’’’’’1½’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ legende: ’’’’’’’’’’’’Q½’’’’’’’’’’’’’’’’’’’’q½’0’’’’’’’’’’’’’’’’’’’±½’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń½’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¾’9’’’’’’’’’’’’’’’’’’’Q¾’6’’’’’’’’’’’’’’’’’’’‘¾’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į¾’I’’’’’’’’’’’’’’’’’’’æ’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aæ’I’’’’’’’’’’’’’’’’’’’±æ’I’’’’’’’’’’’’’’’’’’’Ą’I’’’’’’’’’’’’’’’’’’’QĄ’I’’’’’’’’’’’’’’’’’’’”Ą’I’’’’’’’’’’’’’’’’’’’ńĄ’I’’’’’’’’’’’’’’’’’’’AĮ’I’’’’’’’’’’’’’’’’’’’‘Į’I’’’’’’’’’’’’’’’’’’’įĮ’I’’’’’’’’’’’’’’’’’’’1Ā’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’C’’’’’’’’’’’’’’’’’’’ŃĀ’I’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ć’+’’’’’’’’’’’’’’’’’’’’’ INT VAR i; ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QĆ’.’’’’’’’’’’’’’’’’’’’Ć’!’’’’’’’’’’’’’’’’’’’±Ć’’’’’’’’’’’’’’’’’’’’ŃĆ’’’’’’’’’’’’’’’’’’’’ńĆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ä’,’’’’’’’’’’’’’’’’’’’AÄ’’’’’’’’’’’’’’’’’’’’aÄ’,’’’’’’’’’’’’’’’’’’’‘Ä’,’’’’’’’’’’’’’’’’’’’ĮÄ’’’’’’’’’’’’’’’’’’’’įÄ’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Å’’’’’’’’’’’’’’’’’’’’1Å’/’’’’’’’’’’’’’’’’’’’qÅ’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Å’’’’’’’’’’’’’’’’’’’’ŃÅ’6’’’’’’’’’’’’’’’’’’’Ę’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AĘ’’’’’’’’’’’’’’’’’’’’aĘ’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ę’’’’’’’’’’’’’’’’’’’’ĮĘ’#’’’’’’’’’’’’’’’’’’’ńĘ’4’’’’’’’’’’’’’’’’’’’1Ē’’’’’’’’’’’’’’’’’’’’QĒ’'’’’’’’’’’’’’’’’’’’’Ē’7’’’’’’’’’’’’’’’’’’’’’ PER ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮĒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įĒ’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ anpassung; ’’’’’’’’’’ rahmen; ’’’’’’’’’’’!Č’’’’’’’’’’’’’’’’’’’’1Č’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ anpassung: ’’’’’’’’’’QČ’’’’’’’’’’’’’’’’’’’’qČ’’’’’’’’’’’’’’’’’’’’‘Č’’’’’’’’’’’’’’’’’’’’±Č’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’rahmen: ’’’’’’’’’’’’’ŃČ’’’’’’’’’’’’’’’’’’’’ńČ’’’’’’’’’’’’’’’’’’’’É’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ pfeil oben: ’’’’’’’’’1É’"’’’’’’’’’’’’’’’’’’’aÉ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’É’’’’’’’’’’’’’’’’’’’’‘É’2’’’’’’’’’’’’’’’’’’’ŃÉ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ź’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ź’9’’’’’’’’’’’’’’’’’’’aŹ’'’’’’’’’’’’’’’’’’’’’‘Ź’/’’’’’’’’’’’’’’’’’’’ŃŹ’’’’’’’’’’’’’’’’’’’’’’ INT VAR i; ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŹ’’’’’’’’’’’’’’’’’’’’!Ė’’’’’’’’’’’’’’’’’’’’1Ė’’’’’’’’’’’’’’’’’’’’’’ PER ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QĖ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qĖ’’’’’’’’’’’’’’’’’’’’‘Ė(*’’’’’’’’’’’ŪŁ»’’’’ INT VAR i; ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮĖ’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’įĖ’"’’’’’’’’’’’’’’’’’’’Ģ’6’’’’’’’’’’’’’’’’’’’QĢ’%’’’’’’’’’’’’’’’’’’’Ģ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ģ’’’’’’’’’’’’’’’’’’’’’’ page; ’’’’’’’’’’’’’ŃĢ’3’’’’’’’’’’’’’’’’’’’’’ line (2); ’’’’’’’’’Ķ’$’’’’’’’’’’’’’’’’’’’AĶ’2’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’’’ line (2); ’’’’’’’’’Ķ’’’’’’’’’’’’’’’’’’’’”Ķ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮĶ*)’’’’’’’’’’’ÖŚĀ’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įĶ’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ī’/’’’’’’’’’’’’’’’’’’’aĪ’*’’’’’’’’’’’’’’’’’’’aŠ’Gout (""1"")ÖÕ’’±Ī’#’’’’’’’’’’’’’’’’’’’įĪ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ļ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ļ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AĻ’?’’’’’’’’’’’’’’’’’’’‘Ļ’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ļ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃĻ’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’ü֒’AŠ’’’’’’’’’’’’ēŲ×’’’’ ’’’’’’’’’’’’×Ų’’įŠ’% 21§ēŁ’’Ń’$’’’’’’’’’’’¼ŪŚ’’AŃ’’’’’’’’’’’’ڧے’aŃ’de nr := 1.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’,’’’’’’’’’’’’’’’’’’’r’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’.’’’’’’’’’’’’’’’’’’’ā’N’’’’’’’’’’’’’’’’’’’2ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Rž’"’’’’’’’’’’’’’’’’’’’‚ž’P’’’’’’’’’’’’’’’’’’’’’ Atom. ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āž’"’’’’’’’’’’’’’’’’’’’Ÿ’O’’’’’’’’’’’’’’’’’’’rŸ’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ÿ’%’’’’’’’’’’’’’’’’’’’ņŸ’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2 ’,’’’’’’’’’’’’’’’’’’’b ’C’’’’’’’’’’’’’’’’’’’² ’N’’’’’’’’’’’’’’’’’’’’’ fert. ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’&’’’’’’’’’’’’’’’’’’’2”’J’’’’’’’’’’’’’’’’’’’‚”’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²”’%’’’’’’’’’’’’’’’’’’’ā”’P’’’’’’’’’’’’’’’’’’’’’ darauf. ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B¢’"’’’’’’’’’’’’’’’’’’’r¢’"’’’’’’’’’’’’’’’’’’’¢¢’N’’’’’’’’’’’’’’’’’’’ņ¢’R’’’’’’’’’’’’’’’’’’’’’ geben. ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R£’)’’’’’’’’’’’’’’’’’’’‚£’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā£’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¤’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2¤’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r¤’P’’’’’’’’’’’’’’’’’’’Ҥ’V’’’’’’’’’’’’’’’’’’’2„’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r„’K’’’’’’’’’’’’’’’’’’’Ā„’Q’’’’’’’’’’’’’’’’’’’"¦’R’’’’’’’’’’’’’’’’’’’‚¦’Q’’’’’’’’’’’’’’’’’’’⦒>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"§’O’’’’’’’’’’’’’’’’’’’‚§’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ҧ’M’’’’’’’’’’’’’’’’’’’"Ø’P’’’’’’’’’’’’’’’’’’’‚Ø’R’’’’’’’’’’’’’’’’’’’⨒&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’©’R’’’’’’’’’’’’’’’’’’’r©’S’’’’’’’’’’’’’’’’’’’Ņ©’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ŗ’*’’’’’’’’’’’’’’’’’’’2Ŗ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bŖ’Q’’’’’’’’’’’’’’’’’’’ĀŖ’F’’’’’’’’’’’’’’’’’’’«’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R«’N’’’’’’’’’’’’’’’’’’’¢«’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ«’&’’’’’’’’’’’’’’’’’’’¬’L’’’’’’’’’’’’’’’’’’’R¬’T’’’’’’’’’’’’’’’’’’’²¬’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ҭ’*’’’’’’’’’’’’’’’’’’’­’O’’’’’’’’’’’’’’’’’’’b­’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚­’’’’’’’’’’’’’’’’’’’’¢­’O’’’’’’’’’’’’’’’’’’’®’Q’’’’’’’’’’’’’’’’’’’b®’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²®’(’’’’’’’’’’’’’’’’’’’ā®’P’’’’’’’’’’’’’’’’’’’BÆ’N’’’’’’’’’’’’’’’’’’’’Æ’M’’’’’’’’’’’’’’’’’’’⯒’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’°’’’’’’’’’’’’’’’’’’’’"°’P’’’’’’’’’’’’’’’’’’’’’ erfolgt. ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚°’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²°’+’’’’’’’’’’’’’’’’’’’ā°’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2±’7’’’’’’’’’’’’’’’’’’’r±’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢±’.’’’’’’’’’’’’’’’’’’’ұ’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’3’’’’’’’’’’’’’’’’’’’B²’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r²’4’’’’’’’’’’’’’’’’’’’²²’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ҳ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R³’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’³’K’’’’’’’’’’’’’’’’’’’ā³’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’“’O’’’’’’’’’’’’’’’’’’’b“’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²“’’’’’’’’’’’’’’’’’’’’Ņ“’:’’’’’’’’’’’’’’’’’’’µ’P’’’’’’’’’’’’’’’’’’’rµ’U’’’’’’’’’’’’’’’’’’’ҵ’J’’’’’’’’’’’’’’’’’’’"¶’S’’’’’’’’’’’’’’’’’’’‚¶’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢¶’K’’’’’’’’’’’’’’’’’’’ņ¶’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"·’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B·’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’·’L’’’’’’’’’’’’’’’’’’’’’ erhalten. ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā·’R’’’’’’’’’’’’’’’’’’’Bø’S’’’’’’’’’’’’’’’’’’’¢ø’P’’’’’’’’’’’’’’’’’’’¹’Q’’’’’’’’’’’’’’’’’’’b¹’P’’’’’’’’’’’’’’’’’’’¹’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ¹’L’’’’’’’’’’’’’’’’’’’Bŗ’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rŗ’’’’’’’’’’’’’’’’’’’’’ŗ’!’’’’’’’’’’’’’’’’’’’Āŗ’’’’’’’’’’’’’’’’’’’’’’ | ’’’’’’’’’’’’’’’’ V ’’’’’’’’’’’’’’’’ Funktion ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āŗ’R’’’’’’’’’’’’’’’’’’’B»’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R»’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢»’L’’’’’’’’’’’’’’’’’’’ņ»’R’’’’’’’’’’’’’’’’’’’R¼’L’’’’’’’’’’’’’’’’’’’¢¼’K’’’’’’’’’’’’’’’’’’’ņ¼’J’’’’’’’’’’’’’’’’’’’’’"eval". ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B½’P’’’’’’’’’’’’’’’’’’’¢½’K’’’’’’’’’’’’’’’’’’’’’ vorliegen. ’’’’’’’’’’ņ½’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"¾’2’’’’’’’’’’’’’’’’’’’b¾’2’’’’’’’’’’’’’’’’’’’¢¾’2’’’’’’’’’’’’’’’’’’’ā¾’)’’’’’’’’’’’’’’’’’’’æ’)’’’’’’’’’’’’’’’’’’’Bæ’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ræ’L’’’’’’’’’’’’’’’’’’’Āæ’Q’’’’’’’’’’’’’’’’’’’"Ą’S’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚Ą’F’’’’’’’’’’’’’’’’’’’ŅĄ’N’’’’’’’’’’’’’’’’’’’"Į’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RĮ’Q’’’’’’’’’’’’’’’’’’’²Į’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņĮ’Q’’’’’’’’’’’’’’’’’’’RĀ’S’’’’’’’’’’’’’’’’’’’²Ā’O’’’’’’’’’’’’’’’’’’’Ć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2Ć’M’’’’’’’’’’’’’’’’’’’‚Ć’M’’’’’’’’’’’’’’’’’’’’’ Ausdruck. ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŅĆ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ä’2’’’’’’’’’’’’’’’’’’’BÄ’2’’’’’’’’’’’’’’’’’’’‚Ä’2’’’’’’’’’’’’’’’’’’’ĀÄ’’’’’’’’’’’’’’’’’’’’āÄ’’’’’’’’’’’’’’’’’’’’Å’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2Å’P’’’’’’’’’’’’’’’’’’’’Å’N’’’’’’’’’’’’’’’’’’’āÅ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ę’T’’’’’’’’’’’’’’’’’’’rĘ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ 1. | ’’’’’’’’’’ | ’’’’’’’’’’ V ’’’’’’’’¢Ę’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀĘ’K’’’’’’’’’’’’’’’’’’’Ē’P’’’’’’’’’’’’’’’’’’’rĒ’N’’’’’’’’’’’’’’’’’’’ĀĒ’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ 2. | ’’’’’’’’’’ | ’’’’’’’’’’ V ’’’’’’’’Č’'’’’’’’’’’’’’’’’’’’’BČ’'’’’’’’’’’’’’’’’’’’’rČ’'’’’’’’’’’’’’’’’’’’’¢Č’’’’’’’’’’’’’’’’’’’’ĀČ’’’’’’’’’’’’’’’’’’’’āČ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’É’Q’’’’’’’’’’’’’’’’’’’rÉ’I’’’’’’’’’’’’’’’’’’’ĀÉ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ 3. | ’’’’’’’’’’ | ’’’’’’’’’’ V ’’’’’’’’ņÉ’'’’’’’’’’’’’’’’’’’’’"Ź’'’’’’’’’’’’’’’’’’’’’RŹ’'’’’’’’’’’’’’’’’’’’’‚Ź’’’’’’’’’’’’’’’’’’’’¢Ź’’’’’’’’’’’’’’’’’’’’ĀŹ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņŹ’R’’’’’’’’’’’’’’’’’’’RĖ’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ 4. | ’’’’’’’’’’ | ’’’’’’’’’’ V ’’’’’’’’’Ė’'’’’’’’’’’’’’’’’’’’’ĀĖ’'’’’’’’’’’’’’’’’’’’’ņĖ’'’’’’’’’’’’’’’’’’’’’"Ģ’’’’’’’’’’’’’’’’’’’’BĢ’’’’’’’’’’’’’’’’’’’’bĢ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Ģ’N’’’’’’’’’’’’’’’’’’’āĢ’P’’’’’’’’’’’’’’’’’’’BĶ’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ 5. | ’’’’’’’’’’ | ’’’’’’’’’’ V ’’’’’’’’’Ķ’8’’’’’’’’’’’’’’’’’’’ŅĶ’8’’’’’’’’’’’’’’’’’’’Ī’8’’’’’’’’’’’’’’’’’’’RĪ’/’’’’’’’’’’’’’’’’’’’’Ī’/’’’’’’’’’’’’’’’’’’’ŅĪ’1’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ļ’R’’’’’’’’’’’’’’’’’’’rĻ’L’’’’’’’’’’’’’’’’’’’ĀĻ’Q’’’’’’’’’’’’’’’’’’’"Š’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’.PACKET graphics DEFINES graphmode, ’’’’’’’’’’’. attribut, ’’’’’’’’’’’’. palette, ’’’’’’’’’’’’’ move,  plot, . draw line, ’’’’’’’’’’’. draw linetype, ’’’’’’’. color, ’’’’’’’’’’’’’’’. draw to: ’’’’’’’’’’’’’(* Autor: Giffeler GD *) ’’’’’(* Datum: 31.03.1988 *) ’’’’’(* SchŚnbeck SHard *) ’’’’’.INT VAR linie :: -1, farbe :: 1, dummy; ’’’’’’PROC attribut (INT CONST nr): >(* 0..15 Vordergrundfarben fuer Textdarstellung ’’’’’’’’’’’> 0..7 Hintergrundfarben ’’’’’’’’’’’> Attribut fuer blinkende Darstellung (+128) *) ’’’’’’’’’’’ control (-3, nr, 0, dummy) ’END PROC attribut; ’’’’’’’’’’’PROC palette (INT CONST nr): ’.(* Farbauswahl fuer Grafikmodi *) ’’’’’’’’’’’’ control (-4, 0, nr, dummy) ’END PROC palette; ’’’’’’’’’’’’.PROC graphmode (INT CONST mode): ’’’’’’’’’’’’’.(* 0 -> TEXT 40*25 monochrom ’’’’’’’’’’’’. 2 -> 80*25 ’’’’’’’’’’’’. 1 -> 40*25 farbig ’’’’’’’’’’’’. 3 -> 80*25 ’’’’’’’’’’’’. 7 -> 80*25 Herkules ’’’’’’’’’’’’. 4 -> GRAFIK 320*200 farbig ’’’’’’’’. 5 -> monochrom ’’’’’’’’. 6 -> 640*200 ’’’’’’’’. 64 -> Olivetti 640*400 monochrom ’. 72 -> kleine Schrift ’’’’. 512 -> Herkules 720*348 monochrom *) ’. control (-5, mode, 0, dummy) ’’’’’’’’’’’’’’’END PROC graphmode; ’’’’’’’’’’.PROC draw linetype (INT CONST pen, color): ’’’.(* Linienschraffur und Zeichenfarbe *) ’’’’’’’ linie:= pen; ’’’’’’’’’’’’’’’ farbe:= color; ’’’’’’’’’’’’’. control (-8, linie, farbe, dummy) ’’’’’’’’’’END PROC draw linetype; ’’’’’’.PROC draw linetype (INT CONST nr): ’’’’’’’’’’’>(* Ausschliessliche Aenderung der Linienschraffur *) ’’’’’’’’’ linie:= nr; . control (-8, linie, farbe, dummy) ’’’’’’’’’’END PROC draw linetype; ’’’’’’PROC color (INT CONST nr): ’’’>(* Ausschliessliche Aenderung der Zeichenfarbe *) ’’’’’’’’’’’’ farbe:= nr; . control (-8, linie, farbe, dummy) ’’’’’’’’’’END PROC color; ’’’’’’’’’’’’’’PROC move (INT CONST x, y): ’’>(* Bewegt Zeichencursor zu Koordinaten (0,0 = Links oben) *) ’ control (-7, x, y, dummy) ’’END PROC move; ’’’’’’’’’’’’’’’PROC move (REAL CONST x, y): ’. control (-7, int(x+0.5), int(y+0.5), dummy) END PROC move; ’’’’’’’’’’’’’’’.PROC draw to (INT CONST x, y): ’’’’’’’’’’’’’’’N(* Zeichnet Gerade von momentaner Zeichencursorposition nach x,y *) ’’’’’’’’’’ control (-6, x, y, dummy) ’’END PROC draw to; ’’’’’’’’’’’’.PROC draw to (REAL CONST x, y): ’’’’’’’’’’’’’’. control (-6, int(x+0.5), int(y+0.5), dummy) END PROC draw to; ’’’’’’’’’’’’.PROC draw line (INT CONST x1, y1, x2, y2): ’’’.(* Zieht eine Linie von x1,y1 nach x2,y2 *) ’’ plot (x1, y1); ’’’’’’’’’’’’’ draw to (x2, y2) ’’’’’’’’’’’END PROC draw line; ’’’’’’’’’’.PROC draw line (REAL CONST x1, y1, x2, y2): ’’ plot (x1, y1); ’’’’’’’’’’’’’ draw to (x2, y2) ’’’’’’’’’’’END PROC draw line; ’’’’’’’’’’PROC plot (INT CONST x, y): ’’(* Zeichnet einen Punkt *) ’’’ control (-7, x, y, dummy); ’ control (-6, x, y, dummy) ’’END PROC plot; ’’’’’’’’’’’’’’’PROC plot (REAL CONST x, y): ’> control (-7, int(x+0.5), int(y+0.5), dummy); ’’’’’’’’’’’’’’’. control (-6, int(x+0.5), int(y+0.5), dummy) END PROC plot; ’’’’’’’’’’’’’’’.PROC draw to (INT CONST x, y, f): ’’’’’’’’’’’’N(* Zeichnet Gerade von momentaner Zeichencursorposition nach x,y *) ’’’’’’’’’’ control (-6, x, y, dummy) ’’END PROC draw to; ’’’’’’’’’’’’.PROC draw to (REAL CONST x, y, INT CONST f): ’. control (-6, int(x+0.5), int(y+0.5), dummy) END PROC draw to; ’’’’’’’’’’’’.PROC draw line (INT CONST x1, y1, x2, y2, f): .(* Zieht eine Linie von x1,y1 nach x2,y2 *) ’’ plot (x1, y1, f); ’’’’’’’’’’ draw to (x2, y2) ’’’’’’’’’’’END PROC draw line; ’’’’’’’’’’>PROC draw line (REAL CONST x1, y1, x2, y2, INT CONST f): ’’’’’ plot (x1, y1, f); ’’’’’’’’’’ draw to (x2, y2) ’’’’’’’’’’’END PROC draw line; ’’’’’’’’’’.PROC plot (INT CONST x, y, f): ’’’’’’’’’’’’’’’>(* Zeichnet einen Punkt mit der Farbe f (0 = schwarz) *) ’’’’’ control (-7, x, y, dummy); ’ control (-6, x, y, dummy) ’’END PROC plot; ’’’’’’’’’’’’’’’.PROC plot (REAL CONST x, y, INT CONST f): ’’’’> control (-7, int(x+0.5), int(y+0.5), dummy); ’’’’’’’’’’’’’’’. control (-6, int(x+0.5), int(y+0.5), dummy) END PROC plot END PACKET graphics; ’’’’’’’’’>PACKET dynamo plotter plus DEFINES configurate plot, ’’’’’’’’’> initialize plot, ’’’’’’’’’’> new plot line, ’’’’’’’’’’’’. plot, ’’’’’> end of program, ’’’’’’’’’’’> stop request, ’’’’’’’’’’’’’> plot scale: ’’’’’’’’’’’’’’’.(* DYNAMO Grafikausgabe *) ’’’’’’’’’.(* Autor : Giffeler GD *) ’’’’’’’’’.(* Datum : 29.04.1988, 03.06.1988 *) ’’’’’’’’’LET max value = 330, ’ value page length = 30, ’’ max param numb = 10, ’’. PARAM = ROW value page length REAL, ’’’’’’ BIG = ROW 300 REAL, ’’’’ max devices = 3, ’’’’’’’’’> SWITCH = STRUCT (TEXT bezeichnung, INT on, off, ’’’’’> zeichenbreite, zeichenhoehe, ’’’’’’’. h offset, ’’’’’’’’’’> x, y, breite, hoehe), ’’’’’’’’’’’’’’. SIZE = ROW max devices SWITCH; ’’’’NTYPE PLOTPARAM = STRUCT (TEXT name, REAL lower bound, upper bound); ’’’’’’’’’’.ROW max param numb PLOTPARAM VAR plotparam; ’’ROW max value REAL VAR value; BOOL VAR plt, ende; ’’’’’’’’’’REAL VAR pltper, nextplot; ’’’NINT VAR value no, param no, plot line no, mode nr, plot param no, line no, ’’ xp, yp; ’’’’’’’’’’’’’SIZE CONST table :: SIZE: ’’’’N (SWITCH: ("CGA 640 * 200", 6, 2, 8, 8, 5, 4, 20, 615, 102), ’’’’’’’N SWITCH: ("HGC 720 * 348", 512, 0, 0, 0, 0, 0, 0, 0, 0), ’’’’’’’’’’N SWITCH: ("OLI 640 * 400", 64, 2, 8, 16, 10, 4, 25, 615, 223)); ’’’>configurate plot; (* Erster Aufruf nach der Insertierung *) ’’PROC plot one page : ’’’’’’’’’INT VAR loop nr, n, m; ’’’’’’’PARAM VAR x, y; ’’’’’’’’’’’’’’BIG VAR xr, yr; ’’’’’’’’’’’’’’. kopfzeile ("Stuetzstellen: ", TRUE); ’’’ xp:= 1; yp:= 19; ’’’’’’’’’’’. FOR loop nr FROM 1 UPTO plot param no REP ’’. werte aus value in x und y uebertragen; ’’> koordinatenkreuz (table[mode nr].x, table[mode nr].y, ’’’’N table[mode nr].breite, table[mode nr].hoehe); ’’’’’’’’’’> x raster (table[mode nr].x, table[mode nr].y, ’’’’’’’’’’’’N table[mode nr].breite, table[mode nr].hoehe, n); ’’’’’’’’’’’’’’’. zusatzinformationen ausgeben; ’’’’’’’’’’’’. spline (n, m, 1, x, y, xr, yr); ’’’’’’’’’’> draw picture (table[mode nr].x, table[mode nr].y, ’’’’’’’’N table[mode nr].breite, table[mode nr].hoehe, ’’’’’’’’’’’’’’’ loop nr, m, > plot param[loop nr].lower bound, ’’’’’’’’’’’> plot param[loop nr].upper bound, ’’’’’’’’’’’ xr, yr); ’’’ legende ausgeben ’’’’’’’’’. graphmode(table[mode nr].off). ’’’’’’’’’’’’’.werte aus value in x und y uebertragen: ’’’’’’.INT CONST erh :: plot param no + 1; ’’’’’’’’’’.INT VAR z :: 1’’’’’’’’RŠ’Q’’’’’’’’’’’’’’’’’’’²Š’S’’’’’’’’’’’’’’’’’’’Ń’K’’’’’’’’’’’’’’’’’’’bŃ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚Ń’O’’’’’’’’’’’’’’’’’’’āŃ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’6’’’’’’’’’’’’’’’’’’’RŅ’6’’’’’’’’’’’’’’’’’’’’Ņ’6’’’’’’’’’’’’’’’’’’’’’ | ’’’’’’’’’’’’’’’’ V ’’’’’’’’’’’’’’ŅŅ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ annehmen. ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņŅ’S’’’’’’’’’’’’’’’’’’’RÓ’T’’’’’’’’’’’’’’’’’’’²Ó’N’’’’’’’’’’’’’’’’’’’Ō’K’’’’’’’’’’’’’’’’’’’RŌ’U’’’’’’’’’’’’’’’’’’’²Ō’U’’’’’’’’’’’’’’’’’’’Õ’P’’’’’’’’’’’’’’’’’’’rÕ’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀÕ’P’’’’’’’’’’’’’’’’’’’"Ö’N’’’’’’’’’’’’’’’’’’’rÖ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’#page# ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Ö’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀÖ’R’’’’’’’’’’’’’’’’’’’"×’:’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Die Prozedur ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b×’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚×’L’’’’’’’’’’’’’’’’’’’Ņ×’O’’’’’’’’’’’’’’’’’’’2Ų’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Die Prozedur ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ lisp ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RŲ’R’’’’’’’’’’’’’’’’’’’²Ų’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Die Prozedur ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ł’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"Ł’M’’’’’’’’’’’’’’’’’’’rŁ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ Die Prozedur ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Ł’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²Ł’O’’’’’’’’’’’’’’’’’’’Ś’N’’’’’’’’’’’’’’’’’’’bŚ’M’’’’’’’’’’’’’’’’’’’’’Mit ’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²Ś’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŅŚ’Q’’’’’’’’’’’’’’’’’’’2Ū’S’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’Ū’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²Ū’S’’’’’’’’’’’’’’’’’’’Ü’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BÜ’1’’’’’’’’’’’’’’’’’’’‚Ü’K’’’’’’’’’’’’’’’’’’’ŅÜ’P’’’’’’’’’’’’’’’’’’’2Ż’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’bŻ’=’’’’’’’’’’’’’’’’’’’¢Ż’6’’’’’’’’’’’’’’’’’’’āŻ’N’’’’’’’’’’’’’’’’’’’2Ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RŽ’L’’’’’’’’’’’’’’’’’’’¢Ž’P’’’’’’’’’’’’’’’’’’’ß’"’’’’’’’’’’’’’’’’’’’2ß’M’’’’’’’’’’’’’’’’’’’‚ß’L’’’’’’’’’’’’’’’’’’’Ņß’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"ą’M’’’’’’’’’’’’’’’’’’’rą’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²ą’M’’’’’’’’’’’’’’’’’’’į’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2į’’’’’’’’’’’’’’’’’’’’Rį’P’’’’’’’’’’’’’’’’’’’²į’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’"ā’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Rā’(’’’’’’’’’’’’’’’’’’’‚ā’O’’’’’’’’’’’’’’’’’’’āā’J’’’’’’’’’’’’’’’’’’’2ć’P’’’’’’’’’’’’’’’’’’’’ć’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Āć’R’’’’’’’’’’’’’’’’’’’"ä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Bä’’’’’’’’’’’’’’’’’’’’bä’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²ä’’’’’’’’’’’’’’’’’’’’Ņä’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’å’+’’’’’’’’’’’’’’’’’’’2å’S’’’’’’’’’’’’’’’’’’’’å’Q’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’N____________________________________________________________________________ ’#on("b")##on ("u")# ’’’’’’’’’’.#center#Betriebssystem E U M E L ’’’’’’’’’’’’’.#center#Lizenzfreie Software der ’’’’’’’’’’’’’N#center#Gesellschaft fŪr Mathematik und Datenverarbeitung mbH, ’’’’’’’’’’’’’’’#center#5205 Sankt Augustin ’’^#center#Die Nutzung der Software ist nur im Schul- und Hochschulbereich fŪr ’’’’’’’’’’’’’’.#center#nichtkommerzielle Zwecke gestattet. ’’>#center#GewŁhrleistung und Haftung werden ausgeschlossen ’’’’’N____________________________________________________________________________ ’#center#LISP - Handbuch ’’’’’’Stand: 08.08.86 ’’’’’’’’’’’’’’Installation von LISP ’’’’’’’’begin ("LISP") ’’’’’’’’’’’’’’’reserve ("sprachen",archive) ’fetch all(archive) ’’’’’’’’’’’insert ("lisp.1") ’’’’’’’’’’’’insert ("lisp.2") ’’’’’’’’’’’’insert ("lisp.3") ’’’’’’’’’’’’insert ("lisp.4") ’’’’’’’’’’’’global manager ’’’’’’’’’’’’’’’begin ("lisp","LISP") ’’’’’’’’fetch ("lisp.bootstrap") ’’’’’#start(2.5,1.5)# ’’’’’’’’’’’’’#center#LISP-Handbuch ’’’’’’’’.#center#L I S P H a n d b u c h ’’’’’’’’’’’’.#center#Autor: John Mc.Carthy (M.I.T.1962) ’’’>#center#Ūbersetzt und angepaūt von J.Durchholz, P.Heyderhoff ’N#center#Gesellschaft fŪr Mathematik und Datenverarbeitung Sankt Augustin ’’’’’Inhaltsverzeichnis ’’’’’’’’’’’N1. Die Sprache LISP #right##topage("p1")# ’’’’’’N1.1 Symbolische AusdrŪcke #right##topage("p1.1")# ’’’’N1.2 Elementare Funktionen #right##topage("p1.2")# ’’’’N1.3 Listen Notation #right##topage("p1.3")# ’’’’N1.4 Syntax und Semantik der Sprache #right##topage("p1.4")# ’’’’N2. Das LISP-Interpreter-System #right##topage("p2")# ’’’’’’N2.1 Die universelle LISP-Funktion "evalquote" #right##topage("p2.1")# ’’’’N2.2 Anwendungsregeln und Beispiele #right##topage("p2.2")# ’’’’N2.3 Variablen #right##topage("p2.3")# ’’’’N2.4 Konstanten #right##topage("p2.4")# ’’’’N2.5 Funktionen #right##topage("p2.5")# ’’’’N3. Erweitertes LISP #right##topage("p3")# ’’’’’’N3.1 Gequotete Parameter #right##topage("p3.1")# ’’’’N3.2 Funktionen mit beliebig vielen Parametern #right##topage("p3.2")# ’’’’N3.3 Funktionale Parameter #right##topage("p3.3")# ’’’’N3.4 PrŁdikate und boolesche Konstanten #right##topage("p3.4")# ’’’’N3.5 Unbenannte Atome #right##topage("p3.5")# ’’’’N3.6 Aufruf von EUMEL aus #right##topage("p3.6")# ’’’’N4. Detailbeschreibungen #right##topage("p4")# ’’’’’’N4.1 Grundfunktionen #right##topage("p4.1")# ’’’’N4.2 Weitere Funktionen sowie Eingabe und Ausgabe #right##topage("p4.2")# ’’’’N4.3 Interpreter #right##topage("p4.3")# ’’’’N4.4 Kommandoprozeduren #right##topage("p4.4")# ’’’’.1. Die Sprache LISP#goalpage("p1")# ’’’’’’’’’’^Die Sprache LISP ist primŁr fŪr die Symbolmanipulation entworfen. Sie wurde fŪr’’’’’’’’’’’’’’’Nsymbolische Berechnungen in verschiedenen Gebieten der kŪnstlichen Intelligenz^eingesetzt, u.a. fŪr Differential- und Integralrechnung, Schaltkreistheorie, MathematiŻ’’’’’’’sche Logik, Spiele, etc.. ’’’’^LISP ist eine formale mathematische Sprache. Daher ist es mŚglich, eine genaue und’’’’’’’’’’’’^vollstŁndige Beschreibung zu geben. Das ist der Sinn des ersten Abschnitts dieses’’’’’’’’’’’’’^Handbuchs. Andere Abschnitte werden MŚglichkeiten zum vorteilhaften Einsatz von’’’’’’’’’’’’’’’NLISP und die Erweiterungen, die die Benutzung erleichtern, beschreiben. ’’’’’’NLISP unterscheidet sich von den meisten Programmiersprachen in drei Punkten. ’, w :: loop nr + 1; ’’’’’’’’’’’’. FOR n FROM 1 UPTO value no DIV erh REP ’’’’’. x[n]:= value[z]; y[n]:= value[w]; ’’’’’’’’ z INCR erh; ’’’’’’’’’’’’’’ w INCR erh ’’’’’’’’’’’’’’’ m:= n * 10. zusatzinformationen ausgeben: TEXT CONST xn :: text(x[n]); ’ cursor (1, 17); put (x[1]); . cursor (81 - LENGTH xn, 17); ’’’’’’’’’’’’’’’ cursor (74, 1). ’’’’’’’’’’’’legende ausgeben: ’’’’’’’’’’’’INT VAR xph, yph; ’’’’’’’’’’’’ cursor (xp, yp); ’’’’’’’’’’’. put (plot param[loop nr].name + "="); ’’’’’’. put (plot param[loop nr].lower bound); ’’’’’. put (plot param[loop nr].upper bound); ’’’’’ get cursor (xph, yph); ’’’’’> draw line (xph * table[mode nr].zeichenbreite - 8, ’’’’’’’’N yph * table[mode nr].zeichenhoehe - table[mode nr].h offset, ’’’’> xph * table[mode nr].zeichenbreite + 24, ’’’’’’’’N yph * table[mode nr].zeichenhoehe - table[mode nr].h offset); ’’’> IF xp > 1 THEN line ELSE cursor (40, yph) FI; ’’’’’’’’’’’’’’ get cursor (xp, yp). ’’’’’’’TEXT VAR eingabe; ’’’’’’’’’’’’ cursor (30, 1); ’’’’’’’’’’. put (39*" "+"(+, p, e)?"); ’’’’’’’’’’’’’’’ inchar (eingabe); ’’’’’’’’ SELECT code (eingabe) OF ’. CASE 43 : eingabe:= "" ’’’’’’’’’’’’’. CASE 69, 101: ende:= TRUE; eingabe:= "" . CASE 80, 112: phasendiagramm ’’’’’’’’’’’ OTHERWISE out(""7"") ’’’’’ END SELECT ’’’’’’’’’’’’’’’ UNTIL eingabe = "" PER ’’’’’END PROC plot one page; ’’’’’’.PROC initialize plot (TEXT CONST h) : ’’’’’’’’INT VAR c :: 1, typ; ’’’’’’’’’TEXT VAR sym, num; ’’’’’’’’’’’ ende:= FALSE; ’’’’’’’’’’’’’’ pltper:= get pltper; ’’’’’’’. plot line no:= value page length; ’’’’’’’’’’ nextplot:= 0.0; ’’’’’’’’’’’’ value no:= 0; ’’’’’’’’’’’’’’ line no:= 0; ’’’’’’’’’’’’’’’ plot param no:= 0; ’’’’’’’’’ kopfzeile zerlegen. ’’’’’’’’kopfzeile zerlegen: ’’’’’’’’’’. next symbol (plot param[c].name); ’’’’’’’’ next symbol (sym, typ); ’’ IF sym = "(" THEN ’’’’’’’’ next symbol (num); ’’’’’ next symbol (sym, typ);  IF sym = ")" THEN ’’’’’’> plot param[c].name CAT ("(" + num + ")") ’’’’’’’’’’’’’> WHILE typ < 7 CAND NOT (sym = "(" COR sym = ",") REP ’’’’’ next symbol (sym, typ) ’. IF typ < 7 CAND sym = "(" THEN ’’’’’’’’’’’ REP next symbol (sym) ’’ UNTIL sym = "," PER; ’’’. REP next symbol (sym, typ) ’’’’’’’’’’’’’> UNTIL typ > 6 COR sym = "," COR sym = "/" PER ’’’’’’’’’’ UNTIL typ > 6 PER ’’’’’’’’’’END PROC initialize plot; ’’’’>PROC plot scale (TEXT CONST id, INT CONST scale pointer, ’’’’’> REAL CONST lower bound, upper bound, ’’’’’’’’> BOOL CONST l fixed scale, u fixed scale) : ’’ plot param no INCR 1; ’’’’’’’> plot param[plot param no].lower bound:= lower bound; ’’’’’’’’> plot param[plot param no].upper bound:= upper bound ’’’’’’’’’END PROC plot scale; ’’’’’’’’’.PROC new plot line (REAL CONST time) : ’’’’’’’ plt:= time >= nextplot; ’’’’ IF plt THEN  add (time); ’’’’’’’’’’’’’’ line no INCR 1; ’’’’’’’’’’ param no:= 0 ’’’’’’’’’’’’’ WHILE time >= nextplot REP ’ nextplot INCR pltper ’’’’’’END PROC new plot line; ’’’’’’PROC plot (REAL CONST r): ’’’’ IF plt THEN  param no INCR 1; ’’’’’’’’’> IF NOT ende CAND param no = plot param no AND ’’’’’’’’’’’’> line no = value page length THEN ’’’’’’’’ plot one page; ’’’’’’’’’ value no:= 0; ’’’’’’’’’’ line no:= 0 ’’’’’’’’’’’’END PROC plot; ’’’’’’’’’’’’’’’PROC add (REAL CONST r): ’’’’’ IF NOT ende THEN ’’’’’’’’’’’ value no INCR 1; ’’’’’’’’’ value[value no]:= r ’’’’’’END PROC add; NPROC spline (INT CONST n, m, s, PARAM CONST x, y, BIG VAR xr, yr): ’’’’’’’’’’’N{ Kubische Splineinterpolation 3. Grades; 2 fach Differenzierbar } ’’’’’N{ Quelle: Rita Schmidt, Hahn-Meitner-Institut fŪr Kernforschung Berlin } ’’’’’N{ "Spline-Prozeduren" (HMI-B 220) } ’’’’’N{ Umsetzung & Modifikation: Giffeler GD, 13.04.1988, 22.04.1988 } ’’’’’N{ n = Anzahl der StŪtzstellen } ’’’’’N{ m = Anzahl der zu berechnenden Funktionswerte } ’’’’’N{ s = Index des x-Startpunktes } ’’’’’N{ x = x-Werte der StŪtzstellen (linear steigend) } ’’’’’N{ y = y-Werte der StŪtzstellen } ’’’’’N{ xr = x-Werte der Punkte, an denen die Funktion berechnet werden } ’’’’’N{ soll } ’’’’’N{ yr = y-Werte der Punkte, an denen die Funktion berechnet werden } ’’’’’N{ soll } ’’’’’INT CONST nn :: n - 1; ’’’’’’>REAL CONST steps :: (real(nn) * (x[2] - x[1])) / real(m - 1); PARAM VAR q, au; ’’’’’’’’’’’’’.REAL VAR hi, hk, hk1, dij, dim1j; ’’’’’’’’’’’.INT VAR k, kk, j, m1, m2, m3; ’’’’’’’’’’’’’’ q[1]:= 0.0;  yr[1]:= x[s]; ’’’’’’’’’’’’’’> FOR j FROM 2 UPTO m REP yr[j]:= yr[j - 1] + steps PER; ’’’’’. FOR k FROM 2 UPTO nn REP block 1 PER; ’’’’’’. FOR kk FROM 2 UPTO nn REP block 2 PER; ’’’’’. FOR j FROM 1 UPTO m REP block 3 PER. ’’’’’’’N au[1]:= (y[3] - y[2] - y[2] + y[1]) / ((x[2] - x[1]) * (x[3] - x[2])); ’’’’’. au[n]:= (y[n] - y[nn] - y[nn] + y[n - 2]) / > ((x[n] - x[nn]) * (x[nn] - x[n - 2])). ’’’’’’’’’’’’’.INT CONST km1 :: k - 1, kp1 :: k + 1; ’’’’’’’’ hk:= x[k] - x[km1]; ’’’’’’’’ hk1:= x[kp1] - x[k]; ’’’’’’’> q[k]:= - hk1 / (hk * (q[km1] + 2.0) + 2.0 * hk1); ’’’’’’’’’N au[k]:= (hk * au[km1] - 6.0 * ((y[kp1] - y[k]) / hk1 - (y[k] - ’’’’’’’’’’’’’. y[km1]) / hk)) * q[k] / hk1. ’’’’’’’ k:= nn - kk + 2; ’’’’’’’’’’’. au[k]:= q[k] * au[k + 1] + au[k]. ’’’’’’’’’’. zeige benutzer das du noch lebst; ’’’’’’’’’’ IF yr[j] < x[1] THEN ’’’’’’’ ELIF yr[j] > x[n] THEN ’’’’’ m1:= n - 1; ’’’’’’’’’’’’’’ wiederholung ’’’’’’’’’’’’’ dij:= x[m2] - yr[j]; ’’’’’’’ hi:= x[m2] - x[m1]; ’’’’’’’’ dim1j:= x[m1] - yr[j]; ’’’’’N yr[j]:= 1.0 / 6.0 / hi * (au[m1] * dij ** 3 - au[m2] * dim1j ** 3 + ’’’’’’’’N (6.0 * y[m1] - hi ** 2 * au[m1]) * dij - (6.0 * y[m2] - hi ** 2 ’’’’ * au[m2]) * dim1j). wiederholung:  m3:= (m2 + m1) DIV 2; ’’’’> IF yr[j] >= x[m3] THEN m1:= m3 ELSE m2:= m3 FI ’’’’’’’’’’’ UNTIL m2 - m1 = 1 PER. ’’’’’.zeige benutzer das du noch lebst: ’’’’’’’’’’’’END PROC spline; ’’’’’’’’’’’’’PROC phasendiagramm: ’’’’’’’’’.REAL VAR l :: maxreal, u :: smallreal; ’’’’’’’BIG VAR x, y; INT VAR i, no1, no2; ’’’’’’’’’ IF plot param no > 1 THEN ’’ partnerwahl; ’’’’’’’’’’’’’. werte aus value uebertragen; ’’’’’’’’’’’’’. kopfzeile ("Phasendiagramm", TRUE); ’’’’’’> koordinatenkreuz (table[mode nr].x, table[mode nr].y, ’’’’N table[mode nr].breite, table[mode nr].hoehe+50); ’’’’’’’> draw picture (table[mode nr].x, table[mode nr].y, ’’’’’’’’N table[mode nr].breite, table[mode nr].hoehe+50, ’’’’’’’’’’’’. 1, i-1, l, u, x, y); ’’’’’’’. kopfzeile ("Phasendiagramm", FALSE); ’’’’’’’. FOR i FROM 1 UPTO plot param no REP ’’’’’’’’> putline (text(i, 3) + " = " + plot param[i].name) ’’’’’’’’. cursor (1, plot param no +5); ’’’’’’’’’’’’. put ("X-ACHSE:"); get (no1); ’’’’’’’’’’’’’. cursor (1, plot param no +5); ’’’’’’’’’’’’. put ("Y-ACHSE:"); get (no2) ’’’’’’’’’’’’’’> UNTIL no1 > 0 CAND no1 <= plot param no CAND ’’’’’’’’’’’’’’’> no2 > 0 CAND no2 <= plot param no CAND ’’’’’’’’’’’’’’’^Der erste Punkt liegt in der Natur der Daten. In der Sprache LISP haben alle Daten’’’’’’’’’’’’Ndie Form symbolischer AusdrŪcke, die wir verkŪrzend LISP-AusdrŪcke nennen werŻNden. LISP-AusdrŪcke haben keine LŁngenbegrenzung und eine verzweigte BaumŻ’’’’^struktur, so daū UnterausdrŪcke leicht isoliert werden kŚnnen. In LISP wird der meiste’’’’’’’’^Speicherplatz fŪr das Abspeichern der LISP-AusdrŪcke in Form von ListenstruktuŻ’’’’’’’’’’’’’’’ren gebraucht. ’’’’’’’’’’’’’’’^Der zweite wichtige Teil der Sprache LISP ist die Quellsprache, die festlegt, wie die’’’’’’’’’.LISP-AusdrŪcke verarbeitet werden sollen. ’’’’^Drittens kann LISP als LISP-AusdrŪcke geschriebene Programme interpretieren und’’’’’’’’’’’’’’’NausfŪhren. Deshalb kann man die Sprache analog zu Assemblersprachen und im’’’’NGegensatz zu den meisten anderen hŚheren Programmiersprachen einsetzen, um’’’’>Programme zu generieren, die gleich ausgefŪhrt werden sollen. .1.1 Symbolische AusdrŪcke #goalpage("p1.1")# ’.Ein elementarer Ausdruck ist ein Atom. ’’’’’’’NDefinition: Ein Atom ist eine Zeichenkette bestehend aus Groūbuchstaben und’’’ Ziffern. ’’’’’’’’’Beispiele: A  APFEL ’’’’’’’’’’’’ TEIL2 ’’’’’’’’’’’’> EXTRALANGEZEICHENKETTEAUSBUCHSTABEN ’’’’’’’’’’’’’’ A4B66XYZ2 ’’’’’’’’NDiese Symbole werden atomar genannt, weil sie als Ganzes aufgefaūt werden, dasNdurch die LISP-Funktionen nicht weiter geteilt werden kann. A, B, und AB haben^keinerlei Beziehung zueinander, auūer der, daū sie alle verschiedene Atome sind. ’’’’’’’’’’’’’NAlle LISP-AusdrŪcke werden aus Atomen und den Satzzeichen "(", ")" und "."’’’’Naufgebaut. Die grundlegende Operation zum Aufbau von LISP-AusdrŪcken ist die,’Nzwei LISP-AusdrŪcke zusammenzufassen, um einen grŚūeren herzustellen. Aus den’Nzwei Atomen A und B kann man so den LISP-Ausdruck (A.B) bilden. ’’’’’’’’’’’’’’^Definition: Ein LISP-Ausdruck ist entweder ein Atom, oder aus folgenden ElemenŻ’’’’’’’’’’’’’’’N ten in dieser Reihenfolge aufgebaut: Eine Śffnende Klammer, ein’’’N LISP-Ausdruck, ein Punkt, ein LISP-Ausdruck, eine schlieūende’’’’’N Klammer. Zwischen den Bestandteilen eines nichtatomaren LISP-AusŻ’N druck kŚnnen beliebig viele Leerzeichen eingestreut sein. ’’’’’’’’.Diese Definition ist rekursiv. ’’’’’’’’’’’’’’’Beispiele: ATOM ’’’’’’’’’’’’’ (A . B) ’’’’’’’’’’ (A . (B . C)) ’’’’ ((A1 . A2) . B) ’’. ((U . V) . (X . Y)) ’’’’’’’’’’’’’’. ((U . V) . (X . (Y . Z))) ’’’’’’’’^Um die Struktur solcher AusdrŪcke zu verdeutlichen, wird in diesem Handbuch oft’’’’’’’’’’’’’’’^eine graphische Darstellung gewŁhlt. In dieser Darstellung sind die Atome weiterhin’’’’’’’’’’’>Zeichenketten, statt der Paare steht jetzt aber ein Kasten ’’’. +-----+-----+ ’’’’’’’’’’’. | o | o | ’’’’’’’’’’’. +-----+-----+ ’’’’’’’’’’’^von dem zwei Zeiger ausgehen, die auf die graphische Darstellung des ersten bzw.’’’’’’’’’’’’’’.zweiten Elements des Paars zeigen. ’’’’’’’’’’’>Beispiele: (A . B) +-----+-----+ ’’’’’’> | o | o | ’’’’’’> +--+--+--+--+ ’’’’’’> | | ’’’’’’’’’> V V ’’’’’’’’’> A B ’’’’’’’’’> (A . (B . C)) +-----+-----+ ’’’’’’> | o | o | ’’’’’’> +--+--+--+--+ ’’’’’’> | | ’’’’’’’’’> V V ’’’’’’’’’> A +-----+-----+ > | o | o | > +--+--+--+--+ > | | ’’’> V V ’’’> B C ’’’> ((U . V) . (X . (Y . Z))) +-----+-----+ ’’’’’’’> | o | o | ’’’’’’’> +--+--+--+--+ ’’’’’’’> | | ’’’’’’’’’’> V V ’’’’’’’’’’> +-----+-----+ +-----+-----+ > | o | o | | o | o | > +--+--+--+--+ +--+--+--+--+ > | | | | ’’’> V V V V ’’’N U V X +-----+-----+ ’’’’’’’’’N | o | o | ’’’’’’’’’N +--+--+--+--+ ’’’’’’’’’N | | ’’’’’’’’’’’’N V V ’’’’’’’’’’’’N Y Z ’’’’’’’’’’’’.1.2 Elementare Funktionen #goalpage("p1.2")# NWir werden einige elementare Funktionen auf LISP-AusdrŪcken einfŪhren. Um die’NFunktionen von den LISP-AusdrŪcken zu unterscheiden, werden wir FunktionsnamenNmit Klein- statt Groūbuchstaben schreiben. Auūerdem steht der Funktionsname’’’^gefolgt von den Argumenten, auf die die Funktion angewendet werden soll, in KlamŻ’’’’’’’’’’’’’^mern eingeschlossen in einer Liste. Dabei sind die Argumente durch Blanks voneinŻ’’’’’’’’’’’’’ander getrennt. ’’’’’’’’’’’’’’^Die erste Funktion, die wir einfŪhren, heiūt "cons". Sie hat zwei Argumente und wird’’’’’’’’’’NdafŪr benutzt, LISP-AusdrŪcke aus kleineren LISP-AusdrŪcken aufzubauen. ’’’’’’> Funktionsaufruf: Ergebnis: ’’’’’’’’’’’’’’.Beispiele: (cons A B) = (A . B) > (cons (A . B) C) = ((A . B) . C) ’’’’’’’’’’> (cons (cons A B) C) = ((A . B) . C) ’’’’’’’’’’^Die Beispiele zeigen Funktionsaufrufe. Ein Funktionsaufruf ist eine Liste beginnend’’’’’’’’’’’^mit einem Funktionsnamen, gefolgt von Argumenten. Alle Funktionsaufrufe haben ein’’’’’’’’’’’’’NErgebnis, das im Fall von LISP-Funktionen immer ein LISP-Ausdruck ist. ’’’’’’’^In diesen Beispielen kommt nur die Funktion "cons" vor. Das letzte Beispiel ist ein’’’’’’’’’’’^Fall von Funktionsverkettung, das heiūt, als Argument steht ein Funktionsaufruf. Um’’’’’’’’’’’^das Ergebnis eines Funktionsaufrufs zu berechnen, das Funktionsaufrufe als ArguŻ’’’’’’’’’’’’’’^mente enthŁlt, muū man statt dieser Argumente die Ergebnisse dieser FunktionsaufruŻ’’’’’’’’’’’^fe einsetzen, so daū man den Łuūeren Funktionsaufruf in einen Aufruf ohne FunkŻ’’’’’’’’’’’’’’’.tionsaufrufe als Argumente umwandelt. ’’’’’’’’NBeispiel: (cons (cons A B) C) = (cons (A . B) C) = ((A . B) . C) ’’’’’’’’’’’’’NEs ist mŚglich, durch Verkettung der Funktion "cons" jeden LISP-Ausdruck aus’’.seinen atomaren Komponenten aufzubauen. ’’’’’’^Die folgenden beiden Funktionen tun das genaue Gegenteil von "cons": sie liefern’’’’’’’’’’’’’’>die UnterausdrŪcke eines gegebenen LISP-Ausdrucks. ’’’’’’’’’’’NDie Funktion "head" hat ein Argument. Ihr Wert ist der erste Unterausdruck desNzusammengesetzen Arguments. Der "head" eines Atoms ist nicht definiert. ’’’’’’.Beispiele: (head (A . B)) = A ’’’’’’’’. (head (A . (B1 . B2 no1 <> no2 PER. ’’’’’’werte aus value uebertragen: ’.INT CONST erh :: plot param no + 1; ’’’’’’’’’’.INT VAR n1 :: no1 + 1, n2 :: no2 + 1; ’’’’’’’’. FOR i FROM 1 UPTO value no DIV erh REP ’’’’’ x[i]:= value[n1]; ’’’’’’’’ y[i]:= value[n2]; ’’’’’’’’ n1 INCR erh; ’’’’’’’’’’’’’ n2 INCR erh ’’’’’’’’’’’’’’ cursor (1, 23); ’’’’’’’’’’’’> putline ("X-Achse: " + plot param[no1].name); ’’’’’’’’’’’’’’> out ("Y-Achse: " + plot param[no2].name) ’’’’’’’’’’’’’’’END PROC phasendiagramm; ’’’’’>PROC draw picture (INT CONST x, y, xb, yb, schraffur, m, ’’’’’> REAL VAR lower bound, upper bound, ’’’’’’’’. BIG CONST xr, yr): ’’’’’’’’N{ Ausgabe einer Funktionskurve } ’’’’’N{ Autor: Giffeler GD, 22.04.1988, 27.04.1988 } ’’’’’N{ x = X-Position (oben links = 0) } ’’’’’N{ y = Y-Position (oben links = 0) } ’’’’’N{ xb = Ausgabebreite } ’’’’’N{ yb = AusgabehŚhe } ’’’’’N{ schraffur = Linienschraffur (1 - 10) } ’’’’’N{ m = Anzahl der Funktionswerte } ’’’’’N{ lower bound = Unterer Grenzwert (maxreal wenn Grenze beliebig) } ’’’’’N{ upper bound = Oberer Grenzwert (smallreal wenn Grenze beliebig) } ’’’’’N{ xr = Durch SPLINE erzeugte X-Werte } ’’’’’N{ yr = Durch SPLINE erzeugte Y-Werte } ’’’’’NROW 10 INT CONST linienarten :: ROW 10 INT: (-1, -256, 3855, -240, ’’’’’’’’’’’N 21845, -1, -1, -1, -1, -1); ’’’’’.REAL VAR lbx :: maxreal, ubx :: smallreal; ’’’. minimum und maximum fuer x und y berechnen; . abmessungsparameter umwandeln; ’’’’’’’’’’’’’ spannweite errechnen; ’’’’’’ linienschraffur bestimmen; ’ eine funktion ausgeben. ’’’’.minimum und maximum fuer x und y berechnen: ’’ FOR i FROM 1 UPTO m REP ’’’’. lower bound:= min (lower bound, yr[i]); ’’. upper bound:= max (upper bound, yr[i]); ’’ lbx:= min (lbx, xr[i]); ’’ ubx:= max (ubx, xr[i]) ’’’.abmessungsparameter umwandeln: ’’’’’’’’’’’’’’’>REAL CONST xpos :: real (x), ypos :: real (y), ’’’’’’’’’’’’’’’> breite :: real (xb), hoehe :: real (yb). ’’’’’’’’’’spannweite errechnen: ’’’’’’’’>REAL CONST sy :: (upper bound - lower bound) / hoehe, ’’’’’’’’. sx :: (ubx - lbx) / breite. ’’’’’’’linienschraffur bestimmen: ’’’> draw linetype (linienarten [abs(schraffur) MOD 10]). ’’’’’’’eine funktion ausgeben: ’’’’’’. move (xpos + (xr[1] - lbx) / sx, ’’’’’’’’’’’> ypos + hoehe - (yr[1] - lower bound) / sy); ’’’’’’’’’’ FOR i FROM 2 UPTO m REP ’’’’. drawto (xpos + (xr[i] - lbx) / sx, ’’’’’’’> ypos + hoehe - (yr[i] - lower bound) / sy) ’’’’’’’END PROC draw picture; ’’’’’’’>PROC koordinatenkreuz (INT CONST nx, ny, breite, hoehe): ’’’’’ pfeil oben;  pfeil rechts. ’’’’’’’’’’’’’’INT CONST x :: nx - 1, ’’’’’’’ y :: ny - 10, ’’’’’’ b :: breite + 21, ’’ h :: hoehe + 11. ’’’ draw linetype (-1); ’’’’’’’’ draw line (x, y, x, y + h);  draw to (x + b, y + h). ’’’’. draw line (x - 3, y + 4, x, y); ’’’’’’’’’’’’ draw to (x + 3, y + 4). ’’’’pfeil rechts: > draw line (x + b - 5, y + h - 2, x + b, y + h); ’’’’’’’’’’’’. draw to (x + b - 5, y + h + 2) ’’’’’’’’’’’’’END PROC koordinatenkreuz; ’’’>PROC x raster (INT CONST nx, ny, breite, hoehe, anzahl): ’’’’’.REAL CONST y :: real (ny + hoehe + 2), ’’’’’’’> w :: real (breite) / real (anzahl); ’’’’’’’’’’’’’’’REAL VAR s :: real (nx); ’’’’’. FOR i FROM 1 UPTO anzahl REP ’’’’’’’’’’’’’’’ s INCR w;  plot (s, y) ’’’’’’’’’’’’’’END PROC x raster; ’’’’’’’’’’’PROC configurate plot: ’’’’’’’.BOOL CONST cmd :: command dialogue; ’’’’’’’’’’ command dialogue (TRUE); ’’’. bildschirmausgabe zur auswahl ’’’’’’’’’’’’> UNTIL (mode nr <= max devices AND mode nr > 0) CAND ’’’’’’’’. yes ("Eingabe richtig") PER; ’’’’’’’’’ command dialogue (cmd). ’’’’.bildschirmausgabe zur auswahl: ’’’’’’’’’’’’’’’> putline ("CONFIGURATIONSTABELLE DYNAMO GRAFIK"); ’’’’’’’’’’’. FOR i FROM 1 UPTO max devices REP ’’’’’’’’’’> putline (text(i)+" -- "+table[i].bezeichnung) ’’’’’’’’’’’’ put ("Modus:"); ’’’’’’’’’’’’ get (mode nr) ’’’’’’’’’’’’’’END PROC configurate plot; ’’’>PROC kopfzeile (TEXT CONST message, BOOL CONST grafik): ’’’’’’> IF grafik THEN graphmode (table[mode nr].on) ’’’’’’’’’’’’’’’. ELSE graphmode (table[mode nr].off) FI; ’’’’ out (""1""); . cursor (79 - LENGTH message, 1); ’’’’’’’’’’’ out (message) ’’’’’’’’’’’’’’END PROC kopfzeile; ’’’’’’’’’’PROC end of program : ’’’’’’’’N IF NOT ende CAND (value no DIV (plot param no + 1)) > 2 THEN ’’’’’’’’’’’’’’’ plot one page ’’’’’’’’’’’’END PROC end of program; ’’’’’>BOOL PROC stop request: ende END PROC stop request ’’’’’’’’’’’.END PACKET dynamo plotter plus ’’’’’’’’’’’’’’’ out ("DYNAMO 3.3+"); ’’’’’’’N out (""1""); (* C.S. 21.07.88 *) ’’’’’’’.(* Önder.: Christian Szymanski *) ’’’’’’’’’.(* 21.07.88 *) ’’’’’’’’’.BOOL CONST cmd :: command dialogue; ’’’’’’’’’’END PROC configurate plot; ’’’mode nr := 1. (* CGA *)’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ "15"TAB1"14"’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń’’?ž’’’’’›ŻģnöĆ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1 a’’’’abs’’’’’’’’’’’’arctan’’’’’’’’’arctand’’’’’’’’cos’’’’’’’’’’’’cosd’’’’’’’’’’’exp’’’’’’’’’’’’floor’’’’’’’’’’frac’’’’’’’’’a’’’’’’’’’’’’’’random’’’’’’’’’ln’’’’’’’’’’’’’log2’’’’’’’’’’’log10’’’’’’’’’’max’’’’’’’’’’’’min’’’’’’’’’’’’power’’’’’’’’’’round’’’’’’’’’’sin’’’’’’’’’’’’sind’’’’’’’’’’’sqrt’’’’’’’’’’’tan’’’’’’’’’’’’tand’’’’’’’’’’’clip’’’’’’’’’’’fifge’’’’’’’’’’switch’’’’’’’’’fifze’’’’’’’’’’noise’’’’’’’’’’normrn’’’’’’’’’pulse’’’’’’’’’’ramp’’’’’’’’’’’sclprd’’’’’’’’’step’))) = A ’’’’’’’’. (head ((A1 . A2) . B)) = (A1 . A2) > (head A) ist nicht definiert ’’’’’’^Die Funktion "tail" hat ebenfalls ein Argument, und sie liefert das Argument bis auf’’’’’’’’’’dessen "head". ’’’’’’’’’’’’’’’.Beispiele: (tail (A . B)) = B ’> (tail (A . (B1 . B2))) = (B1 . B2) ’’’’’’’’’. (tail ((A1 . A2) . B)) = B ’N (tail A) ist nicht definiert ’’’’’’’’’’’’’’’. (head (tail (A . (B1 . B2)))) = B1 N (head (tail (A . B))) ist nicht definiert ’’’’’’’’’’’’’’’. (head (cons A B)) = A ’NEs ist bei jedem LISP-Ausdruck mŚglich, durch eine geeignete Verkettung von’’’>"head" und "tail" zu jedem Atom im Ausdruck zu gelangen. ’’’’’^Wenn "x" und "y" irgendwelche LISP-AusdrŪcke reprŁsentieren, gelten die folgenŻ’’’’’’’’’’’’’’’den Gleichungen immer: ’’’’’’’. (head (cons x y)) = x ’’’’’’’’’’’’’. (tail (cons x y)) = y ’’’’’’’’’’’’’^Auūerdem gilt die folgende Gleichung fŪr jeden nichtatomaren LISP-Ausdruck "z": ’’’’’’’’’’’’’’. (cons (head z) (tail z)) = z ’’’’’’^Die Symbole "x", "y" und "z", die wir in diesen Gleichungen benutzt haben, nennt’’’’’’’’’’’’’’^man Variablen. In LISP werden Variable benutzt, um LISP-AusdrŪcke zu reprŁsentieŻ’’’’’’’’’’’’’Nren, und zwar reprŁsentiert eine Variable in einer Gleichung immer denselben’’NLISP-Ausdruck. Variablennamen werden wie Funktionsnamen gebildet, d.h. sie’’’’.kŚnnen Kleinbuchstaben und Ziffern enthalten. ^Eine Funktion, deren Wert "wahr" oder "falsch" sein kann, wird PrŁdikat genannt. In’’’’’’’’’’’NLISP werden die Werte "wahr" und "falsch" durch die Atome "T" (true) und "F"’’^(false) vertreten. Ein LISP-PrŁdikat ist also eine Funktion, deren Wert entweder "T"’’’’’’’’’’oder "F" ist. ^Das PrŁdikat "eq" ist ein Gleichheitstest fŪr Atome. Es ist bei nicht atomaren ArguŻ’’’’’’’’’’menten nicht definiert. ’’’’’’.Beispiele: (eq A A) = T ’’’’’’’’’’’. (eq A B) = F ’’’’’’’’’’’> (eq A (A . B)) ist nicht definiert ’’’’’’’’’’> (eq (A . B) B) ist nicht definiert ’’’’’’’’’’> (eq (A . B) (A . B)) ist nicht definiert ’’’’’’’’’’^Das PrŁdikat "atom" hat das Ergebnis ("liefert") "T", wenn sein Argument atomar ist,’’’’’’’’’’>und "F", wenn sein Argument zusammengesetzt ist. ’’’’’’’’’’’’’.Beispiele: (atom EXTRALANGEZEICHENKETTE) = T ’. (atom (U . V)) = F ’. (atom (head (U . V))) = T ’.1.3 Listen-Notation #goalpage("p1.3")# ’’’’’’’NAlle LISP-AusdrŪcke, die wir bisher gesehen haben, waren in Punkt-Notation’’’’^geschrieben. Normalerweise ist es allerdings einfacher, statt der vielen Punkte und’’’’’’’’’’’^Klammern Listen von LISP-AusdrŪcken zu schreiben, etwa in der Art (A B C XYZ). ’’’’’’’’’’’’’’’>LISP bietet eine solche Alternative zur Punkt-Notation an: ’’’NDefinition: Die Liste (a1 a2 ... an) ist Łquivalent zum LISP-Ausdruck ’’’’’’’’> (a1 . (a2 . (... . (an . NIL) ... ))). ’’’’’’’’’’’.Graphisch ausgedrŪckt heiūt das: ’’’’’’’’’’’’’ +-----+-----+ ’’’’’’’’’’’’ | o | o | ’’’’’’’’’’’’ +--+--+--+--+ ’’’’’’’’’’’’ | | ’’’’’’’’’’’’’’’ V V ’’’’’’’’’’’’’’’ a1 +-----+-----+ ’’’’’ | o | o | ’’’’’ +--+--+--+--+ ’’’’’ | | ’’’’’’’’ V V ’’’’’’’’ a2 ’’’’’’’’’’’’’’ . ’’’’ . ’’ . . +-----+-----+ . | o | o | . +--+--+--+--+ . | | ’’’. V V ’’’. an NIL ’’>Oft werden wir fŪr Listen auch die graphische Form ’’’’’’’’’’’> +-----+-----+ +-----+-----+ +-----+-----+ ’’’’N | o | o--+-->| o | o--+--> . . . | o | o--+--> NIL ’’’’’’’’’’’’’> +--+--+-----+ +--+--+-----+ +--+--+-----+ ’’’’> | | | ’’’’’’’’’’’’’> V V V ’’’’’’’’’’’’’> a1 a2 an ’’’’’’’’’’’’’^Aus der Graphik wird deutlich, daū NIL als eine Art Abschluūmarkierung fŪr Listen’’’’’’’’’’’’’^Eine leere Liste wird durch das Atom NIL dargestellt. Das PrŁdikat "null" liefert "T",’’’’’’’’>wenn sein Argument eine leere Liste ist, sonst "F". ’’’’’’’’’’Beispiele: (null NIL) = T ’’ (null () ) = T ’’ (null (A B)) = F ’’^Die Listenelemente kŚnnen selbst wieder Listen oder Paare in Punkt-Notation sein,’’’’’’’’’’’’’>so daū Listen- und Punkt-Notation beliebig kombinierbar sind. . Beispiele: (A B C) = (A . (B . (C . NIL))) ’> +-----+-----+ +-----+-----+ +-----+-----+ ’’’N | o | o--+-->| o | o--+-->| o | o--+--> NIL ’’’’’’’’’’’’> +--+--+-----+ +--+--+-----+ +--+--+-----+ ’’’> | | | ’’’’’’’’’’’’> V V V ’’’’’’’’’’’’> A B C ’’’’’’’’’’’’> ((A . B) C) = ((A . B) . (C . NIL)) ’’’’’’’’’’’’’’’. +-----+-----+ +-----+-----+ ’’’> | o | o--+-->| o | o--+--> NIL ’’’’’’’’’’’’. +--+--+-----+ +--+--+-----+ ’’’. | | ’’’’’’’’’’’’. V V ’’’’’’’’’’’’. +-----+-----+ C ’’’’’’’’’’’’ | o | o | ’’’ +--+--+--+--+ ’’’ | | ’’’’’’ V V ’’’’’’ A B ’’’’’’> ((A B) C) = ((A . (B . NIL)) . (C . NIL)) ’’’’’’’’’> +-----+-----+ +-----+-----+ ’’N | o | o--+--------------->| o | o--+--> NIL ’’’’’’’’’’’> +--+--+-----+ +--+--+-----+ ’’> | | ’’’’’’’’’’’> | V ’’’’’’’’’’’> V C ’’’’’’’’’’’> +-----+-----+ +-----+-----+ ’’’’’’’’’’’’’’’> | o | o--+-->| o | o--+--> NIL ’’’’’’’’> +--+--+-----+ +--+--+-----+ ’’’’’’’’’’’’’’’. | | ’’’’’’’’. V V ’’’’’’’’. A B ’’’’’’’’ (A) = (A . NIL) ’’’. +-----+-----+ ’’’’’’’’’’’’’’’. | o | o--+--> NIL ’’’’’’’’. +--+--+-----+ ’’’’’’’’’’’’’’’ | ’’’’’’’’ V ’’’’’’’’ A ’’’’’’’’. ((A)) = ((A . NIL) . NIL) ’’’’’’’’’. +-----+-----+ ’’’’’’’’’’’’’’’. | o | o--+--> NIL ’’’’’’’’. +--+--+-----+ ’’’’’’’’’’’’’’’ | ’’’’’’’’ V ’’’’’’’’. +-----+-----+ ’’’’’’’’’’’’’’’. | o | o--+--> NIL ’’’’’’’’. +--+--+-----+ ’’’’’’’’’’’’’’’ | ’’’’’’’’ V ’’’’’’’’ A ’’’’’’’’^Es ist sehr hilfreich, mit den Ergebnissen der elementaren Funktionen vertraut zu’’’’’’’’’’’’’^sein, wenn diese Listen als Argumente erhalten. Zwar kŚnnen die Ergebnisse notfalls’’’’’’’’’’’Nimmer durch Ųbersetzung in Punkt-Notation bestimmt werden, abe’’’’’’’’’’sumv’’’’’’’’’’’sum’’’’’’’’’’’’table’’’’’’’’’’tabhl’’’’’’’’’’delay1’’’’’’’’’in’’’’’’’’’’’’’del’’’’’’’’’’’’delay1’’’’’’’’’lv’’’’’’’’’’’’’delay3’’’’’’’’’in’’’’’’’’’’’’’del’’’’’’’’’’’’dl’’’’’’’’’’’’’lv3’’’’’’’’’’’’rt2’’’’’’’’’’’’lv2’’’’’’’’’’’’rt1’’’’’’’’’’’’lv1’’’’’’’’’’’’delay3’’’’’’’’’delay3p’’’’’’’’in’’’’’’’’’’’’’del’’’’’’’’’’’’ppl’’’’’’’’’’’’delay3p’’’’’’’’lv3’’’’’’’’’’’’rt2’’’’’’’’’’’’lv2’’’’’’’’’’’’rt1’’’’’’’’’’’’lv1’’’’’’’’’’’’dl’’’’’’’’’’’’’ppl’’’’’’’’’’’’dlinf3’’’’’’’’’in’’’’’’’’’’’’’del’’’’’’’’’’’’dlinf3’’’’’’’’’lv2’’’’’’’’’’’’lv1’’’’’’’’’’’’dl’’’’’’’’’’’’’smooth’’’’’’’’’in’’’’’’’’’’’’’del’’’’’’’’’’’’smooth’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’del*in’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’$dl*in’’’’’’’’’’’’’’’’’’’’’’’$lv3’’’’’’’’’’’’’’’’’’’’’’’’’$lv3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’$dl*in’’’’’’’’’’’’’’’’’’’’’’’$lv3’’’’’’’’’’’’’’’’’’’’’’’’’$lv3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’in’’’’’’’’’’’’’in’’’’’’’’’’’’’in’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’in’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’rr’’’’’’’’’’’’’rr’’’’’’’’’’’’’rr’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’rrrr’’’’’’’’’’’rrrr’’’’’’’’’’’rrr’’’’’’’’’’’’rrr’’’’’’’’’’’’r’’’’’’’’’’’’’’rr’’’’’’’’’’’’’rrr’’’’’’’’’’’’rr’’’’’’’’’’’’’trrtr’’’’’’’’’’rr’’’’’’’’’’’’’trr’’’’’’’’’’’’t’’’’’’’’’’’’’’trrrr’’’’’’’’’’trrrr’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ $lv.k/del’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’del/3’’’’’’’’”’’’’’’’’’’’’’’ $lv2.k/$dl.k’Į’’’’’’’’’’’’’’ $lv1.k/$dl.k’į’’’’’’’’’’’’’’ $lv3.k/$dl.k’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ $lv3.k/$dl.k’ ’’’’’’’’’’’’’’ $lv2.k/$dl.k’! ’’’’’’’’’’’’’’ $lv1.k/dl.k’’A ’’’’’’’’’’’’’’del/3’’’’’’’’a ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’#’’’’’’’’’’’± ’’’’’’’’’’’’į ’’’’’’’’’’’’’’del/3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’     ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’  "$&(()’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ %&'(*+,4./012-7;56@C=>ABG’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’%%%%*********44444444444@@@@@@GGG’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’?7’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r ein direktes’’VerstŁndnis ist einfacher. ’’’Beispiele: (head (A B C)) = A . (tail (A B C)) = (B C) ’’’’’’’’’’’’N (Daher auch die Namen "head" und "tail"! Frei Ūbersetzt heiūen die’> beiden Funktionen "anfang" und "rest".) ’’’’’’’’’’. (cons A (B C)) = (A B C) ’’’’’’’’’’>1.4 Syntax und Semantik der Sprache #goalpage("p1.4")# ’’’’’’’^Wir haben bisher einen Datentyp (LISP-AusdrŪcke) und fŪnf elementare Funktionen’’’’’’’’’’’’’’’^eingefŪhrt. Auūerdem haben wir die folgenden Eigenschaften der Sprache beschrieŻ’’’’’’’’’’’’’’N1. Funktions- und Variablennamen werden wie die Namen von Atomen geschrieŻ’’’’N ben, auūer, daū dafŪr Klein- statt Groūbuchstaben verwendet werden. ’’’’’’’^2. Die Argumente einer Funktion folgen dieser in der Liste. Eine solche Liste von’’’’’’’’’’’’’N Funktion und folgenden Argumenten heiūt Funktionsaufruf und hat einen LISP- Ausdruck als Ergebnis. ’’’’^3. Funktionen kŚnnen dadurch verkettet werden, daū ein Argument aus einem FunkŻ’’’’’’’’’’’’’’’^ tionsaufruf selbst wieder ein Funktionsaufruf ist, dessen Argumente selbst wieder’’’’’’’’’’. Funktionsaufrufe sein kŚnnen, usw. ’’’’’’’’>Diese Regeln erlauben es, Funktionsdefinitionen wie ’’’’’’’’’’. (third x) = (head (tail (tail x))) ’’’’’’’’Nzu schreiben. "third" holt das dritte Element aus einer Liste. ’’’’’’’’’’’’’’’^Die Klasse der Funktionen, die man auf diese Weise bilden kann, ist ziemlich beŻ’’’’’’’’’’’’’’^schrŁnkt und nicht sehr interessant. Eine viel grŚūere Funktionenklasse kann man mit’’’’’’’’’’^Hilfe des bedingten Ausdrucks schreiben; es handelt sich dabei um eine MŚglichkeit,’’’’’’’’’’’>Verzweigungen in Funktionsdefinitionen einzubauen. ’’’’’’’’’’’.Ein bedingter Ausdruck hat die Form ’’’’’’’’’’. (cond (p1 a1) (p2 a2) ... (pn an) ) ’’’’’’’’^Jedes pi ist ein Ausdruck, dessen Wert "T" oder "F" ist, also ein PrŁdikat. Die ai’’’’’’’’’’’’.sind beliebige LISP-AusdrŪcke. ’’’’’’’’’’’’’’’^Die Bedeutung eines bedingten Ausdrucks ist folgende: Wenn p1 wahr ist, ist a1 der’’’’’’’’’’’’^Wert des ganzen Ausdrucks. Wenn p1 falsch ist, wird getestet, ob p2 wahr ist; wenn’’’’’’’’’’’’^das der Fall ist, ist a2 der Wert des Ausdrucks. Die pi werden also von links nach’’’’’’’’’’’’^rechts durchgegangen, bis ein wahrer Ausdruck gefunden ist; das zugehŚrige ai ist’’’’’’’’’’’’’^dann der Wert des bedingten Ausdrucks. Wenn kein wahres pi gefunden ist, ist der’’’’’’’’’’’’’’.bedingte Ausdruck nicht definiert. ’’’’’’’’’’’^Jedes pi oder ai kann selbst wieder ein LISP-Ausdruck, ein Funktionsaufruf oder ein’’’’’’’’’’’bedingter Ausdruck sein. ’’’’’>Beispiel: (cond ((eq (head x) A) (cons B (tail x))) (T x) ) ’’NDas PrŁdikat "T" ist immer wahr. Man liest es am besten als "SONST". Den Wert’Ndieses Ausdruck erhŁlt man, wenn man "head" von x durch B ersetzt, wenn der’’’>gerade gleich mit A ist, und sonst erhŁlt man x. ’’’’’’’’’’’’’^Der Hauptzweck von bedingten AusdrŪcken ist die rekursive Definition von FunktioŻ’’’’’’’’’’’’’.Beispiel: (firstatom x) = (cond ((atom x) x) ’> ( T (firstatom (head x))) ’’’ ) ’’^Dies Beispiel definiert die Funktion "firstatom", die das erste Atom jedes LISP-AusŻ’’’’’’’’’’^drucks bestimmt. Diesen Ausdruck kann man so lesen: wenn "x" ein Atom ist, ist "x"’’’’’’’’’’’’^selbst die Antwort; sonst muū "firstatom" auf "head" von "x" angewandt werden. ’’’’’’’’’’’’’’’^Wenn also "x" ein Atom ist, wird der erste Zweig gewŁhlt, der "x" liefert; sonst wird’’’’’’’’’Nder zweite Zweig "firstatom (head x)" gewŁhlt, weil "T" immer wahr ist. ’’’’’’^Die Definition von "firstatom" ist rekursiv, d.h. "firstatom" ist mit durch sich selbst’’’’’’’Ndefiniert. Allerdings, wenn man immerzu den "head" von irgendeinem LISP-AusŻ’’^druck nimmt, errreicht man irgendwann ein Atom, so daū der Prozeū immer wohldeŻ’’’’’’’’’’’’’’’^Es gibt rekursive Funktionen, die nur fŪr bestimmte Argumente wohldefiniert sind, fŪr’’’’’’’’’Nbestimmte andere dagegen unendlich rekursiv. Wenn das EUMEL-LISP-System’’’’’’’^einen Funktionsionsaufruf mit einer solchen Funktion und "kritischen" Argumenten’’’’’’’’’’’’’’^interpretiert, gerŁt es in unendliche Rekursion, bis entweder der zur VerfŪgung steŻ’’’’’’’’’’Nhende Platz im LISP-Heap ausgeschŚpft ist (im Heap werden die LISP-AusdrŪcke’’^gespeichert) oder bis der Laufzeitstack ŪberlŁuft (der Laufzeitstack ist ein normalerŻ’’’’’’’’>weise unsichtbarer Bestandteil des ELAN-Systems). ’’’’’’’’’’’’^Wir werden jetzt die Berechnung von "(firstatom ((A . B) . C))" durchfŪhren. ZunŁchst’’’’’’’’’^ersetzen wir die Variable x in der Funktionsdefinition durch ((A . B) . C) und erhalten ’’’’’’ (firstatom ((A . B) . C)) = ’> (cond ( (atom ((A . B) . C)) ((A . B) . C) ) ’’’’’’’’’’’’> ( T (firstatom (head ((A . B) . C))) ) ’’’’’’’’’’’’>((A . B) . C) ist kein Atom, deshalb wird daraus ’’’’’’’’’’’’’N = (cond ( T (firstatom (head ((A . B) . C)))) ) ’’’’’’’’’’’’> = (firstatom (head ((A . B) . C)) ) ’’’’’’’’. = (firstatom (A . B)) ’’’’’’^An diesem Punkt mŪssen wir wieder die Definition von "firstatom" benutzen, diesmal’’’’’’’’’’’’.aber fŪr "x" Ūberall "(A . B)" einsetzen. ’’’’> (firstatom (A . B)) = (cond ( (atom (A . B)) (A . B) ) ’’’’’> (T (firstatom (head (A . B))) )  ) ’’’’N = (cond (T (firstatom (head (A . B))) ) ) ’’’’’’’’’’’’’’> = (firstatom (head (A . B)) ) ’’’’’’’’’’. = (firstatom A) ’’’’’’’’. = (cond ((atom A) A) ’’’> (T (firstatom (head A)) ) ’’’’’’ ) ’’’’ = A ’’’’NWenn in den bedingten AusdrŪcken statt der LISP-AusdrŪcke arithmetische AusŻ’’NdrŪcke verwendet wŪrden, kŚnnte man damit auch numerische Rechenvorschriften’’>definieren, wie z.B. den Betrag einer Zahl durch ’’’’’’’’’’’’’. (abs x) = (cond ((x < 0) -x) (T x) ) ’’’’’’’oder die FakultŁt durch ’’’’’’ (fak n) = (cond ((n = 0) 1) . (T (x * (fak (n - 1)))) ’’’’ ) >Die FakultŁt terminiert bei negativen Argumenten nicht. ’’’’’’^Es ist bei den meisten Mathematikern (auūer den Logikern) Ūblich, das Wort "FunkŻ’’’’’’’’’’’’’^tion" nicht prŁzise zu verwenden und auf AusdrŪcke wie "2x+y" anzuwenden. Da wir’’’’’’’’’’’’’’NAusdrŪcke benutzen werden, die Funktionen reprŁsentieren, benŚtigen wir eine’’^Notation, die Funktionen und AusdrŪcke unterscheidet. DafŪr ist die Lambda-NotaŻ’’’’’’’’’’’’’’.tion von Alonzo Church geeignet. ’’’’’’’’’’’’’^"f" soll ein Ausdruck sein, der fŪr eine Funktion zweier ganzzahliger Variablen steht.’’’’’’’’>Dann sollte es sinnvoll sein, den Funktionsaufruf ’’’’’’’’’’’’ (f 3 4) ’’’’’’’’’’’’’^zu schreiben, so daū man dadurch den Wert dieses Funktionsaufrufs berechnen kann;’’’’’’’’’’’’’.z.B. kŚnnte "(summe 3 4) = 7" gelten. ’’’’’’’’NWenn man "2x + y" als Funktion ansieht, kann man den Funktionsaufruf ’’’’’’’’’ ((2x + y) 3 4) ’’’’’’’^schreiben. Der Wert dieses Ausdrucks ist aber nicht eindeutig bestimmt, denn es ist’’’’’’’’’’’^Ūberhaupt nicht klar, ob nun "2*3+4" oder 2*4+3" gemeint ist. Eine Zeichenfolge’’’’’’’’’’’’’’’^wie "2x + y" werden wir deshalb Ausdruck und nicht Funktion nennen. Ein Ausdruck’’’’’’’’’’’’’’Nkann in eine Funktion umgewandelt werden, indem man die Zuordnung von ArgumenŻ^ten und Variablen festlegt. Bei "2x + y" kŚnnte man beispielsweise festlegen, daū’’’’’’’’’’’’’N"x" immer das erste und "y" immer das zweite Argument sein soll. ’’’’’’’’’’’’’NWenn "a" ein Ausdruck in den V’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’I?"J 8  !FH #$)ED93<:J%’’’’’’’’’’’’initializerandom’’’’’’’’’’’’’’$lv.j+dt*(in.jk-delay1.j)’’’’’$lv3.j+dt*($rt2.jk-delay3.j)’’$lv2.j+dt*($rt1.jk-$rt2.jk)’’’$lv1.j+dt*(in.jk-$rt1.jk)’’’’’$lv3.j+dt*($rt2.jk-delay3p.j)’$lv2.j+dt*($rt1.jk-$rt2.jk)’’’$lv1.j+dt*(in.jk-$rt1.jk)’’’’’$lv3.k+$lv2.k+$lv1.k’’’’’’’’’’.dlinf3.j+dt*($lv2.j-dlinf3.j)/$dl.j’’’’’’’’’’’.$lv2.j+dt*($lv1.j-$lv2.j)/$dl.j’’’’’’’’’’’’’’’$lv1.j+dt*(in.j-$lv1.j)/$dl.j’.smooth.j+dt*(in.j-smooth.j)/del’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’dyn.rts’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’'ų’’’’’’’’’’’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±©a€ė’’zw @’’’’ @ @{M’ž’’’’’’dyn.rts’’’’’’’’’’’’’’’’’’’’’’z’’’’’’’’’’’’’’’’’’’’ PACKET rts’’’’’’’’’’’a€’:’’’’’’’’’’’’’’’’’’’”€’8’’’’’’’’’’’’’’’’’’’ဒI’’’’’’’’’’’’’’’’’’’1’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’B’’’’’’’’’’’’’’’’’’’‚’B’’’’’’’’’’’’’’’’’’’a‚’B’’’’’’’’’’’’’’’’’’’±‚’B’’’’’’’’’’’’’’’’’’’ƒ’B’’’’’’’’’’’’’’’’’’’Qƒ’B’’’’’’’’’’’’’’’’’’’”ƒ’B’’’’’’’’’’’’’’’’’’’ńƒ’B’’’’’’’’’’’’’’’’’’’A„’B’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘„’’’’’’’’’’’’’’’’’’’’Į„’’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’!…’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A…’3’’’’’’’’’’’’’’’’’’’…’4’’’’’’’’’’’’’’’’’’’Į…’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń…’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’1†’5’’’’’’’’’’’’’’’’’’’q†’)’’’’’’’’’’’’’’’’’’’”†’$’’’’’’’’’’’’’’’’’’’ц’/’’’’’’’’’’’’’’’’’’’ariablen x1, ... xn ist, dann ist ’’’’’’’’’’’’’’. (lambda (x1 ... xn) a) ’’’’’’’’’’’’’’’^eine Funktion mit n Argumenten. Den Wert der Funktionsaufrufe mit dieser Funktion’’’’’’’’’’’’’(also der AusdrŪcke der Form ’. ((lambda (x1 ... xn) a) (b1 ... bn)) ’^ erhŁlt man, indem man die Variablen x1 ... xn durch die n Argumente des Aufrufs’’’’’’’’’’’’’’ersetzt. Beispielsweise ist ’’> ((lambda (x y) (2*x + y)) (3 4)) = 2*3 + 4 = 10 , ’’’’> ((lambda (y x) (2*x + y)) (3 4)) = 2*4 + 3 = 11 ’’’’’’^Die Variablen in einem Lambdaausdruck sind sogenannte Parameter (oder gebundene’’’’’’’’’’’’’’’^Variable). Interessant ist, daū eine Funktion sich nicht Łndert, wenn man eine Variable’’’’’’’^systematisch durch eine andere Variable ersetzt, die nicht bereits im Lambdaausdruck’’’’’’’’’’. (lambda (x y) (2*y + x)) ’’’’’’’’’’’’’ist also dasselbe wie ’’’’’’’’. (lambda (u v) (2*v + u)) . ’’’’’’’’’’’NManchmal werden wir AusdrŪcke benutzen, in denen eine Variable nicht durch das>Lambda gebunden ist. Beispielsweise ist das n in ’’’’’’’’’’’’’ (lambda (x y) (x*n + y*n)) ’Nnicht gebunden. Eine solche nicht gebundene Variable nennt man frei. ’’’’’’’’’^Wenn fŪr eine freie Variable vor der Benutzung kein Wert vereinbart wurde, ist der’’’’’’’’’’’’^Wert des Funktionsaufrufs nicht definiert, falls der Wert der Variablen auf das ErgebŻ’’’’’’’’nis einen Einfluū hat. ’’’’’’’^Die Lambdanotation reicht allein fŪr die Definition rekursiver Funktionen nicht aus.’’’’’’’’’’NNeben den Variablen muū auch der Name der Funktion gebunden werden, weil er’’’>innerhalb der Funktion fŪr eine Zeichenfolge steht. ’’’’’’’’’’>Wir hatten die Funktion "firstatom" durch die Gleichung ’’’’’’. (firstatom x) = (cond ((atom x) x) ’’’’’’’’’> (T (firstatom (head x))) ’’’’’’’’’’’’’ ) ’’’’’’’’’’>definiert. Mit der Lambda-Notation kŚnnen wir schreiben: ’’’’’. firstatom = (lambda (x) (cond ((atom x) x) ’> (T (firstatom (head x))) ’’’’’ ) ) ’’^Das Gleichheitszeichen ist in Wirklichkeit nicht Teil der LISP-Sprache, sondern eine’’’’’’’’’’^KrŪcke, die wir nicht mehr brauchen, wenn wir die richtige Schreibweise eingefŪhrt’’’’’’’’’’’’^Die rechte Seite der obigen Gleichung ist als Funktion nicht vollstŁndig, da dort nichts’’’’’’^darauf hinweist, daū das "firstatom" im einem bedingten Ausdruck fŪr eben die rechte’’’’’’’’’’^Seite steht. Deshalb ist die rechte Seite als Definition fŪr die linke Seite ("firstatom")’’’’noch nicht geeignet. ’’’’’’’’’^Damit wir Definitionen schreiben kŚnnen, in denen der Name der gerade definierten’’’’’’’’’’’’’^Funktion auftaucht, fŪhren wir die Label-Notation ein (engl. label = Marke, (Preis-)’’’’’’’’’’^Schildchen). Wenn "a" eine Funktion ist, und "n" ihr Name, schreiben wir "(label n’’’’’’’’’’’’NNun kŚnnen wir die Funktion "firstatom" ohne Gleichheitszeichen schreiben: ’’’> (label firstatom (lambda (x) (cond ((atom x) x) ’’’’’’’’’’’’> (T (firstatom (head x))) . ) ) ) ’’’’’’’’’’’’’^In dieser Definition ist "x" eine gebundene Variable und "firstatom" ein gebundener’’’’’’’’’’’Funktionsname. ’’’’’’’’’’’’’’’>2. Das LISP-Interpreter-System#goalpage("p2")# ’’’’’’’’’’’’’’’.2.1 Die universelle LISP-Funktion ’’’’’’’’’’’. "evalquote" #goalpage("p2.1")# ’’’’’’’’’’^Ein Interpreter oder eine allgemeine Funktion ist eine Funktion, die den Wert jedes’’’’’’’’’’’Ngegebenen Ausdrucks berechnen kann, wenn der Ausdruck in einer geeigneten Form^vorliegt. (Wenn der zu interpretierende Ausdruck einen Aufruf einer unendlich rekurŻ’’’’’’’’’’^siven Funktion enthŁlt, wird der Interpreter natŪrlich ebenfalls unendlich rekursiv.) ’’’’’’’’>Wir sind jetzt in der Lage, eine allgemeine LISP-Funktion ’’’’. (evalquote function arguments) ’’’’’’’Nzu definieren. "evalquote" muū als erstes Argument ein LISP-Ausdruck Ūbergeben^werden. Dieser wird als Funktion aufgefasst und auf die folgenden Argumente angeŻ’’’’’’’’’’’’’NIm Folgenden sind einige nŪtzliche Funktionen zur Manipulation von LISP-AusŻ’’^drŪcken angegeben. Einige von ihnen werden als Hilfsfunktionen fŪr die Definition von’’’’’’’’’>"evalquote" gebraucht, die wir uns vorgenommen haben. ’’’’’’’’ (equal x y) ’’’’’’’’’’^ist ein PrŁdikat, das wahr ist, wenn seine Argumente gleiche LISP-AusdrŪcke sind.’’’’’’’’’’’’’N(Das elementare PrŁdikat "eq" ist ja nur fŪr Atome definiert.) ’’’’’’’’’’’’’’’^Die Definition von "equal" ist ein Beispiel fŪr einen bedingten Ausdruck innerhalb’’’’’’’’’’’’eines bedingten Ausdrucks. ’’’ (lambda (x y) ’’’’’’’’’’’’’’ ((atom x) (cond ’’’’’’’’. ((atom y) (eq x y)) ’’’’’’’’ (T F) ’’’’’’ ) ’’’’’’’’’’’’> ((equal (head x) (head y)) (equal (tail x) (tail y))) ’’^Folgende Funktion liefert einen LISP-Ausdruck, der gleich mit "destination" ist,’’’’’’’’’’’’’’>auūer daū darin Ūberall statt "old" "new" steht. ’’’’’’’’’’’’’.(changeall (destination old new)) ’’’’’’’’’’’’.= (cond ((equal destination old) new) ’’’’’’. ((atom destination) destination) ’’’> (T (cons (changeall (head destination) old new) ’’’’> (changeall (tail destination) old new) ’’’’ ) ’’’’’’’’’’’’’’’Beispielsweise gilt ’’’’’’’’’’>(changeall ((A . B) . C) B (X . A)) = ((A . (X . A)) . C) ’’’’^Die folgenden Funktionen sind nŪtzlich, wenn Listen verarbeitet werden sollen. ’’’’’’’’’’’’’’’1. (append x y) ’’’’’’’’’’’’’’> hŁngt an die Liste "x" den LISP-Ausdruck "y". ’’’’’’’’’’’’’ (append x y) = ’’’’’’’’’’ (cond ((null x) y) ’’’’> (T (cons (head x) (append (tail x) y) )) ’’’’’’’’2. (member list pattern) ’’’’’^ Dies PrŁdikat testet, ob der LISP-Ausdruck "pattern" in der Liste "list" vorŻ’’’’’’’’’’’’’’ (member list pattern) = ’ (cond ((null list) F) ’. ((equal (head list) pattern) T) ’. (T (member (tail list) pattern)) .3. (pairlist list1 list2 oldpairlist) ’’’’’’’’^ Diese Funktion liefert eine Liste von Paaren, die die sich entsprechenden ElemenŻ’’’’’’’’’’^ te der Listen "list1" und "list2" enthalten, und an der noch die Liste "oldpairlist"’’’’’’’. (pairlist list1 list2 oldpairlist) = ’’’’. (cond ((null list1) oldpairlist) ’’’’’’> (T (cons (cons (head list1) (head list2)) ’’’’’’’N (pairlist (tail list1) (tail list2) oldpairlist) ’’’’’’’ ) ’’’’’’’’’’’’ ) ’’’’’’’’’’’’’’’> (pairlist (A B C) (U V W) ((D . X) (E . Y)) ) = ’’’’’’’’’’’> ((A . U) (B . V) (C . W) (D . X) (E . Y)) ’’’’’’’^Eine solche Liste von Paaren wird auch Assoziationsliste genannt, wenn das erste’’’’’’’’’’’’’’NElement jedes Paars ein Atom ist, das Ūber diese Liste mit dem zweiten Elementassoziiert ist. ’’’’’’’’’’’’’’.5. (association pattern associationlist) ’’’’’^ Wenn "association list" eine Assoziationsliste wie oben beschrieben ist, liefert’’’’’’’’’’’^ "association" das Paar der Liste, dessen erstes Element "pattern" ist. Es ist also’’’’’’’’’> eine Funktion zum Durchsuchen von Tabellen. ’’’’’’’’’’’’’’’. (association pattern alist) = ’’’’’’’’’’’> (cond ((eq (head (head alist)) pattern) (head alist)) ’> (T (association pattern (tail alist))) ’’’’’’’’’’(association B ( (A . (M N)) ’. (B . (HEAD X)) ’’’’’’’’’’’’’’. (C . (QUOTE M)) ’’’’’’’’’’’’’. (B . (TAIL X)) ’’’’’’’’’’’’’’> ) ) = (B . (HEAD X)) ’’’’’’’’’(replace expr ’’’’’’’’’’’’’’’’’’’’’’‡’<’’’’’’’’’’’’’’’’’’’Q‡’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’default;’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’‘‡’’’’’’’’’’’’’’’’’’’’±‡’’’’’’’’’’’’’’’’’’’’ч’’’’’’’’’’’’’’’’’’’’ń‡’’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ˆ’#’’’’’’’’’’’’’’’’’’’aˆ’’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ˆ’%’’’’’’’’’’’’’’’’’’’ш’’’’’’’’’’’’’’’’’’’’ńˆ’*’’’’’’’’’’’’’’’’’’’!‰’’’’’’’’’’’’’’’’’’’’A‰’+’’’’’’’’’’’’’’’’’’’q‰’&’’’’’’’’’’’’’’’’’’’”‰’2’’’’’’’’’’’’’’’’’’’ቒ*’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’Š’&’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’AŠ’’’’’’’’’’’’’’’’’’’’aŠ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Š’6’’’’’’’’’’’’’’’’’’’ኒ’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’!‹’’’’’’’’’’’’’’’’’’’’A‹’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a‹’’’’’’’’’’’’’’’’’’’’‹’"’’’’’’’’’’’’’’’’’’’±‹’’’’’’’’’’’’’’’’’’’’ы’)’’’’’’’’’’’’’’’’’’’Œ’!’’’’’’’’’’’’’’’’’’’’’ val’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1Œ’’’’’’’’’’’’’’’’’’’’QŒ’8’’’’’’’’’’’’’’’’’’’‘Œ’’’’’’’’’’’’’’’’’’’’±Œ’’’’’’’’’’’’’’’’’’’’ь’’’’’’’’’’’’’’’’’’’’ńŒ’’’’’’’’’’’’’’’’’’’’’’ END SELECT;’’’’’’’’’’ value.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1’5’’’’’’’’’’’’’’’’’’’q’#’’’’’’’’’’’’’’’’’’’”’-’’’’’’’’’’’’’’’’’’’э’'’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’Ž’>’’’’’’’’’’’’’’’’’’’AŽ’<’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”Ž’9’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’’įŽ’1’’’’’’’’’’’’’’’’’’’!’&’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’’’’’ tab pos := 0’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±’B’’’’’’’’’’’’’’’’’’’’’ pltper’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!’C’’’’’’’’’’’’’’’’’’’’’ prtper ’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’ѐ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’1‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Q‘’$’’’’’’’’’’’’’’’’’’’‘’7’’’’’’’’’’’’’’’’’’’Į‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į‘’,’’’’’’’’’’’’’’’’’’’’’ IF protocoll’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’’4’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’ init rts;’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’ђ’’’’’’’’’’’’’’’’’’’’’’ line;’’’’’’’’’’’’’’ń’’,’’’’’’’’’’’’’’’’’’’’’ shift;’’’’’’’’’’’’’!“’’’’’’’’’’’’’’’’’’’’A“’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a“’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’”“’’’’’’’’’’’’’’’’’’’’Į“’’’’’’’’’’’’’’’’’’’’ѓ’=’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’1”’’’’’’’’’’’’’’’’’’’’Q”’ ’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’””’’’’’’’’’’’’’’’’’’’’Į”’’’’’’’’’’’’’’’’’’’’є’-’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ run :’’’’’’’’’’’’’’’’’ init rts;’’’’’’’’’’•’$’’’’’’’’’’’’’’’’’’’1•’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’Q•’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ quit :’’’’’’’’’’’’’’q•’%’’’’’’’’’’’’’’’’’’’”•’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ѕ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń•’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’’’ next sym’’’’’’’’’’–’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ const equ :’’’’’’’’’!–’’’’’’’’’’’’’’’’’’’’A–’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’a–’’’’’’’’’’’’’’’’’’’’–’)’’’’’’’’’’’’’’’’’’’±–’’’’’’’’’’’’’’’’’’’’і’’’’’’’’’’’’’’’’’’’’ń–’.’’’’’’’’’’’’’’’’’’’!—’3’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’a—’!’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘—’’’’’’’’’’’’’’’’’’’’±—’’’’’’’’’’’’’’’’’’’’ї’!’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’˜’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’!˜’’’’’’’’’’’’’’’’’’’’A˜’ ’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’q˜’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘˜’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’±˜’’’’’’’’’’’’’’’’’’’’ј’’’’’’’’’’’’’’’’’’’’’’ ELSE TRUE’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ń˜’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’™’’’’’’’’’’’’’’’’’’’’1™’’’’’’’’’’’’’’’’’’’’Q™’’’’’’’’’’’’’’’’’’’’™’’’’’’’’’’’’’’’’’’’’”™’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’Į™’’’’’’’’’’’’’’’’’’’’į™’#’’’’’’’’’’’’’’’’’’’š’!’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Aš’’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’Qš’2’’’’’’’’’’’’’’’’’’’‘š’’’’’’’’’’’’’’’’’’’’±š’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’њ’6’’’’’’’’’’’’’’’’’’’›’6’’’’’’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’’’’ line.’’’’’’’’’’’’’’Q›’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ PROC shift :’’’’’’’’’q›’’’’’’’’’’’’’’’’’’’’‘›’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±›’’’’’’’’’’’’’’’’’’’’ћ’’’’’’’’’’’’’’’’’’’’ń›’’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’1œ’’’’’’’’’’’’’’’’’’’’Qœ’’’’’’’’’’’’’’’’’’’’qœ’’’’’’’’’’’’’’’’’’’’‘œ’’’’’’’’’’’’’’’’’’’’±œ’’’’’’’’’’’’’’’’’’’’ќ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ńœ’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’?’’’’’’’’’’’’’’’’’’’ѝ’D’’’’’’’’’’’’’’’’’’’!ž’’’’’’’’’’’’’’’’’’’’’’ print := b’’’’’’’’’’Až’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’až’’’’’’’’’’’’’’’’’’’’ž’<’’’’’’’’’’’’’’’’’’’Įž’2’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’!Ÿ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŸ’"’’’’’’’’’’’’’’’’’’’Ÿ’;’’’’’’’’’’’’’’’’’’’ĮŸ’’’’’’’’’’’’’’’’’’’’្’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’! ’C’’’’’’’’’’’’’’’’’’’q ’-’’’’’’’’’’’’’’’’’’’’’ outline (t);’’’’’’’’” ’’’’’’’’’’’’’’’’’’’’Į ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’į ’I’’’’’’’’’’’’’’’’’’’1”’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’Q”’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q”’’’’’’’’’’’’’’’’’’’’‘”’’’’’’’’’’’’’’’’’’’’±”’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ń”’’’’’’’’’’’’’’’’’’’’į”’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’ ELSE t’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’!¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’A¢’’’’’’’’’’’’’’’’’’’’’’ IF protocoll’’’’’’’’q¢’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’‘¢’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’±¢’K’’’’’’’’’’’’’’’’’’’£’-’’’’’’’’’’’’’’’’’’’’’ THEN page’’’’’’’’’’1£’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’ IF protocoll’’’’’’’’Q£’!’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’”£’’’’’’’’’’’’’’’’’’’’Į£’H’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’ line no := 0’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1¤’’’’’’’’’’’’’’’’’’’’Q¤’J’’’’’’’’’’’’’’’’’’’”¤’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ѥ’!’’’’’’’’’’’’’’’’’’’„’L’’’’’’’’’’’’’’’’’’’Q„’’’’’’’’’’’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘„’N’’’’’’’’’’’’’’’’’’’į„’:’’’’’’’’’’’’’’’’’’’!¦’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A¦’G’’’’’’’’’’’’’’’’’’’‘¦’B’’’’’’’’’’’’’’’’’’’ᦒ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ PROC vdt :’’’’’’’’’’’§’@’’’’’’’’’’’’’’’’’’’Q§’H’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ do vdt :’’’’’’’’’’’’’’ TEXT VAR t;’’’’’’’’”§’(’’’’’’’’’’’’’’’’’’’’’ inchar (t);’’’’’’’’’’ out (t);’’’’’’’’’’’ѧ’8’’’’’’’’’’’’’’’’’’’’’ THEN’’’’’’’’’’’’’’Ø’D’’’’’’’’’’’’’’’’’’’aØ’’’’’’’’’’’’’’’’’’’’alist) ’’’’’’’’’^ "alist" muū eine Assoziationsliste sein. "replace" produziert einen Ausdruck, der’’’’’’’’’’N "expr" sehr Łhnlich ist, nur sind alle Atome darin durch den LISP-Ausdruck’> ersetzt, mit dem sie in "alist" assoziiert sind. ’’’’’’’’’’ (replace expr alist) = ’’> (cond ((atom expr) (association expr alist)) ’’’’’’’’’’> (T (cons (replace (head expr) alist) ’’’’’’’’’’’’> (replace (tail expr) alist) ’’’’’’’’’’’’ ) ’’’’’’’’’’’’ ) ’’’’’’’’’’’’’’’ (replace (X SCHRIEB Y) ’’’’’> ((Y . (GOETZ VON BERLICHINGEN)) (X . GOETHE)) ’’’’’> = (GOETHE SCHRIEB (GOETZ VON BERLICHINGEN)) ’’’’’’’’’^Die allgemeine Funktion "evalquote", die wir jetzt definieren wollen, gehorcht der’’’’’’’’’’’’.folgendem Beispiel zugrundeliegenden Regel: ’’ (evalquote ’’>Funktion: (LAMBDA (X Y) (CONS (HEAD X) Y) ) ’’’’’’’’’.Argumente: (A B) (C D) ’’’’’’’’’’’’’’ ) ’’’’’’’’’’’ (apply ’’’’’’>Funktion: (LAMBDA (X Y) (CONS (HEAD X) Y)) ’’’’’’’’’’>Argumentliste: ((QUOTE (A B)) (QUOTE (C D))) ’’’’’’’’’’’’’Bindung: NIL ’’’’’’’ ) ’’’’’’’’’’’^Die Argumente von "evalquote" werden also zu einer gequoteten Argumentliste von’’’’’’’’’’’’’’’N"apply". Die QUOTE-Funktion bewirkt, daū das Argument der QUOTE-Funktion’’’’’’^wŚrtlich genommen, also nicht weiter evaluiert wird. Das dritte Argument von "apply",’’’’’’’’’Ndas NIL ist eine leere Bindeliste zur Bindung von Parametern und Argumenten imnŁchsten Schritt: ’’’’’’’’’’’’ (eval ’’’’’’’.Argumente: (CONS (HEAD X) Y) ’’’’’’’’’.Bindung: ((X.(A B)) (Y . (C D))) ’’’ ) ’’’’’’’’’’’. (cons (head (A B)) (C D)) ’’’N (A C D) = Ergebnis von "evalquote" . ’’’’’’’’’’’’^"evalquote" wird hauptsŁchlich durch die Hilfsfunktion "apply" definiert. "apply"’’’’’’’’’’’’’^berechnet Funktionsaufrufe, indem es die Argumente und die Parameter der Funktion’’’’’’’’’’’’’^bindet und den Funktionsrumpf berechnet. Die Bindungen werden in einer AssoziaŻ’’’’’’’’’’’’’’’^tionsliste, der Bindeliste, gespeichert. Da bedingte AusdrŪcke und Konstanten formal’’’’’’’’’’^wie Funktionsaufrufe von Funktionen "cond" und "quote" aussehen, werden sie auch’’’’’’’’’’’’’’so behandelt. Wir definieren also: ’’’’’’’’’> (evalquote fkt expr) = (apply fkt (quote expr) NIL) . ’’’’’’ (eval expr binding) = ’’’’’’> (cond ((atom expr) (tail (association expr binding))) ’’’’> (T (apply (head expr) (tail expr) binding)) ’’’’’’’’^"eval" stellt also erst fest, ob es sich um ein Atom oder um einen Funktionsaufruf’’’’’’’’’’’’^handelt. Da es nur diese beiden MŚglichkeiten gibt, ist diese Einteilung vollstŁndig. ’’’’’’’’^Atome sind immer Ųbersetzungen von Variablen, fŪr die eine Bindung existieren muū,’’’’’’’’’’’’>so daū ihr Wert aus der Bindeliste geholt wird. ’’’’’’’’’’’’’’^Funktionsaufrufe sind immer Listen; im zweiten Zweig werden die Funktion und die’’’’’’’’’’’’’’>Parameterliste getrennt und an "apply" Ūbergeben. ’’’’’’’’’’’’NUm sich die Aktionen in diesem zweiten Zweig von "eval" genauer vorstellen zu’^kŚnnen, ist vielleicht die in Abschnitt 1.1 beschriebene graphische DarstellungsmethoŻ’’’’’’’’Nde hilfreich; beispielsweise wŪrde sich ein Lambda-Ausdruck so ausnehmen: ’’’’> +-----+-----+ +-----+-----+ +-----+-----+ ’’’’’’’’’’’’’’> | o | o--+-->| o | o--+-->| o | o--+-->NIL ’’’’’’’’> +--+--+-----+ +--+--+-----+ +--+--+-----+ ’’’’’’’’’’’’’’. | | | ’’’’’’’. V V V ’’’’’’’. LAMBDA Parameterliste Ausdruck ’’’’N"apply" bekommt nun von "eval" eine Funktion und eine Parameterliste sowie die>Bindeliste Ūbergeben. Mit diesen beiden macht es folgendes: ’’ (apply fn args binding) = ’’’> (cond ((eq fn HEAD) (head (eval (head args) binding))) ’> ((eq fn TAIL) (tail (eval (head args) binding))) ’> ((eq fn CONS) (cons (eval (head args) binding) ’’’N (eval (head (tail args)) binding) ’’’’’’’’’’’’ ) ) ’’> ((eq fn ATOM) (atom (eval (head args) binding))) ’> ((eq fn EQ) (eq (eval (head args) binding) ’’’N (eval (head (tail args)) binding) ’’’’’’’’’’’’ ) ) ’’. ((eq fn QUOTE) (head args)) ’’’’’’’> ((eq fn COND) (evalcond args binding)) ’’’’’’’’’’’’N (T (apply (tail (association fn binding)) args binding)) ’’’’’’’’’’ ((eq (head fn) LABEL) ’’’’’’. (apply (head (tail (tail fn))) ’’’’’’’’’’> args (cons (cons (head (tail fn)) ’’’’’’’’’’’’’’’> (head (tail (tail fn))) ’’’’’’’’ ) ’’’’. binding) ’’’’’’’’’’’’’> ((eq (head fn) LAMBDA) (eval (head (tail (tail fn))) ’’’’’’’> (pairlist (head (tail fn)) ’’’’> args binding) ’’’’’’’ ) ) ’’’NDas erste Argument von "apply" ist eine Funktion (unter der Voraussetzung, daū>"quote" und "cond" als Funktionen anerkannt werden). ’’’’’’’’’^Wenn es eine der elementaren Funktionen "head", "tail", "cons", "atom" oder "eq"’’’’’’’’’’’’’’^ist, wird die jweilige Funktion auf die Argumente angewandt, die vorher berechnet’’’’’’’’’’’’’^werden. Diese Berechnung erfolgt mit "eval", das ja fŪr Variablen Werte aus der’’’’’’’’’’’’’’’^Bindeliste liefert und fŪr Funktionsaufrufe das, was "apply" mit ihnen machen kann. ’’’’’’’’’’NWenn es sich um "quote" handelt, wird das erste Argument unverŁndert geliefert^"quote" heiūt ja "dies ist eine Konstante, die so, wie sie da steht, Ūbernommen werŻ’’’’’’’’’’NWenn es sich um "cond" handelt, wird die Funktion "eval cond" aufgerufen, doch^auch ihre Argumente werden nicht berechnet, auūerdem gehŚrt die Assoziationsliste’’’’’’’’’’’’’zu den Argumenten: ’’’’’’’’’’’. eval (cond condlist, binding) = ’’’’’’’’’’’’’> (cond ((eval (head (head condlist)) binding) ’’’’’’’’’’’’’> (eval (head (tail (head condlist))) binding) ’’’’’’. (T (cond (tail condlist) binding)) ’^Hier empfiehlt es sich, einen bedingten Ausdruck in graphischer Form hinzuschreiben’’’’’’’’’’’>und die Auswertung anhand der Zeichnung nachzuvollziehen. ’’’’^Wenn die Funktion nichts von alledem ist, wird in der Bindeliste nachgesehen, ob’’’’’’’’’’’’’’^dies Atom nicht an eine Funktion gebunden ist; falls ja, wird eine Auswertung dieser’’’’’’’’’’>Funktion mit den gleichen Argumenten versucht. ’’’’’’’’’’’’’’’NWenn das erste Argument von "apply" kein Atom ist, muū es ein LABEL- oder ein’LAMBDA-Ausdruck sein. ’’’’’’’’.Ein LABEL-Ausdruck hat die Form ’’’’’’’’’’’’’’> +-----+-----+ +-----+-----+ +-----+-----+ ’’’’’’’’’’’’’’> | o | o--+-->| o | o--+-->| o | o--+--> NIL ’’’’’’’> +--+--+-----+ +--+--+-----+ +--+--+-----+ ’’’’’’’’’’’’’’. | | | ’’’’’’’. V V V ’’’’’’’. LABEL Name Funktion ’’’^Funktionsname und Definition werden in einem funktionalen Eintrag in die Bindeliste’’’’’’’’’’’>eingefŪgt, so daū der Name an die Funktion gebunden ist. ’’’’’.Ein LAMBDA-Ausdruck hat die Form ’’’’’’’’’’’’’> +-----+-----+ +-----+-----+ +-----+-----+ ’’’’’’’’’’’’’’> | o | o--+-->| o | o--+-->| o | o--+--> NIL ’’’’’’’> +--+--+-----+ +--+--+-----+ +--+--+-----+ ’’’’’’’’’’’’’’. | | Ø’H’’’’’’’’’’’’’’’’’’’ŃØ’’’’’’’’’’’’’’’’’’’’ńØ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ line.’’’’’’’’’’’’’’’’ END PROC vdt;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’©’’’’’’’’’’’’’’’’’’’’1©’’’’’’’’’’’’’’’’’’’’Q©’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q©’’’’’’’’’’’’’’’’’’’’’’ out(a);’’’’’’’’’’’’’’’ out(b);’’’’’’’’’’’’’’’ out(c)’’’’’’’’’’’’’’’’ END PROC out;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘©’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’> DEFINES constant, vdt, get pltper, get prtper, was print,’’’’> println, print output, plot output, print line,’’’’’’N sys page, pagefeed necessary, print suppressed output, asterisk,’’’’’N protokoll, default, set pagelength, run time system, b stop request,’ scroll, run card :’’’ (* Runtime - System *)’’’’’’’N (* Autor : R. Keil *)’’’’’’’’’’’’N (* Datum : 12.07.83 Aenderung: 19.06.84 D. Craemer *)’’’’’’’’’’’’N (* 2.Aenderung: 6.05.85 D. Craemer *)’’’’’’’’’’’’N (* Önderung auf 1.8.2: Z. 288, Christian Szymanski, 10.08.88 *)’’’’’’’’’’’’N (* In der 2. Aenderung wurde dyn.const in zzdyn.const umbenannt*)’’’’’’’’’’’’N (* und alle Konstanten-Datenraeume bekommen ".const" angehaengt*)’’’’’’’’’’’’N (* Wird im rts das Kommando run name gegeben, so wird der *)’’’’’’’’’’’’N (* augenblickliche Konstanten-Datenraum gerettet im Datenraum *)’’’’’’’’’’’’N (* mit dem Namen: "name.const" *)’’’’’’’’’’’’. LET esc = ""27"",’’’’’’’’’’’’’’’ max tab size = 50,’’’’’’’ bold = 1,’’’’’’’’ number = 2,’’’’’’’’ delimiter = 3;’’’’’’’’>TYPE CONSTANT = STRUCT (ROW max tab size TEXT name,’’’’’’’’’’’> ROW max tab size REAL value,’’’’’’’’’’. INT tab size);’’’’’’’’BOUND CONSTANT VAR constants;’FILE VAR sysout;’’’’’’’’’’’’’’>TEXT VAR print buf, asterisk buffer, sym, const name,’’’’’’’’’. const space name::"zzdyn.const";’’’’’.REAL VAR dt, length, prtper, pltper;’’’’’’’’’’>INT VAR line no, page no, max pagelength, type;’’’’’’’’’’’’’’’>BOOL VAR vdt on, print, protocoll, terminal stop, is scroll,’’. is not first, run specified;’’’’’’’’’PROC default : protocoll := FALSE;’’’’’ max pagelength := 23;’’’’’’’’ is scroll := TRUE;’’’’’’ run specified := FALSE’’’’’’END PROC default;’’’’’’’’’’’’’.PROC set pagelength (INT CONST i) :’’’’’’’’’’’ max pagelength := i’’’’’’’’’’END PROC set pagelength;’’’’’’.PROC run card (TEXT CONST run name) :’’’’’’’’’ IF exists (actual constants)’. THEN constants := old (actual constants)’’’’ ELIF run name="zzdyn"’’’’’’’. THEN constants := new (actual constants);’’’. CONCR (constants).tab size := 0’’’’’’’’> ELSE copy (const space name, actual constants); ’’’’’’’’’’’’. constants := old (actual constants)’’’’. const space name := actual constants.’’’’’’’’ actual constants:’’’’’’’’’’’’ run name + ".const".’’’’’’END PROC run card;’’’’’’’’’’’’>REAL PROC constant (TEXT CONST name, REAL CONST val) :’’’’’’’’ REAL VAR value;’’’’’’’’’’’’’’ INT VAR tab pos;’’’’’’’’’’’’’ value := actual value;’’’’’’’ set system consts.’’’’’’’’’’’ actual value :’’’’’’’’’’’’’’’. search constant (name, tab pos);’’’’’’’’’’’’ IF tab pos > 0’’’’’’’’’’’’’’. THEN CONCR (constants).value (tab pos)’’’’’. ELSE new constant (name, val);’’’’’’’’’’’’’ set system consts :’’’’’’’’’’> SELECT pos ("dt length prtper pltper ", name + " ") OF’’’’’’ CASE 1 : dt := value’’ CASE 4 : length := value’’ CASE 11 : prtper := value’’ CASE 18 : pltper := value’’END PROC constant;’’’’’’’’’’’’>PROC new constant (TEXT CONST name, REAL CONST val) :’’’’’’’’’. CONCR (constants).tab size INCR 1;’’’’’’’’’’’. IF CONCR (constants).tab size > max tab size’. THEN errorstop ("ZUVIELE KONSTANTEN")’’’’’’’> CONCR (constants).name (CONCR (constants).tab size) := name;> CONCR (constants).value (CONCR (constants).tab size) := val’’END PROC new constant;’’’’’’’’>PROC search constant (TEXT CONST name, INT VAR tab pos) :’’’’’> FOR i FROM 1 UPTO CONCR (constants).tab size REP’’’’’’’’’’’’’. IF name = CONCR (constants).name (i)’’’’’’’’ THEN tab pos := i;’’’’’’’’’ LEAVE search constant’END PROC search constant;’’’’’NREAL PROC get pltper : (* Reicht 'pltper' (Plotperiode) heraus *)’’’’’’’’’’’’END PROC get pltper;’’’’’’’’’’NREAL PROC get prtper : (* Reicht 'prtper' (Printperiode) heraus *)’’’’’’’’’’’END PROC get prtper;’’’’’’’’’’PROC scroll (BOOL CONST b) :’’ is scroll := b’’’’’’’’’’’’’’’END PROC scroll;’’’’’’’’’’’’’’PROC next sym :’’’’’’’’’’’’’’’ next sym (sym, type)’’’’’’’’’END PROC next sym;’’’’’’’’’’’’.PROC rts err (TEXT CONST err mess) :’’’’’’’’’’> outline ("FEHLER BEI >>>" + sym + "<<< : " + err mess)’’’’’’’END PROC rts err;’’’’’’’’’’’’’.PROC run time system (PROC target program) :’’ THEN kill ("dyn.out");’’’’’’> sysout := sequential file (output, "dyn.out")’’’’’’’’’’ get command; execute command’’’’’’’’’’’’’ get command : TEXT VAR command;’’’’’’’’’’’ print suppressed output;’’’’. putline (" dynamo runtime system :");’’ getline (command);’’’’’’’’’’ printline (command).’’’’’’’’ execute command :’’’’’’’’’’’’ scanner (command);’’’’’’’’’’ TEXT VAR start := sym;’’’’’’ skip blanks;> SELECT pos ("run rerun quit help c ? EOL ", start + " ") OF’ CASE 1, 5 : run’’’’’’’’’’’’ CASE 11 : quit’’’’’’’’’’’. CASE 16 : show ("dyn.help")’’’’’’’’’’’’’’ CASE 21 : const equ’’’’’’ CASE 23 : dump consts’’’’ CASE 25 :. OTHERWISE : rts err ("KOMMANDO UNBEKANNT")’. IF type = bold OR type = delimiter’’’’’’’’’’ THEN run card (sym)’’’’’’’’ target program.’’’’’’’’’’’’’. IF const space name = "zzdyn.const"’’’’’’’’’. THEN kill (const space name)’’’’’’’’’’’’’’’ LEAVE runtime system.’’’’’’’ skip blanks : UNTIL sym <> " " END REP.’’’ REAL VAR value, dummy;’’’’’’ INT VAR tab pos;’’’’’’’’’’’’ analyze constant equ;’’’’’’. search constant (const name, tab pos);’’’’’ IF tab pos = 0’’’’’’’’’’’’’ THEN sym := const name;’’’. rts err ("KONSTANTE NICHT DEFINIERT")> ELSE CONCR (constants).value (tab pos) := value’’’’’’’’’’’. UNTIL end of constants END REP.’’’’’’’’’’’’’ analyze constant equ :’’’’’’’ IF type <> bold’’’’’’’’’’’’’. THEN rts err ("NAME ERWARTET")’’’’’’’’’’’’’ const name := sym;’’’’’’’’’’ IF sym <> "="’’’’’’’’’’’’’’’. THEN rts err ("^=^ ERWARTET")’’’’’’’’’’’’’’ get constant.’’’’’’’’’’’’’’’ end of constants :’’’’’’’’’’’ IF sym = "/" OR sym = ","’’’ THEN next sym; FALSE’’’’’’’ get constant :’’’’’’’’’’’’’’’ value := 1.0;’’’’’’’’’’’’’’’ IF sym = "-" ’’’’’’’’’’’’’’’. THEN value := -1.0; next sym’’’’’’’’’’’’’’’ ELIF sym = "+"’’’’’’’’’’’’’’ THEN next sym’’’’’’’’’’’’’’ IF type = number’’’’’’’’’’’’. THEN value := value * real (sym)’’’’’’’’’’’. ELSE rts err ("ZAHL ERWARTET")’’’’’’’’’’’’’ dump consts :> FOR i FROM 1 UPTO CONCR (constants).tab size REP’’’’’’’’’’’’ IF (i MOD 2) = 1’’’’’’’’’’’ THEN line; shift’’’’’’’’’’> out (text (CONCR (constants).name (i), 14), " = ",’’’’’’’’> text (text (CONCR (constants).value (i)), 13))’’’’’’’’END PROC run time system;’’’’’ out (" ")’’’’’’’’’’’’’’’END PROC shift;’’’’’’’’’’’’’’’PROC init rts :’’’’’’’’’’’’’’’ line no := 0;’’’’’’’’ page no | ’’’’’’’. V V V ’’’’’’’. LAMBDA Parameterliste Ausdruck ’’’’^Dabei ist die Parameterliste eine Liste von Atomen, den Parametern. Die Auswertung’’’’’’’’’’’’^lŁuft so ab, daū die Parameter durch "pairlist" an die Argumente gebunden werden’’’’’’’’’’’’’’>und mit dieser neuen Bindeliste der Ausdruck berechnet wird. ’^Das EUMEL-LISP bietet eine Reihe weiterer MŚglichkeiten, die erst spŁter beschrieŻ’’’’’’’’’’’’Nben werden. Hier kŚnnen wir allerdings schon die folgenden Punkte abhandeln: ’N1. Jede LISP-Eingabe ist ein LISP-Ausdruck. Der "head" dieses Ausdrucks wird’’^ als Funktion aufgefaūt und auf den gequoteten "tail" des Ausdrucks, nŁmlich die’’’’’’’’’’’’^ nicht zu evaluierenden Argumente angewandt. Die Ųbersetzung von KleinbuchstaŻ’’’’’’’’’’’’’’> ben in Groūbuchstaben wird vom LISP-System Ūbernommen. ’’’’^2. In der Theorie des reinen LISP mŪssen alle Funktionen auūer den fŪnf BasisfunkŻ’’’’’’’’’’’’^ tionen an allen Stellen wieder definiert werden, an denen sie aufgerufen werden.’’’’’’’’’’’N Das ist eine fŪr die Praxis Łuūerst unhandliche Regelung; das EUMEL-LISP-’’^ System kennt weitere vordefinierte Funktionen und bietet die MŚglichkeit, beliebig’’’’’’’’’N viele weitere Standardfunktionen einzufŪhren, auch solche Funktionen, deren^ Argumente nicht berechnet werden (wie "quote") oder solche, die beliebig viele’’’’’’’’’’’’’. Argumente haben dŪrfen (wie "cond"). ’’’’’’^3. Die Basisfunktion "eq" hat immer einen wohldefinierten Wert, dessen Bedeutung’’’’’’’’’’’’’’^ im Fall, daū Nicht-Atome verglichen werden, im Kapitel Ūber Listenstrukturen’’’’’’’’’’’’’’’ erklŁrt wird. ’’’’’’’’’’’’’^4. Auūer in sehr seltenen FŁllen schreibt man nicht (quote T), (quote F) oder (quote’’’’’’’’’’. NIL), sondern T, F und NIL. ’’’’’’’’’’’’’’’^5. Es besteht die MŚglichkeit, mit Ganzzahlen zu rechen, die als weiterer Typ von’’’’’’’’’’’’’N Atomen gelten. Auūerdem kŚnnen TEXTe und Einzelzeichen (CHARACTERs)’’’’’’’’ gespeichert werden. ’’’’’’’N6. Es besteht die MŚglichkeit der Ein- und Ausgabe von LISP-AusdrŪcken, GanzŻ’. zahlen, TEXTen und CHARACTERs. ’’’’’’’’’’’’NWARNUNG: Die oben angegebenen Definitionen von "eval" und "apply" dienen nur^ pŁdagogischen Zwecken und sind nicht das, was wirklich im Interpreter’’’’’’’’’’’’’’ ablŁuft. ’’’’’’’’’’N Um zu entscheiden, was wirklich vor sich geht, wenn der Interpreter^ aufgerufen wird, sollte man sich an die ELAN-Quellprogramme halten. ’’’’’’’’’’’’’’’>2.2 Anwendungsregeln und Beispiele #goalpage("p2.2")# ’’’’’’’NDie Funktionsweise des LISP-Interpreteres kann bequem unter Verwendung der’’’’.Funktion "trace" verfolgt werden. Der Aufruf:  (trace) ’’’’’’’Nschaltet den Trace-Protokollmodus des Interpreters ein bzw. aus. ’’’’’’’’’’’’’NDas folgende Beispiel ist ein LISP-Programm, das die drei Funktionen "union",’^"intersection" und "member" als Standardfunktionen einfŪhrt Die Funktionen lauten’’’’’’’’’’’’’folgendermaūen: ’’’’’’’’’’’’’’> (member pattern list) = (cond ((null list) F) ’’’’’’’’’’’’’’> ((eq (head list) pattern) T) ’N (T (member pattern (tail list))) ’’’’’’’’’’’’’ ) ’’. (union x y) = (cond ((null x) y) ’’’’’’’’’’’N ((member (head x) y) (union (tail x) y)) ’’’’’’’’’’’’’’’> (T (cons (head x) (union (tail x) y))) ’ ) ’’’’’’’’’’’’. (intersection x y) = (cond ((null x) NIL) ’’> ((member (head x) y) ’’’’’’’’’’’’> (cons (head x) (intersection’. (tail x) y)) . ) ’’’’’’’’’’’’’’’> (T (intersection (tail x) y)) ’’’ ) ’’’’’^Um die Funktionen als neue Standardfunktionen einzufŪhren, benutzen wir die PseuŻ’’’’’’’’’’’’’dofunktion "define": ’’’’’’’’’. (MEMBER . (LAMBDA (PATTERN LIST) ’’’’’’’’’. (COND ((NULL LIST) F) ’’’’’’’> ((EQ (HEAD LIST) PATTERN) T) ’’’’’’’’’’> (T (MEMBER PATTERN (TAIL LIST))) ’’’’’’ ) ) ) ’’’’’’’’’’’ (UNION . (LAMBDA (X Y) ’’’. (COND ((NULL X) Y) ’’’’’’’’’’’N ((MEMBER (HEAD X) Y) (UNION (TAIL X) Y)) ’’’’’’’’’’’’’’’> (T (CONS (HEAD X) (UNION (TAIL X) Y))) ’ ) ) ) ’’’’’’’’’’’’. (INTERSECTION . (LAMBDA (X Y) ’’’’’’’’’’’’. (COND ((NULL X) NIL) ’’’> ((MEMBER (HEAD X) Y) ’’’’’’’’’’’’’N (CONS (HEAD X) (INTERSECTION (TAIL’’’’’’’’’’’’’’. X) Y)) ’’’’’’’’’ ) > (T (INTERSECTION (TAIL X) Y)) ’’’’ ) ) ) ’’’’’’^Die Funktion DEFINE, liefert als Pseudofunktion nicht nur einen LISP-Ausdruck als’’’’’’’’’’’’’^Ergebnis, sondern hat auch einen bleibenden Effekt, nŁmlich eine VerŁnderung im’’’’’’’’’’’’’’’^DEFINE hat beliebig viele Parameter der Form (Name . Funktion) und bewirkt, daū die’’’’’’’’’’’NFunktionen unter dem jeweiligen Namen im System verfŪgbar werden, also fŪr dieNweitere ProgrammausfŪhrung definiert werden. Das Ergebnis von DEFINE ist eine’.Liste der neuen Funktionsnamen, also hier ’’’’ (MEMBER UNION INTERSECTION) >Der Wert den der LISP-Interpreter bei Eingabe von ’’’’’’’’’’’’. (intersection (a1 a2 a3) (a1 a3 a5)) ’’’’’’’liefert ist (A1 A3) , ’’’’ (union (x y z) (u v w x)) ’liefert (Y Z U V W X) . >Es folgen einige elementare Regeln fŪr LISP-Programme: ’’’’’’’^1. Ein LISP-Programm besteht aus einem Funktionsaufruf. Im Beispiel ist das die’’’’’’’’’’’’’’’^ Funktion DEFINE, die ihre Parameter (beliebig viele) berechnet und ausgibt. Die’’’’’’’’’’’’^ Berechnung der Parameter erfolgt dabei in der Reihenfolge der Parameter (normaŻ’’’’’’’’’’’’N le LISP-Funktionen mit mehreren Parametern berechnen standardmŁūig alle’’’’> Parameter, allerdings in irgendeiner Reihenfolge). ’’’’’’’’^2. LISP ist formatfrei, d.h. jedes Symbol kann in jeder Spalte stehen. FŪr die BedeuŻ’’’’’’’’’N tung des Programms ist nur die Reihenfolge der Symbole maūgeblich. ZeilenŻ’. wechsel wird als Leerzeichen aufgefaūt. ’’’N3. Atome mŪssen mit einem Buchstaben anfangen, damit sie nicht mit Zahlen verŻ wechselt werden. ’’’’’’’’’’^4. Ein LISP-Ausdruck der Form (A B C . D) ist eine AbkŪrzung fŪr (A.(B.(C.D))).’’’’’’’’’’’’’’’^ Jede andere Plazierung des Punkts ist ein Fehler (falsch wŁre z.B. (A . B C) ). ’’’’’’’’’’’N5. Eine Anzahl von Basisfuntionen existiert von Anfang an, ohne daū sie durch’^ DEFINE eingefŪhrt wurden. Der Programmierer kann weitere Funktionen bleibend’’’’’’’’’’’’’’^ oder fŪr die Dauer eines Programmlaufs einfŪhren; dabei ist die Reihenfolge der’’’’’’’’’’’’. neuen Funktionen gleichgŪltig. ’’’’’’’’’’’’.2.3 Variablen#goalpage("p2.3")# ’’’’’’’’’’’’’’^Eine Variable ist ein Symbol, das ein Argument einer Funktion reprŁsentiert. Man’’’’’’’’’’’’’’^kann also schreiben: "a + b, wobei a = 3 und b = 4". In dieser Situation ist keine’’’’’’’’’’’’^Verwechslung mŚglich, so daū klar ist, daū das Ergebnis 7 ist. Um zu diesem ErgebŻ’’’’’’’’’’’’^nis zu kommen, muū man die Zahlen anstelle der Variablen einsetzen und die OperaŻ’’’’’’’’’’’’’.tion ausfŪhren, d.h. die Zahlen addieren. ’’’’^Ein Grund, weshalb das eindeutig ist, liegt darin, daū "a" und "b" nicht "direkt"’’’’’’’’’’’’’^addiert werden kŚnnen, so daū etwa "ab" entsteht. In LISP kann := 0;’’’’’’’’ asterisk buffer := "";’’’’’’’ print buf := "";’’’’’’’ print := FALSE;’’’’ terminal stop := FALSE;’’’’ is not first := FALSE;’’’’ vdt on := TRUE’’’’’’END PROC init rts;’’’’’’’’’’’’.PROC protokoll (BOOL CONST b) :’’’’’’’’’’’’’’’ protocoll := b’’’’’’’’’’’’’’’END PROC protokoll;’’’’’’’’’’’PROC print line :’’’’’’’’’’’’’N BOOL VAR b := print; (* Druckt Ausgabe - Puffer und *)’’’’’’’’’’’’’’’N println (print buf); (* loescht anschliessend den Inhalt *)’’’’’’’’’’ print buf := "";’’’’’’’’’’’’’END PROC print line;’’’’’’’’’’PROC print suppressed output :> IF print buf <> "" (* Druckt Ausgabe - Puffer, *)’’> THEN println (print buf); (* falls gefuellt *)’’’’’’’’’’’’ print buf := ""’’’’’’’’.END PROC print suppressed output;’’’’’’’’’’’’’.PROC print output (TEXT CONST t) :’’’’’’’’’’’’> print buf CAT t; (* Fuellt Ausgabe - Puffer *)’’’ print buf CAT " "’’’’’’’’’’’’END PROC print output;’’’’’’’’PROC println (TEXT CONST t) :’N print := TRUE; (* Verteilt Ausgabe auf Bildschirm *)’’’’’’’’’’’. line no INCR 1; (* und Datei *)’ IF line no = max page length’ THEN line no := 0’’’’’’’’’’’N IF is getcharety (esc) (* bis einschl. 1.8.1: 'is incharety' *)’’’’’ THEN terminal stop := TRUE ’END PROC println;’’’’’’’’’’’’’PROC outline (TEXT CONST t) :’ printline (t);’’’’’’’’’’’’’’’ putline (actual line).’’’’’’’ actual line : IF LENGTH (t) > 78’’’’’’’’’’ THEN text (t, 78)’’’’’’’’’’END PROC outline;’’’’’’’’’’’’’.PROC printline (TEXT CONST t) :’’’’’’’’’’’’’’’ THEN putline (sysout, t)’’’’END PROC print line;’’’’’’’’’’NPROC sys page : (* Seitenvorschub auf Bildschirm und Datei *)’’’. IF vdt on AND NOT is scroll AND is not first’ ELSE is not first := TRUE’’’. THEN putline (sysout, "#page#")’’’’’’’’’’’’’ IF asterisk buffer <> ""’’’’’ THEN page no INCR 1;’’’’’’’’N println ("PAGE " + text (page no, 3) + " : " + asterisk buffer);’’’’’’END PROC sys page;’’’’’’’’’’’’BOOL PROC pagefeed necessary :N line no = 0 (* Liefert TRUE, wenn Seitenende erreicht *)’’’’.END PROC pagefeed necessary; (* ist *)’’’’’’’.PROC plot output (TEXT CONST t) :’’’’’’’’’’’’’N println (t); (* Ausgabeprozedur fuer das Plot - Programm *)’’ print := FALSE’’’’’’’’’’’’’’’END PROC plot output;’’’’’’’’’NBOOL PROC b stop request : (* Liefert TRUE, wenn 'End'-Kommando im VDT *)> terminal stop (* - Modus gegeben wird *)’’’’END PROC b stop request;’’’’’’NBOOL PROC was print : (* Liefert TRUE, falls Druckerprogramm *)’’’’’’’N print. (* vorher eine Zeile gedruckt hat *)’’’’’’’’’’’’END PROC was print;’’’’’’’’’’’N IF vdt on AND is not first (* VDT = Video Data Termination *)’’’’’’’’’’’’’’N THEN do vdt (* Verhindert Scrolling des Bildschirms *)’’’’’’. out ("TIPPEN SIE : '+'; 'o'; 'e' : ");’’’’’’> IF t = "+" (* '+' = Seitenvorschub *)’’’’’’N ELIF t = "o" (* 'o' = Off; VDT wird abgeschaltet *)’’’’’’’’’’ THEN vdt on := FALSE’’’’’’N ELIF t = "e" (* 'e' = End; Programm wird abgebrochen *)’’’’’’ THEN terminal stop := TRUE ELSE out (""13""); vdt’’’’’PROC asterisk (TEXT CONST t) : asterisk buffer := t’’’’’’’’’END PROC asterisk;’’’’’’’’’’’’PROC out(TEXT CONST a,b,c) :’’END PACKET rts;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’dyn.33’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ßų’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2ya€ė’’l’’’’llM’ž’’%±’’’’dyn.33.box’’’’’’’’’’’’’’’’’’’ ń’’’’’’’’’’’’’’’’’’rj’L***********’’’’’’’’Āj’L’’’’’’’’’’’’’’’’’’’k’L’’’’’’’’’’’’’’’’’’’bk’L’’’’’’’’’’’’’’’’’’’²k’L’’’’’’’’’’’’’’’’’’’l’L’’’’’’’’’’’’’’’’’’’Rl’L’’’’’’’’’’’’’’’’’’’¢l’L’’’’’’’’’’’’’’’’’’’ņl’L’’’’’’’’’’’’’’’’’’’Bm’L’’’’’’’’’’’’’’’’’’’’m’L’’’’’’’’’’’’’’’’’’’ām’L’’’’’’’’’’’’’’’’’’’2n’L’’’’’’’’’’’’’’’’’’’‚n’L’’’’’’’’’’’’’’’’’’’Ņn’L’’’’’’’’’’’’’’’’’’’"o’L’’’’’’’’’’’’’’’’’’’ro’L’’’’’’’’’’’’’’’’’’’”„’L’’’’’’’’’’’’’’’’’’’ń„’L’’’’’’’’’’’’’’’’’’’A…’L’’’’’’’’’’’’’’’’’’’‘…’L’’’’’’’’’’’’’’’’’’’į…’L’’’’’’’’’’’’’’’’’’’1†’M’’’’’’’’’’’’’’’’’’’†’L***** 2u+’’Āo’L’’’’’’’’’’’’’’’’’’’p’L’’’’’’’’’’’’’’’’’’’bp’L’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘‡’A’’’’’’’’’’’’’’’’’’’ᇒ=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ˆ’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qˆ’’’’’’’’’’’’’’’’’’’’‘ˆ’’’’’’’’’’’’’’’’’’’’±ˆ’#’’’’’’’’’’’’’’’’’’’ሒ#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‰’OL VAR is dĻ$’’a‰’E’’’’’’’’’’’’’’’’’’’±‰’>’’’’’’’’’’’’’’’’’’’ń‰’?’’’’’’’’’’’’’’’’’’’AŠ’F’’’’’’’’’’’’’’’’’’’‘Š’C’’’’’’’’’’’’’’’’’’’ኒA’’’’’’’’’’’’’’’’’’’1‹’2’’’’’’’’’’’’’’’’’’’q‹’#’’’’’’’’’’’’’’’’’’’”‹’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ы’M’’’’’’’’’’’’’’’’’’’!Œ’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qŒ’M’’’’’’’’’’’’’’’’’’’ĮŒ’M’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1’A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’%’’’’’’’’’’’’’’’’’’’э’2’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’’’ enter equ.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ enter equ :’’’’’’’’’1Ž’E’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’”Ž’’’’’’’’’’’’’’’’’’’’ĮŽ’’’’’’’’’’’’’’’’’’’’įŽ’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ equtype :’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’ ELSE nil’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ enter name :’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’#’’’’’’’’’’’’’’’’’’’я’’’’’’’’’’’’’’’’’’’’ń’+’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’8’’’’’’’’’’’’’’’’’’’’/’’’’’’’’’’’’’’’’’’’Į’0’’’’’’’’’’’’’’’’’’’‘’7’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’A‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a‘’’’’’’’’’’’’’’’’’’’’‘’,’’’’’’’’’’’’’’’’’’’±‘’3’’’’’’’’’’’’’’’’’’’ń‘’/’’’’’’’’’’’’’’’’’’’1’’+’’’’’’’’’’’’’’’’’’’ die Situation viel’’’’’’’’’’’’’Nkomplizierter sein. Ein Atom kann eine Variable oder ein Atom sein. ’’’’’’’’’’^Sollte der zukŪnftige LISP-Benutzer an dieser Stelle entmutigt sein, sei ihm gesagt,’’’’’’’’’’^daū hier nichts Neues eingefŪhrt wird. Dieser Abschnitt ist nur eine Wiederholung der’’’’’’’’’^Ųberlegungen aus Abschnitt 1.4. Alles, was wir in diesem Abschnitt sagen, kann man’’’’’’’’’’’’^aus den Regeln fŪr LISP-AusdrŪcke oder aus der allgemeinen Funktion "evalquote"’’’’’’’’’’’’’’’^Der Formalismus, der in LISP die Variablen kennzeichnet, ist die Lambdanotation von’’’’’’’’’’’^Church. Der Teil des Interpreters, der die Variablen an Werte bindet, heiūt "apply".’’’’’’’’’’^Wenn "apply" auf eine Funktion stŚūt, die mit LAMBDA anfŁngt, wird die VariablenliŻ’’’’’’’’’’’^ste (Argumentliste) mit der Parameterliste gepaart und am Anfang der Bindeliste’’’’’’’’’’’’’’’NWŁhrend der Berechnung des Funktionsrumpfs mŪssen manchmal Variablen durch’’’’^ihre Werte ersetzt werden. Das geschieht dadurch, daū ihr Wert in der Bindeliste’’’’’’’’’’’’’’Nnachgesehen wird. Wenn eine Variable mehrmals gebunden wurde, wird die zuletzt^etablierte Bindung verwendet. Der Teil des Interpreters, der diese "Berechnungen"’’’’’’’’’’’’’Nund die Berechnung von Funktionsaufrufen durchfŪhrt, heiūt "eval". ’’’’’’’’’’’.2.4 Konstanten#goalpage("p2.4")# ’’’’’’’’’’’’’NManchmal heiūt es, eine Konstante stehe fŪr sich selbst, im Gegensatz zu einer>Variablen, die fŪr etwas anderes, nŁmlich ihren Wert, steht. ’^Dies Konzept funktioniert in LISP nicht so ohne weiteres; es ist hier sinnvoller, zu’’’’’’’’’’^sagen, eine Variable ist konstanter als die andere, wenn sie in einer hŚheren Ebene’’’’’’’’’’’.gebunden ist und ihren Wert seltener Łndert. ’^In LISP bleibt eine Variable im Bereich des LAMBDA konstant, von dem sie gebunden’’’’’’’’’’’’’^ist. Wenn eine Variable einen festen Wert hat, unabhŁngig davon, was in der BindeliŻ’’’’’’’’’’^ste steht, wird sie (echte) Konstante genannt. Dies wird mit Hilfe der Eigenschaftsliste’’’’’’(E-Liste) des Atoms erreicht. NJedes Atom hat eine E-Liste, in der Paare von Atomen und beliebigen Strukturen^gespeichert sind. Ein Atom hat die Eigenschaft A, wenn in seiner E-Liste ein Paar’’’’’’’’’’’’’^mit dem Atom A enthŁlt; die dazugehŚrige "beliebige Struktur" heiūt Wert dieser’’’’’’’’’’’’’’’^Wenn ein Atom die Eigenschaft APVAL besitzt, ist es eine Konstante, deren Wert der’’’’’’’’’’’’Wert der Eigenschaft ist. ’’’’.Konstanten kŚnnen durch die Pseudofunktion ’’’ (set atom wert) ’’’’’’’Ngesetzt werden; nach der Auswertung eines solchen Aufrufs hat das Atom "atom"’Nimmer den Wert "wert" - bis zum nŁchsten "set". Eine interessante Klasse von’’^Konstanten sind solche Konstanten, die sich selbst als Wert haben. Ein Beispiel dafŪr’’’’’’’’’^ist NIL. Der Wert dieser Konstanten ist wieder NIL. Daher kann NIL nicht als Variable’’’’’’’’’^benutzt werden, da es ja eine Konstante ist. (T und F gehŚren ebenfalls zu dieser’’’’’’’’’’’’’.2.5 Funktionen#goalpage("p2.5")# ’’’’’’’’’’’’’^Wenn ein LISP-Ausdruck fŪr eine Funktion steht, ist die Situation Łhnlich der, in der’’’’’’’’’^ein Atom fŪr einen Wert steht. Wenn die Funktion rekursiv ist, muū sie einen Namen’’’’’’’’’’’’Nbekommen. Das geht mit einem LABEL-Ausdruck, der den Namen mit der FunkŻ’’’’’’^tionsdefinition in der Bindeliste paart. Dadurch wird der Name an die FunktionsdefiniŻ’’’’’’’’^tion gebunden, so wie eine Variable an ihren Wert gebunden wird. In der Praxis setzt’’’’’’’’’’^man LABEL selten ein. Normalerweise ist es einfacher, Name und Definition wie bei’’’’’’’’’’’’’^den Konstanten zu verknŪpfen. Dies geschieht mit der Pseudofunktion DEFINE, die’’’’’’’’’’’’’’’.wir am Anfang des Kapitels benutzt haben. ’’’’>Diese Funktion kann beliebig viele Parameter der Form ’’’’’’’’ (atom . funktion) ’’’’^haben, wobei "atom" der Name der zu definierenden Funktion "funktion" werden soll.’’’’’’’’’’’’^Sie bewirkt, daū die Definition unter der Eigenschaft FUNCTION in der E-Liste des’’’’’’’’’’’’’Atoms abgelegt wird. ’’’’’’’’’.3. Erweitertes LISP#goalpage("p3")# ’’’’’’’’’^In diesem Kapitel werden wir einige Erweiterungen zum reinen LISP einfŪhren. Zu’’’’’’’’’’’’’’’^diesen Erweiterungen gehŚren MŚglichkeiten fŪr Arithmetik, ZeichenkettenverarbeiŻ’’’’’’’’’’’’’Ntung, Funktionen, die spezielle Argumente erwarten, und Ein- und Ausgabe. ’’’’^In allen FŁllen handelt es sich bei den Erweiterungen um zusŁtzliche Funktionen. So’’’’’’’’’’’Nheiūt das Kommando fŪr die Ausgabe eines LISP-Ausdrucks PUT. Syntaktisch ist’’NPUT nichts anderes als eine Funktion mit einem Argument. Sie kann mit anderen’^Funktionen verkettet werden, und diese Verkettung wird ganz auf die Ūbliche Art’’’’’’’’’’’’’’’^behandelt, zuerst Berechnung der innern, dann der Łuūeren Funktionsaufrufe. Ein’’’’’’’’’’’’’’’NErgebnis ist nur in dem trivialen Sinn vorhanden, daū PUT sein Argument wieder.liefert, also die IdentitŁt ist. ’’’’’’’’’’’’’^Funktionen, die eine Aktion wie Ein- oder Ausgabe bewirken, oder die LangzeitwirŻ’’’’’’’’’’’’’Nkung (gesehen auf die AusfŪhrungsdauer des Programms) haben, wie DEFINE und’’’^SET, heiūen Pseudofunktionen. Es ist eine Besonderheit von LISP, daū alle FunktioŻ’’’’’’’’’’’’Nnen einschlieūlich den Pseudofunktionen ein Ergebnis haben mŪssen. In einigen’>FŁllen ist das Ergebnis trivial und kann ignoriert werden. ’’’^In diesem Kapitel beschreiben wir verschiedene Erweiterungen der Sprache LISP, die’’’’’’’’’’’’.im System fest enthalten sind. ’’’’’’’’’’’’’’’.3.1 Gequotete Parameter #goalpage("p3.1")# ’’’NBevor ein Argument an eine Funktion Ūbergeben wird, wird erst sein Wert in der^Bindeliste nachgesehen, d.h. es wird nicht der Name der Variablen Ūbergeben, sonŻ’’’’’’’’’’’’’Ndern ihr Wert. Wenn das Argument als Konstante behandelt werden soll, muū es’’^ge"quotet" werden, d.h. statt "argument" steht (quote argument). Wenn ein Argument’’’’’’’’’’’’Neiner Funktion immer als Konstante behandelt werden soll, ist es bequemer, dasNArgument nicht jedesmal zu quoten. Das EUMEL-LISP-System erlaubt, in diesem’’’NFall den formalen Parameter in der Funktionsdefinition bereits zu quoten. ’’’’NDieser Mechanismus wurde auch benutzt, um QUOTE zu implementieren; die FunkŻ’’. quote = (lambda ((QUOTE x)) x) ’’’’’’’’’’’.3.2 Funktionen mit beliebig vielen ’’’’’’’’’’. Argumenten #goalpage("p3.2")# ’’’’’’’’’’’^Ein Beispiel ist "list", das beliebig viele Argumente haben kann, die zu einer Liste’’’’’’’’’’Nzusammengefaūt werden. Da eine Funktion nur eine feste Anzahl von Parametern’’^haben kann, eine Funktion mit beliebig vielen Argumenten aber gewiū keine feste’’’’’’’’’’’’’’’NAnzahl von Argumenten hat, werden die beliebig vielen Argumente zu einer Liste^zusammengefaūt und ein einziger Parameter wird an diese Liste gebunden. Da "list"’’’’’’’’’’’’’^genau diese Liste liefern soll, wird diese Funktion ebenfalls zu einer "IdentitŁt": ’’’’’’’’’’. list = (lambda ((INDEFINITE x)) x) ’’’’’’’’NSolche Parameter werden durch INDEFINITE gekennzeichnet. Sie kŚnnen auch geŻ’’^quotet werden, indem man (INDEFINITE QUOTE parameter) schreibt; das wirkt so, als’’’’’’’’’’’’’NwŁren alle Argumente, die diesem Parameter zugeordnet werden, einzeln gequotet> evalquote = (lambda (fkt (INDEFINITE QUOTE expr)) ’’’’’’’’’. (apply fkt expr NIL) ) .3.3 Funktionale Parameter #goalpage("p3.3")# ’^In der Mathematik gibt es Funktionen, die andere Funktionen als Argument haben. In’’’’’’’’’’’’^der Algebra kŚnnte man die Funktion "(operation operator a b)" definieren, wobei’’’’’’’’’’’’’’^"operator" ein funktionales Argument ist, das die Operation festlegt, die auf "a" und’’’’’’’’’a’’+’’’’’’’’’’’’’’’’’’’‘’’+’’’’’’’’’’’’’’’’’’’Į’’-’’’’’’’’’’’’’’’’’’’ń’’-’’’’’’’’’’’’’’’’’’’!“’-’’’’’’’’’’’’’’’’’’’Q“’<’’’’’’’’’’’’’’’’’’’‘“’F’’’’’’’’’’’’’’’’’’’į“’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ enter nequ :’’’’’’’’!”’%’’’’’’’’’’’’’’’’’’’Q”’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’q”’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’””’’’’’’’’’’’’’’’’’’’’Į”’1’’’’’’’’’’’’’’’’’’’•’2’’’’’’’’’’’’’’’’’’’A•’.’’’’’’’’’’’’’’’’’’’q•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘•’F’’’’’’’’’’’’’’’’’’’į•’@’’’’’’’’’’’’’’’’’’’1–’'’’’’’’’’’’’’’’’’’’’’’ IF not found’’’’’’’’a–’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’–’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘–’I’’’’’’’’’’’’’’’’’’’į–’4’’’’’’’’’’’’’’’’’’’!—’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A—’.’’’’’’’’’’’’’’’’’’’q—’3’’’’’’’’’’’’’’’’’’’±—’’’’’’’’’’’’’’’’’’’’ї’+’’’’’’’’’’’’’’’’’’’˜’-’’’’’’’’’’’’’’’’’’’1˜’'’’’’’’’’’’’’’’’’’’’’’ PER.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a˜’’’’’’’’’’’’’’’’’’’’˜’6’’’’’’’’’’’’’’’’’’’Į˜’0’’’’’’’’’’’’’’’’’’’’’ not found.’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ same macro :’’’’’’’’™’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ type ok :’’’’’’’’’’’1™’2’’’’’’’’’’’’’’’’’’’q™’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘™’'’’’’’’’’’’’’’’’’’’’Į™’’’’’’’’’’’’’’’’’’’’ń™’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’!š’’’’’’’’’’’’’’’’’’’’Aš’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’qš’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘š’%’’’’’’’’’’’’’’’’’’’’’ lmp := nil;’’’’’’’’’Įš’’’’’’’’’’’’’’’’’’’’ᚒ’’’’’’’’’’’’’’’’’’’›’$’’’’’’’’’’’’’’’’’’’1›’’’’’’’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’’’Q›’’’’’’’’’’’’’’’’’’’’q›’’’’’’’’’’’’’’’’’’’’‘›’%’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Į›’’’’’’’’’’’’’’’’’’’’į›’8’’’’’’’’’’’’’’’’’’’!œ’’’’’’’’’’’’’’’’’’’’Aœ’’’’’’’’’’’’’’’’’’’’aœ’’’’’’’’’’’’’’’’’’’’’’ test eof;’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’”œ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’Įœ’’’’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ test eof :’’’’’’’’’’ᜒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’.’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į’ ’’’’’’’’’’’’’’’’’’’ž’)’’’’’’’’’’’’’’’’’’’Až’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’až’)’’’’’’’’’’’’’’’’’’’‘ž’’’’’’’’’’’’’’’’’’’’”ž’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’Įž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įž’,’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’!Ÿ’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’AŸ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŸ’#’’’’’’’’’’’’’’’’’’’‘Ÿ’’’’’’’’’’’’’’’’’’’’±Ÿ’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’џ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŸ’$’’’’’’’’’’’’’’’’’’’! ’’’’’’’’’’’’’’’’’’’’1 ’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’Q ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q ’)’’’’’’’’’’’’’’’’’’’” ’’’’’’’’’’’’’’’’’’’’’’ END OP IN;’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į ’’’’’’’’’’’’’’’’’’’’į ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’!”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1”’&’’’’’’’’’’’’’’’’’’’a”’’’’’’’’’’’’’’’’’’’’’’ END PROC err;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’””’’’’’’’’’’’’’’’’’’’’’’ END PROC err;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į”’’’’’’’’’’’’’’’’’’’’į”’’’’’’’’’’’’’’’’’’’’’’ END PROC gen;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń”’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’1¢’’’’’’’’’’’’’’’’’’’’’’ END PROC gen;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A¢’’’’’’’’’’’’’’’’’’’’q¢’’’’’’’’’’’’’’’’’’’’‘¢’’’’’’’’’’’’’’’’’’’’±¢’’’’’’’’’’’’’’’’’’’’’’ END PROC gen;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į¢’"’’’’’’’’’’’’’’’’’’’ń¢’’’’’’’’’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’1£’’’’’’’’’’’’’’’’’’’’Q£’’’’’’’’’’’’’’’’’’’’’’ END PROC gen;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a£’!’’’’’’’’’’’’’’’’’’’‘£’’’’’’’’’’’’’’’’’’’’’’ lf’’’’’’’’’’’’’’’’’’±£’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ PROC lf :’’’’’’’’’’’’Ń£’’’’’’’’’’’’’’’’’’’’’’ outbuf := nt’’’’’’’’’’ END PROC lf;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń£’’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’!¤’’’’’’’’’’’’’’’’’’’’’’ outbuf := nt’’’’’’’’A¤’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a¤’’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’”¤’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į¤’’’’’’’’’’’’’’’’’’’’ᤒ%’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’A„’’’’’’’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’%’’vorget (targ,’’”„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ PROC dynamo :’’’’’’’’Į„’’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¦’OC graphic a^’’’’ ’’’’’’’’’’’’’’’’’’’’Q¦’*’’’’’’’’’’’’’’’’’’’¦’*’’’’’’’’’’’’’’’’’’’±¦’*’’’’’’’’’’’’’’’’’’’ᦒ*’’’’’’’’’’’’’’’’’’’§’+’’’’’’’’’’’’’’’’’’’A§’*’’’’’’’’’’’’’’’’’’’q§’+’’’’’’’’’’’’’’’’’’’”§’*’’’’’’’’’’’’’’’’’’’ѧ’*’’’’’’’’’’’’’’’’’’’Ø’+’’’’’’’’’’’’’’’’’’’1Ø’,’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’aØ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ø’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ø’’’’’’’’’’’’’’’’’’’’ŃØ’’’’’’’’’’’’’’’’’’’’ńØ’)’’’’’’’’’’’’’’’’’’’!©’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q©’<’’’’’’’’’’’’’’’’’’’‘©’4’’’’’’’’’’’’’’’’’’’Ń©’:’’’’’’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ŗ’A’’’’’’’’’’’’’’’’’’’Ŗ’6’’’’’’’’’’’’’’’’’’’ĮŖ’@’’’’’’’’’’’’’’’’’’’«’<’’’’’’’’’’’’’’’’’’’Q«’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘«’2’’’’’’’’’’’’’’’’’’’’v’3’’’’’’’’’’’’’’’’’’’¬’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A¬’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a¬’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¬’H’’’’’’’’’’’’’’’’’’’Ѭ’H’’’’’’’’’’’’’’’’’’’!­’H’’’’’’’’’’’’’’’’’’’q­’H’’’’’’’’’’’’’’’’’’’Į­’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Rq’B’’’’’’’’’’’’’’’’’’’®’’’’’’’’’’’’ka_’’Ņq’> erro–k`’’r’= error_-j’’q®’’’’’’’’’’’’’’’’’’’’‘®’J’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į®’E’’’’’’’’’’’’’’’’’’’’’ init dynamo;’’’’’’’’’’ first pass;’’’’’’’’’’’ IF no errors’’’’’’’’1Æ’’’’’’’’’’’’’’’’’’’’¢q’’’’’’’’’’’’`_•’’qÆ’I’’’’’’’’’’’’’’’’’’’ĮÆ’I’’’’’’’’’’’’’’’’’’’°’I’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ first pass :’’’’’’’’a°’’’’’’’’’’’’’’’’’’’’°’’’’’’’’’’’’’’’’’’’’”°’’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’’Į°’’’’’’’’’’’’’’’’’’’’Ѱ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ń°’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’!±’’’’’’’’’’’’’’’’’’’’A±’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a±’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’”±’’’’’’’’’’’’’’’’’’’’Į±’’’’’’’’’’’’’’’’’’’’į±’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’!²’’’’’’’’’’’’’’’’’’’’A²’’’’’’’’’’’’’’’’’’’’a²’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’”²’’’’’’’’’’’’’’’’’’’’’’ gen repeat.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į²’’’’’’’’’’’’’’’’’’’’į²’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’!³’’’’’’’’’’’’’’’’’’’’A³’’’’’’’’’’’’’’’’’’’’a³’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’”³’’’’’’’’’’’’’’’’’’’’Į³’’’’’’’’’’’’’’’’’’’’ѳ’’’’’’’’’’’’’’’’’’’’ń³’’’’’’’’’’’’`°’’“’F’’’’’’’’’’’’’’’’’’’a“’F’’’’’’’’’’’’’’’’’’’±“’F’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’µ’’’’’’’’’’’’’’’’’’’’µ’’’’’’’’’’’’’’’’’’’’1µ’’’’’’’’’’’’’’’’’’’’Aµ’;’’’’’’’’’’’’’’’’’’’µ’;’’’’’’’’’’’’’’’’’’’Įµ’’’’’’’’’’’’’’’’’’’’įµ’’’’’’’’’’’’’’’’’’’’¶’’’’’’’’’’’’’’’’’’’’!¶’’’’’’’’’’’’’’’’’’’’A¶’’’’’’’’’’’’’’’’’’’’a¶’’’’’’’’’’’’’’’’’’’’¶’’’’’’’’’’’’’’’’’’’’”¶’’’’’’’’’’’’’’’’’’’’>"b" ausgefŪhrt werden soll. Beispielsweise gilt ’’’’’’’’’’’’’’ operation (+ 3 4) = 7 ’’’’’’ operation (* 3 4) = 12 ’’’’’^In LISP sind funktionale Argumente sehr nŪtzlich. Eine wichtige Funktion mit einem’’’’’’’’’’’’.Argument ist MAPLIST. Ihre Definition ist ’’’’. (LAMBDA (LIST (FUNCTION FN)) ’’’’’’’’’’’’’’’ (COND ((NULL LIST) NIL) ’’N (T (CONS (FN (HEAD LIST)) (MAPLIST (TAIL LIST) FN))) ’’’’’’’’’’’’’’’NDiese Funktion nimmt eine Liste und eine Funktion als Argument und wendet die’.Funktion auf die Listenelemente an. ’’’’’’’’’’>3.4 PrŁdikate und boolesche Konstanten #goalpage("p3.4")# ’’’’^Die booleschen Werte sind, wie in Kapitel 1 gesagt, T und F. Bei LISP-AusdrŪcken’’’’’’’’’’’’’’NmŪūte daraus (quote T) und (quote F) werden, aber da die APVALs dieser Atome’’>wieder den Wert T und F haben, ist das quoten nicht nŚtig. ’’’^PrŁdikate sind Funktionen, die T oder F als Ergebnis haben; es gibt also keine formaŻ’’’’’’’’’>len Unterschiede zwischen anderen Funktionen und PrŁdikaten. ’^Daher ist es durchaus mŚglich, daū eine Funktion einen Wert liefert, der weder T’’’’’’’’’’’’’’^noch F ist, daū aber durch einen bedingten Ausdruck an dieser Stelle ein boolescher’’’’’’’’’’’^Ausdruck verlangt wird. In diesem Fall ist die Wirkung des Ausdrucks nicht definiert. ’’’’’’’’.Das PrŁdikat EQ hat folgendes Verhalten: ’’’’’>1. Wenn seine Argumente verschieden sind, ist das Ergebnis F. >2. Wenn die Argumente dasselbe Atom sind, ist das Ergebnis T. ^3. Wenn die Argumente gleich, aber nicht atomar sind, ist das Ergebnis T oder F, je’’’’’’’’’’’N nachdem, ob sie ein und dasselbe Objekt im Heap sind oder nicht. ’’’’’’’’’’.3.5 Unbenannte Atome #goalpage("p3.5")# ’’’’’’NDie meisten Atome im EUMEL-LISP haben einen Namen, der sie bei Ein- und’’’’’’’.Ausgabeoperationen identifiziert. ’’’’’’’’’’’’^Es gibt aber auch Atome, die keinen Namen haben und stattdessen durch ihre Werte’’’’’’’’’’’’’’NreprŁsentiert werden. Momentan sind das Ganzzahlen und Zeichenketten (TEXTe);’Nauch die booleschen Werte kann man in einem weiteren Sinn dazurechnen. ’’’’’’’3.5.1 Ganzzahlen ’’’’’’’’’’’’’NIm EUMEL-LISP gibt es Funktionen, die Basisoperationen und Tests durchfŪhren. .Ganzzahlen haben folgende Eigenschaften: ’’’’’N1. Eine Ganzzahl besteht aus einem optionalen Vorzeichen und einer Folge von’’N Ziffern; zwischen Vorzeichen und Ziffern kŚnnen Leerzeichen stehen. ’’’’’’’^2. Der Wert einer Ganzzahl liegt zwischen -32768 und 32767 (minint und maxint). ’’’’’’’’’’’’’’N3. Eine Ganzzahl kann Ūberall dort stehen, wo ein Atom stehen kann, auūer als’ Parameter. N4. Ganzzahlen sind Konstanten; sie brauchen also nicht gequotet werden. ’’’’’’.3.5.2 Arithmetische Funktionen und PrŁdikate ’>Es folgt eine Liste aller arithmetischen Funktionen. ’’’’’’’’’^Wenn ein Argument einer dieser Zahlen keine Ganzzahl ist, erfolgt eine FehlermelŻ’’’’’’’’’’’’’N (sum x1 ... xn) liefert die Summe der xi; wenn keine Argumente gegeŻ’> ben werden, wird 0 geliefert. ’’’’’’’> (difference x y) liefert die Differenz von x und y. ’’N (product x1 ... xn) liefert das Produkt seiner Argumente; wenn ’’’’’’’’’’N keine Argumente gegeben werden, wird 1 ’’’’’’’’’’’’’’. geliefert. ’’’’’’’’’’N (quotient x y) liefert den Quotienten von x und y, ohne den ’’’’’’’’> Rest zu berŪcksichtigen. ’’’’’’’’’’’’N (remainder x y) liefert den Rest der Division von x und y. ’’’’’’’’’N (getint) liest eine Zahl vom Bildschirm ein und ’’’’’’’’’’’’’’. liefert sie. ’’’’’’’’N (putint x) gibt x auf den Bildschirm aus. IdentitŁts funktion. ’.3.5.3 Zeichenkettenverarbeitung ’’’’’’’’’’’’’’NIm Moment ist nur Zeichenketten-Ein- und Ausgabe implementiert. ’’’’’’’’’’’’’’^Die Ausgabe lŚst bei Argumenten, die keine Zeichenketten sind, eine Fehlermeldung’’’’’’’’’’’’’> (gettext) liest eine Zeichenkette ein und liefert sie. ’’. (puttext x) gibt eine Zeichenkette aus. ’’’3.5.4 Test auf Gleichheit ’’’’^ (equal x y) testet, ob x und y vom gleichen Typ sind, und wenn ja, ob sie gleich’’’’’’’’’’’ sind. ’’’’’’’’’.3.6 Aufruf von EUMEL aus #goalpage("p3.6")# ’’NBevor man den LISP-Interpreter benutzen kann, muū er folgendermaūen implemenŻ’tiert werden: archive ("lisp") ’’’’’’’’’’’’’fetch all (archive) ’’’’’’’’’’release (archive) ’’’’’’’’’’’’insert ("lisp.1") ’’’’’’’’’’’’insert ("lisp.2") ’’’’’’’’’’’’insert ("lisp.3") ’’’’’’’’’’’’insert ("lisp.4") ’’’’’’’’’’’’NDas LISP-System verfŪgt Ūber einen Heap, in dem alle LISP-AusdrŪcke gespeiŻ’’’^chert sind. StandardmŁūig enthŁlt der Heap eine Reihe von Funktionen, die nicht in’’’’’’’’’’’’^den LISP-Programmen definiert werden mŪssen (Ųbersichten Ūber die StandardfunkŻ’’’’’’’’’’’’’’’tionen siehe Kapitel 3.5). ’’’Nwird das LISP-System im EUMEL-Dialog gestartet. In einem Eingabefenster wird’’^mit Hilfe des Paralleleditors eine LISP-EINGABE-MŚglichkeit angeboten. Die AusŻ’’’’’’’’’’’’’’’.gabe erfolgt in dem LISP-AUSGABE-Fenster. ’’’’>Das LISP-System kann folgendermaūen verlassen werden: ’’’’’’’’. break lisp . ’’’’’’’’’’’’’^Statt dieser direkten Art der Benutzung der LISP-Maschine ist auch eine an ELAN’’’’’’’’’’’’’’’Nangelehnte Art mit den Prozeduren "run lisp", insert lisp" usw. vorgesehen: ’’. run lisp (TEXT CONST dateiname) ’’’’’’^wird eine Kopie des Heaps angelegt, das Programm aus der Datei "dateiname" in die’’’’’’’’’’’’’^Kopie eingelesen und gestartet. Durch diesen Kopiermechanismus wird der OriginalŻ’’’’’’’’’’’’’>heap vor ZusammenbrŪchen des LISP-Systems geschŪtzt. ’’’’’’’’’. insert lisp (TEXT CONST dateiname) ’’’^bewirkt dasselbe wie "run lisp"; allerdings wird jetzt direkt auf dem Originalheap’’’’’’’’’’’’Ngearbeitet. Dadurch sind alle Önderungen im Heap, die das Programm verursacht’^(meist Definition von Funktionen durch DEFINE) bleibend, aber auch ein ZusammenŻ’’’’’’’’’’’’’’^bruch ist insoweit endgŪltig, als das LISP-System jetzt neu gestartet werden muū.’’’’’’’’’’’’’Das geschieht mit ’’’’’’’’’’’’> start lisp system (DATASPACE CONST dsname) ’’’’’’’’’’’N"dsname" gibt dabei den Datenraum an, der die zum Hochfahren notwendigen Daten^enthŁlt. Solche Daten im richtigen Format enthŁlt der Datenraum "lisp.bootstrap". ’’’’’’’’’’’’NWenn der zuletzt benutzte Heap mit nicht mehr durch LISP-Programme erreichŻ’’’>bare Strukturen vollgestopft ist, schafft die Prozedur ’’’’’’’. collect lisp heap garbage ’’’’’’’’’’’’ lisp storage info ’’’’.kann man den Erfolg kontrollieren. ’’’’’’’’’’’.4. Detailbeschreibungen#goalpage("p4")# ’’’’’’.4.1 Grundfunktionen #goalpage("p4.1")# ’’’’’’’^Die Datei "lisp.1" enthŁlt ein Paket, das die Grundlage des LISP-Systems bildet. Es’’’’’’’’’’’implementiert > - die primitiven LISP-Funktionen wie "cons", "null", etc., ’N - die Verwaltung des Heaps, in dem die LISP-Strukturen und die Objektliste’’. (Oblist) gespeichert sind, ’’’’’’’’’’’’’’’N - einen Datentyp SYM, dessen Wertevorrat aus Zeigern auf die im Heap gespeiŻ. cherten Strukturen besteht, ’’’’’’’’’’’’’’^ - Funktionen zur Konversion allgemeiner Daten in LISP-Strukturen (bisher realiŻ’’’’’’’’’’’’’. siert: TEXT <--> SYM und INT <--> SYM). ’’^Durch die Implementation der Basisoperationen als exportierte und damit allgemein’’’’’’’’’’’’’NverfŪgbare ELAN-Prozeduren ist es mŚglich, LISP-Strukturen durch ELAN-ProgŻ’’’Nramme zu manipulieren; insbesonders kŚnnen ELAN- und LISP-Programme Ūber’’’’’’.diese Strukturen miteinander kommunizieren. ’’NWenn EigenschaĮ¶’’’’’’’’’’’’’’’’’’’’į¶’’’’’’’’’’’’’’’’’’’’·’’’’’’’’’’’’’’’’’’’’!·’’’’’’’’’’’’’’’’’’’’A·’’’’’’’’’’’’’’’’’’’’a·’’’’’’’’’’’’’’’’’’’’·’’’’’’’’’’’’’’’’’’’’”·’’’’’’’’’’’’’’’’’’’’Į·’’’’’’’’’’’’±’’į· plot found Ī’’ø’)’’’’’’’’’’’’’’’’’’’1ø’.’’’’’’’’’’’’’’’’’’’aø’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qø’’’’’’’’’’’’’’’’’’’’ø’’’’’’’’’’’’’’’’’’’’”ø’’’’’’’’’’’’’’’’’’’’Įø’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įø’’’’’’’’’’’’’’’’’’’’¹’’’’’’’’’’’’’’’’’’’’!¹’’’’’’’’’’’’’’’’’’’’A¹’’’’’’’’’’’’’’’’’’’’a¹’’’’’’’’’’’’’’’’’’’’’’ next sym.’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¹’’’’’’’’’’’’’’’’’’’’”¹’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’Į¹’#’’’’’’’’’’’’’’’’’’’’’ SELECT’’’’’’’’’’’’’ń¹’M’’’’’’’’’’’ Ī’’rr’ ’’’’’’’’’’’’’aŗ’3’’’’’’’’’’’’’’’’’’’”ŗ’’’’’’’’’’’’’’’’’’’’Įŗ’4’’’’’’’’’’’’’’’’’’’»’4’’’’’’’’’’’’’’’’’’’A»’4’’’’’’’’’’’’’’’’’’’»’’’’’’’’’’’’,Ļ’’Rx’C’’’’’’’’’’’ Ł’’Į»’*’’’’’’’’’’’’’’’’’’’ń»’’’’’’’’’’’’’’’’’’’’¼’4’’’’’’’’’’’’’’’’’’’Q¼’"’’’’’’’’’’’’’’’’’’’¼’’’’’’’’’’’’’’’’’’’’”¼’’’’’’’’’’’’’’’’’’’’Į¼’’’’’’’’’’’’’’’’’’’’į¼’1’’’’’’’’’’’’’’’’’’’!½’’’’’’’’’’’’’’’’’’’’A½’’’’’’’’’’’’‘ Ś’’a½’ "EN "’’’’ END SELECT.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ macro card :’’’’’’’’’’ IF in macro’’’’’’’’‘½’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’±½’’’’’’’’’’’’’’’’’’’’ѽ’’’’’’’’’’’’’’’’’’’’ń½’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’1¾’’’’’’’’’’’’’’’’’’’’Q¾’"’’’’’’’’’’’’’’’’’’’¾’.’’’’’’’’’’’’’’’’’’’±¾’’’’’’’’’’’’’’’’’’’’Ѿ’’’’’’’’’’’’’’’’’’’’ń¾’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’æ’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’1æ’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’Qæ’’’’’’’’’’’’’’’’’’’’qæ’’’’’’’’’’’’’’’’’’’’‘æ’#’’’’’’’’’’’’’’’’’’’Įæ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’įæ’’’’’’’’’’’’’’’’’’’’Ą’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’’!Ą’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ macro end :’’’’’’’’’’’ lmp := nil;’’’’’’’’AĄ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aĄ’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’Ą’’’’’’’’’’’’’’’’’’’’”Ą’&’’’’’’’’’’’’’’’’’’’ŃĄ’’’’’’’’’’’’’’’’’’’’ńĄ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’1Į’’’’’’’’’’’’’’’’’’’’QĮ’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’qĮ’’’’’’’’’’’’’’’’’’’’‘Į’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Į’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’ŃĮ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńĮ’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’Ā’#’’’’’’’’’’’’’’’’’’’AĀ’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ print card :’’’’’’’’aĀ’’’’’’’’’’’’’’’’’’’’Ā’C’’’’’’’’’’’’’’’’’’’ŃĀ’ ’’’’’’’’’’’’’’’’’’’Ć’I’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’QĆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ plot card :’ #’’¢w’D PROC grapvt’’‘Ć’B’’’’’’’’’’’’’’’’’’’įĆ’ ’’’’’’’’’’’’’’’’’’’Ä’H’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’aÄ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ä’’’’’’’’’’’’’’’’’’’’”Ä’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńÄ’’’’’’’’’’’’’’’’’’’’Å’’’’’’’’’’’’’’’’’’’’1Å’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aÅ’’’’’’’’’’’’’’’’’’’’Å’’’’’’’’’’’’’’’’’’’’‘Å’)’’’’’’’’’’’’’’’’’’’ĮÅ’’’’’’’’’’’’’’’’’’’’įÅ’(’’’’’’’’’’’’’’’’’’’Ę’(’’’’’’’’’’’’’’’’’’’AĘ’’’’’’’’’’’’’’’’’’’’aĘ’ ’’’’’’’’’’’’’’’’’’’‘Ę’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ content :’’’’’’’’’’’”Ę’'’’’’’’’’’’’’’’’’’’’ŃĘ’#’’’’’’’’’’’’’’’’’’’Ē’)’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ē’’’’’’’’’’’’’’’’’’’’’’ i := 1;’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’’’ i INCR 1’’’’’’’’’’AĒ’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ for card :’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’qĒ’’’’’’’’’’’’’’’’’’’’‘Ē’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮĒ’’’’’’’’’’’’’’’’’’’’įĒ’’’’’’’’’’’’’’’’’’’’ńĒ’’’’’’’’’’’’’’’’’’’’’’ ELSE TRUE’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Č’’’’’’’’’’’’’’’’’’’’1Č’1’’’’’’’’’’’’’’’’’’’qČ’9’’’’’’’’’’’’’’’’’’’±Č’:’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’ńČ’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’É’’’’’’’’’’’’’’’’’’’’!É’%’’’’’’’’’’’’’’’’’’’QÉ’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’É’’’’’’’’’’’’’’’’’’’’‘É’’’’’’’’’’’’’’’’’’’’±É’’’’’’’’’’’’’’’’’’’’ŃÉ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’ńÉ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ noise card :’’’’’’’’Ź’%’’’’’’’’’’’’’’’’’’’AŹ’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ run card :’’’’’’’’’’aŹ’’’’’’’’’’’’’’’’’’’’Ź’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ gen repeat :’’’’’’’’’’ lf;’’’’’’’’’’’’’’’’”Ź’A’’’’’’’’’’’’’’’’’’’ńŹ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ė’’’’’’’’’’’’ u’’²p’M’’’’’’’’’’’ $’’¢x’3’’’’’’’’’’’’’’’’’’’Ė’’’’’’’’’’’’’’’’’’’’”Ė’+’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ŃĖ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ģ’’’’’’’’’’’’’’’’’’’’!Ģ’,’’’’’’’’’’’’’’’’’’’QĢ’-’’’’’’’’’’’’’’’’’’’Ģ’3’’’’’’’’’’’’’’’’’’’’’ lf;’’’’’’’’’’’’’’’’ĮĢ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńĢ’’’’’’’’’’’’’’’’’’’’Ķ’’’’’’’’’’’’’’’’’’’’1Ķ’:’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qĶ’’’’’’’’’’’’’’’’’’’’‘Ķ’’’’’’’’’’’’’’’’’’’’±Ķ’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ gen plots :’’’’’’’’’ŃĶ’-genln (draw’’’’’’’’Ī’%’’’’’’’’’’’’’’’’’’’Bs’4 genln (draŚ£’’’’ END REP.’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aĪ’’’’’’’’’’’’’’’’’’’’Ī’’’’’’’’’’’’’’’’’’’’”Ī’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ gen prints :’’’’’’’’ĮĪ’’’’’’’’’’’’’’’’’’’’įĪ’&’’’’’’’’’’’’’’’’’’’Ļ’+’’’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AĻ’’’’’’’’’’’’’’’’’’’’aĻ’’’’’’’’’’’’’’’’’’’’Ļ’’’’’’’’’’’’’’’’’’’’”Ļ’/’’’’’’’’’’’’’’’’’’’įĻ’’’’’’’’’’’’’’’’’’’’Š’ THEN¤’’‚s’ ’’qŠ’J’’’’’’’’’’’’’’’’’’’ĮŠ’*’’’’’’’’’’’’’’’’’’’ńŠ’M’’’’’’’’’’’’’’’’’’’AŃ’J’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’‘Ń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ń’%’’’’’’’’’’’’’’’’’’’įŃ’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’!Ņ’&’’’’’’’’’’’’’’’’’’’QŅ’’’’’’’’’’’’’’’’’’’’’’ END SELECT;’’’’’’’’’’’ next sym’’’’’’’’’’’’qŅ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ņ’>’’’’’’’’’’’’’’’’’’’ŃŅ’’’’’’’’’’’’’’’’’’’’ńŅ’)’’’’’’’’’’’’’’’’’’’’’ set index;’’’’’’’’’’’’ test global;’’’’’’’’!Ó’’’’’’’’’’’’’’’’’’’’AÓ’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aÓ’’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ set index :’’’’’’’’’”Ó’8’’’’’’’’’’’’’’’’’’’įÓ’4’’’’’’’’’’’’’’’’’’’!Ō’/’’’’’’’’’’’’’’’’’’’aŌ’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ō’’’’’’’’’’’’’’’’’’’’ĮŌ’;’’’’’’’’’’’’’’’’’’’Õ’’’’’’’’’’’’’’’’’’’’!Õ’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AÕ’’’’’’’’’’’’’’’’’’’’QÕ’’’’’’’’’’’’’’’’’’’’qÕ’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Õ’’’’’’’’’’’’’’’’’’’’±Õ’’’’’’’’’’’’’’’’’’’’ŃÕ’.’’’’’’’’’’’’’’’’’’’Ö’’’’’’’’’’’’’’’’’’’’Ö’"’’’’’’’’’’’’’’’’’’’AÖ’!’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’qÖ’7’’’’’’’’’’’’’’’’’’’±Ö’2’’’’’’’’’’’’’’’’’’’ńÖ’<’’’’’’’’’’’’’’’’’’’1×’9’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q×’’’’’’’’’’’’’’’’’’’’’’ get name;’’’’’’’’’’‘×’’’’’’’’’’’’’’’’’’’’’’ get index.’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ get name :’’’’’’’’’’±×’’’’’’’’’’’’’’’’’’’’’’ IF internal’’’’’’’’ften von "SYM"-Objekten beschrieben werden, sind immer die’’’’’’^Eigenschaften der Strukturen gemeint, auf die die Objekte zeigen, wenn nichts andeŻ’’’’’’’’’’’res angegeben wird. ’’’’’’’’’’.Es werden folgende Prozeduren exportiert: ’’’’> PROC initialize lisp system (DATASPACE CONST new heap): ’’’’N "new heap" ist der neue Datenraum, in dem der LISP-Heap ab sofort gefŪhrt’N Vorsicht: Beim Wechsel zu einem neuen Datenraum sind die Werte der’’’’’’’’^ SYM-Variablen, die auf Strukturen im alten Heap zeigen, natŪrlich wertlos! ’’’’’’’’’’’’’’’. PROC dump lisp heap (FILE VAR f): ’’’’’’’’’’^ In "f" wird ein Dump des Heaps erstellt. Dieser Dump ist nur mit Kenntnis des’’’’’’’’’’’’’N Programmtextes aus "lisp 1" verstŁndlich; er wird hier nicht beschrieben. . PROC lisp storage (INT VAR size, used): ’’’’N Nach dem Aufruf gibt "size" die maximal verfŪgbare Anzahl von Knoten an,’’N wŁhrend "used" die Anzahl der tatsŁchlich von LISP-Strukturen belegten’’’’^ Knoten enthŁlt. Zu diesen Strukturen kŚnnen auch solche zŁhlen, die nicht mehr’’’’’’’’’’’’> durch "head" oder "tail" etc. erreichbar sind. ’’’’’’’’’’’. PROC collect lisp heap garbage: ’’’’’’’’’’’’N LŚscht die im LISP-Heap nicht mehr durch "atom (TEXT CONST)", "properŻ’’’’^ ty", "head" und "tail" erreichbaren Strukturen. Es werden auch alle nur von’’’’’’’’’’’’’’’N ELAN-Programmen aus Ūber SYM-Variable erreichbare Strukturen gelŚscht, so’> daū die Werte dieser Variablen undefiniert werden. ’’’’’’’N Die MŪllabfuhr wird von keiner Prozedur dieses Pakets aufgerufen, d.h. der^ Benutzer, der ELAN-Programme einsetzt, braucht nicht alle Strukturen in den’’’’’’’’’’’’’’’N Eigenschaftslisten von Atomen aufzubauen, um sie vor einer versehentlichen^ LŚschung durch die MŪllabfuhr zu schŪtzen, vorausgesetzt, er ruft sie nicht’’’’’’’’’’’’’’’N selbst auf. Er muū allerdings darauf achten, daū im Heap noch genug Platz’. OP := (SYM VAR left, SYM CONST right): ’’’’’^ Nach der Zuweisung zeigt "left" auf die gleiche Struktur wie vorher "right". ’’’’’’’’’’’’’ SYM CONST nil, pname; ’’’’’’N Zwei Konstanten, die dem LISP-System stŁndig zur VerfŪgung stehen mŪsŻ’’’’N sen. Ihre Drucknamen sind "NIL" bzw. "PNAME" (vgl. Schluūbemerkungen) ’’’’. SYM PROC head (SYM CONST sym): ’’’’’’’’’’’’’> Entspricht der im Handbuch beschriebenen Funktion "head". . SYM PROC tail (SYM CONST sym): ’’’’’’’’’’’’’> Entspricht der im Handbuch beschriebenen Funktion "tail". . SYM PROC cons (SYM CONST head, tail): ’’’’’’N Liefert einen SYM-Wert "zeiger" auf eine neue Struktur. Es gilt: ’’’’’’’’’> head ("zeiger") = "head" und tail ("zeiger") = "tail". ’’’. BOOL PROC eq (SYM CONST sym 1, sym 2): ’’’’’^ PrŪft, ob "sym 1" und "sym 2" auf dieselbe Struktur zeigen. Das ist genau dann’’’’’’’’’’’’^ der Fall, wenn sie durch Zuweisung auseinander hervorgegangen sind oder wenn’’’’’’’’’’’’’’. sie auf das gleiche benannte Atom zeigen. . BOOL PROC equal (SYM CONST sym 1, sym 2): ’’N PrŪft, ob "sym 1" und "sym 2" dieselbe Struktur haben; "dieselbe Struktur"N braucht aber nicht "IdentitŁt" zu bedeuten, wie "eq" das verlangt. ’’’’’’’N Umgewandelte TEXTe und INTs werden richtig verglichen (siehe "sym (INT’’’’. CONST)" und "sym (TEXT CONST)"). ’’’’’’’’’. BOOL PROC null (SYM CONST sym): ’’’’’’’’’’’’N PrŪft, ob "sym" gleich der Konstanten "NIL" ist (entspricht ’’’’’’’’’’’’’’. eq ("sym", "NIL"), ist aber schneller). ’’. BOOL PROC atom (SYM CONST sym): ’’’’’’’’’’’’N PrŪft, ob "sym" ein ( benanntes oder unbenanntes) Atom ist. ’’’’’’’’’’’’’’. BOOL PROC is named atom (SYM CONST sym): ’’’. PrŪft, ob "sym" ein benanntes Atom ist. ’’ PROC begin oblist dump: ’’’’. Vorbereitung fŪr "next atom". ’’’’’’’’’’’’ SYM PROC next atom: ’’’’’’’’^ Liefert das nŁchste Atom aus der Objektliste. In der Objektliste sind alle benannŻ’’’’’’’’N ten Atome, die der Heap enthŁlt, aufgefŪhrt (bis auf Ausnahmen; s."delete’> atom"). "NIL" wird immer als letzte Atom geliefert. ’’’’’’. SYM PROC atom (TEXT CONST name): ’’’’’’’’’’’N Liefert einen Zeiger auf das Atom mit dem Namen "name". Wenn kein solches’N Atom in der Objektliste vorhanden ist, wird "NIL" geliefert. ’’’’’’’’’’’’’. SYM PROC new atom (TEXT CONST name): ’’’’’’’N Liefert einen Zeiger auf das Atom mit dem Namen "name". Wenn kein solches’^ Atom in der Objektliste vorhanden ist, wird ein neues mit diesem Namen in sie’’’’’’’’’’’’’ eingefŪgt. ’’’’’’’’’’’’’’’. PROC create atom (TEXT CONST name): ’’’’’’’’^ FŪgt ein Atom mit dem Namen "name" in die Objektliste ein. Wenn ein solches’’’’’’’’’’’’’’’N Atom bereits existiert, wird stattdessen eine Fehlermeldung ausgegeben. ’’. PROC delete atom (SYM CONST atom): ’’’’’’’’’> Streicht das Atom "atom" aus der Objektliste. ’’’’’’’’’’’’> PROC begin property list dump (SYM CONST atom): ’’’’’’’’’’’’. Vorbereitung fŪr "next property". ’’’’’’’’> PROC next property (SYM VAR property id, property): ’’’’’’’’^ Liefert die nŁchste Eigenschaft aus der Eigenschaftsliste des zuletzt durch’’’’’’’’’’’’’’’^ "begin property list dump" vorbereiteten Atoms. Wenn es sich bei der EigenŻ’’’’’’’’’’’’’’’^ schaft um eine Flagge handelt, wird "property" auf "NIL" gesetzt; wenn es keine’’’’’’’’’’’^ nŁchste Eigenschaft mehr gibt, werden "property" und "property id" auf "NIL"’’’’’’’’’’’’’’^ Der Dump der Eigenschaftsliste beeintrŁchtigt die "Verwendbarkeit" des Atoms in’’’’’’’’’’’N keiner Weise; es ist wŁhrend des Dumps sogar mŚglich, Eigenschaften und’’’N Flaggen zu lesen. Wenn wŁhrend des Dumps Eigenschaften oder Flaggen geŁnŻ’^ dert oder geschrieben werden, ist mit fehlerhaften Dumpergebnissen zu rechnen. ’’’’’’’’’’’> PROC add property (SYM CONST atom, property id, property): ’^ "property id" muū ein benanntes Atom sein. FŪhrt eine neue Eigenschaft mit der’’’’’’’’’’’’N Bezeichnung "property id" und dem Wert "property" ein. Wenn bereits eine’’^ Eigenschaft mit der gleichen Bezeichnung existiert, wird die alte Version ŪberŻ’’’’’’’’’’’. deckt, ist aber weiter vorhanden. ’’’’’’’’N PROC alter property (SYM CONST atom, property id, property): ’’’’’’’’’’’’’’’^ Bringt die Eigenschaft mit der Bezeichnung "property id" auf den neuen Wert’’’’’’’’’’’’’’’^ "property". Wenn eine Eigenschaft mit dieser Bezeichnung noch nicht existiert,’’’’’’’’’’’’. wird eine Fehlermeldung ausgegeben. ’’’’’’> BOOL PROC property exists (SYM CONST atom, property id): ’’’^ PrŪft, ob das Atom eine Eigenschaft mit der Bezeichnung "property id" besitzt. ’’’’’’’’’’’> SYM PROC property (SYM CONST atom, property id): ’’’’’’’’’’’^ Liefert den Wert der gerade sichtbaren Eigenschaft des Atoms, die die BezeichŻ’’’’’’’’’’’’^ nung "property id" hat. Falls die Eigenschaft nicht existiert, wird "NIL" geliefert. ’’’’’> PROC delete property (SYM CONST atom, property id): ’’’’’’’’^ LŚscht den gerade sichtbaren Wert der Eigenschaft des Atoms, die die BezeichŻ’’’’’’’’’’’’’^ nung "property id" hat. Wenn eine Łltere Version dieser Eigenschaft durch "add’’’’’’’’’’’’^ property" Ūberdeckt wurde, wird diese jetzt wieder sichtbar. Jede Eigenschaft’’’’’’’’’’’’’> bildet also fŪr jedes Atom einen Stapel (Stack). ’’’’’’’’’. PROC add flag (SYM CONST atom, flag id): ’’’N Das Atom "atom" erhŁlt die Flagge "flag id". Ein Atom kann dieselbe Flagge durchaus mehrmals haben. ’. BOOL PROC flag (SYM CONST atom, flag id): ’’> PrŪft, ob "atom" mindestens eine Flagge "flag id" hat. ’’’. PROC delete flag (SYM CONST atom, flag id): N LŚscht eine Flagge "flag iŃ×’’’’’’’’’’’’’’’’’’’’ń×’’’’’’’’’’’’’’’’’’’’Ų’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’1Ų’’’’’’’’’’’’’’’’’’’’QŲ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŲ’’’’’’’’’’’’’’’’’’’’‘Ų’’’’’’’’’’’’’’’’’’’’”Ų’’’’’’’’’’’’’’’’’’’’ĮŲ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ńŲ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ get index :’’’’’’’’’Ł’’’’’’’’’’’’’’’’’’’’!Ł’’’’’’’’’’’’’’’’’’’’AŁ’’’’’’’’’’’’’’’’’’’’aŁ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’Ł’/’’’’’’’’’’’’’’’’’’’ĮŁ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įŁ’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’Ś’#’’’’’’’’’’’’’’’’’’’’’ next sym.’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ś’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’QŚ’’’’’’’’’’’’’’’’’’’’qŚ’#’’’’’’’’’’’’’’’’’’’”Ś’$’’’’’’’’’’’’’’’’’’’ŃŚ’’’’’’’’’’’’’’’’’’’’’’ END SELECT;’’’’’’’’ńŚ’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’Ū’’’’’’’’’’’’’’’’’’’’’’ next sym.’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ū’’’’’’’’’’’’’’’’’’’’QŪ’$’’’’’’’’’’’’’’’’’’’Ū’’’’’’’’’’’’’’’’’’’’”Ū’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŪ’’’’’’’’’’’’’’’’’’’’įŪ’’’’’’’’’’’’’’’’’’’’’’ init time;’’’’’’’’’’Ü’’’’’’’’’’’’’’’’’’’’!Ü’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ init time :’’’’’’’’’AÜ’&’’’’’’’’’’’’’’’’’’’qÜ’’’’’’’’’’’’’’’’’’’’Ü’#’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’±Ü’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ż’’’’’’’’’’’’’’’’’’’’’’ sym := nt;’’’’’’’’’!Ż’'’’’’’’’’’’’’’’’’’’’QŻ’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ż’’’’’’’’’’’’’’’’’’’’”Ż’!’’’’’’’’’’’’’’’’’’’ŃŻ’,’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’!Ž’"’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’’QŽ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŽ’’’’’’’’’’’’’’’’’’’’‘Ž’ ’’’’’’’’’’’’’’’’’’’ĮŽ’+’’’’’’’’’’’’’’’’’’’ńŽ’,’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ß’’’’’’’’’’’’’’’’’’’’Aß’3’’’’’’’’’’’’’’’’’’’ß’,’’’’’’’’’’’’’’’’’’’±ß’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńß’8’’’’’’’’’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’1ą’’’’’’’’’’’’’’’’’’’’Qą’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qą’’’’’’’’’’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’”ą’3’’’’’’’’’’’’’’’’’’’įą’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’!į’’’’’’’’’’’’’’’’’’’’Aį’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’aį’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’”į’’’’’’’’’’’’’’’’’’’’Įį’)’’’’’’’’’’’’’’’’’’’ńį’=’’’’’’’’’’’’’’’’’’’1ā’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qā’’’’’’’’’’’’’’’’’’’’qā’*’’’’’’’’’’’’’’’’’’’”ā’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’Įā’’’’’’’’’’’’’’’’’’’’įā’’’’’’’’’’’’’’’’’’’’ć’.’’’’’’’’’’’’’’’’’’’1ć’’’’’’’’’’’’’’’’’’’’Qć’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’qć’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ć’’’’’’’’’’’’’’’’’’’’Įć’’’’’’’’’’’’’’’’’’’’įć’6’’’’’’’’’’’’’’’’’’’!ä’’’’’’’’’’’’’’’’’’’’Aä’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’aä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ content :’’’’’’’’’’’’’ IF is init’’’’’’’’’ä’$’’’’’’’’’’’’’’’’’’’±ä’*’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įä’’’’’’’’’’’’’’’’’’’’å’’’’’’’’’’’’’’’’’’’’!å’’’’’’’’’’’’’’’’’’’’Aå’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aå’’’’’’’’’’’’’’’’’’’’qå’/’’’’’’’’’’’’’’’’’’’±å’3’’’’’’’’’’’’’’’’’’’ńå’.’’’’’’’’’’’’’’’’’’’!ę’A’’’’’’’’’’’’’’’’’’’qę’,’’’’’’’’’’’’’’’’’’’”ę’’’’’’’’’’’’’’’’’’’’Įę’’’’’’’’’’’’’’’’’’’’įę’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ē’’’’’’’’’’’’’’’’’’’’!ē’’’’’’’’’’’’’’’’’’’’Aē’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’Qē’’’’’’’’’’’’’’’’’’’’qē’’’’’’’’’’’’’’’’’’’’‘ē’’’’’’’’’’’’’’’’’’’’±ē’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńē’’’’’’’’’’’’’’’’’’’’ńē’’’’’’’’’’’’’’’’’’’’č’’’’’’’’’’’’’’’’’’’’!č’’’’’’’’’’’’’’’’’’’’Ač’’’’’’’’’’’’’’’’’’’’ač’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’č’’’’’’’’’’’’’’’’’’’’”č’’’’’’’’’’’’’’’’’’’’Įč’’’’’’’’’’’’’’’’’’’’įč’’’’’’’’’’’’’’’’’’’’é’’’’’’’’’’’’’’’’’’’’’’ FALSE’’’’’’’’!é’’’’’’’’’’’’’’’’’’’’Aé’’’’’’’’’’’’’’’’’’’’’’ TRUE’’’’’’’’’’’ ELSE FALSE’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aé’’’’’’’’’’’’’’’’’’’’é’’’’’’’’’’’’’’’’’’’’”é’’’’’’’’’’’’’’’’’’’’Įé’’’’’’’’’’’’’’’’’’’’įé’’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’ź’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!ź’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qź’’’’’’’’’’’’’’’’’’’’‘ź’’’’’’’’’’’’’’’’’’’’±ź’’’’’’’’’’’’’’’’’’’’Ńź’0’’’’’’’’’’’’’’’’’’’ė’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ gen init :’’’’’’’’’’1ė’’’’’’’’’’’’’’’’’’’’Qė’’’’’’’’’’’’’’’’’’’’qė’’’’’’’’’’’’’’’’’’’’‘ė’’’’’’’’’’’’’’’’’’’’±ė’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’Ńė’’’’’’’’’’’’’’’’’’’’ńė’’’’’’’’’’’’’’’’’’’’ģ’3’’’’’’’’’’’’’’’’’’’Qģ’M’’’’’’’’’’’’’’’’’’’”ģ’’’’’’’’’’’’’’’’’’’’Įģ’A’’’’’’’’’’’’’’’’’’’ķ’J’’’’’’’’’’’’’’’’’’’aķ’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’ķ’’’’’’’’’’’’’’’’’’’’”ķ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įķ’’’’’’’’’’’’’’’’’’’’įķ’$’’’’’’’’’’’’’’’’’’’’’ enter name.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ enter name :’’’’’’’’ī’’’’’’’’’’’’’’’’’’’’1ī’-’’’’’’’’’’’’’’’’’’’aī’!’’’’’’’’’’’’’’’’’’’‘ī’’’’’’’’’’’’’’’’’’’’±ī’,’’’’’’’’’’’’’’’’’’’įī’E’’’’’’’’’’’’’’’’’’’1ļ’’’’’’’’’’’’’’’’’’’’Qļ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qļ’<’’’’’’’’’’’’’’’’’’’±ļ’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’’’’ IF sym = "("’’’’’’’’Ńļ’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ test index :’’’’’’’’’’ next sym;’’’’’’’’’’ńļ’’’’’’’’’’’’’’’’’’’’š’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’1š’’’’’’’’’’’’’’’’’’’’’’ next sym.’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ subscript :’’’’’’’’’Qš’’’’’’’’’’’’’’’’’’’’qš’’’’’’’’’’’’’’’’’’’’‘š’’’’’’’’’’’’’’’’’’’’±š’!’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įš’’’’’’’’’’’’’’’’’’’’ń’$’’’’’’’’’’’’’’’’’’’’’ sym.’’’’’’’’’’’’’’’1ń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qń’’’’’’’’’’’’’’’’’’’’qń’’’’’’’’’’’’’’’’’’’’‘ń’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ń’’’’’’’’’’’’’’’’’’’’Ńń’’’’’’’’’’’’’’’’’’’’ńń’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’1ņ’’’’’’’’’’’’’’’’’’’’Qņ’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’qņ’’’’’’’’’’’’’’’’’’’’‘ņ’’’’’’’’’’’’’’’’’’’’±ņ’(’’’’’’’’’’’’’’’’’’’įņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ó’’’’’’’’’’’’’’’’’’’’ó’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’1ó’’’’’’’’’’’’’’’’’’’’Qó’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qó’’’’’’’’’’’’’’’’’’’’‘ó’’’’’’’’’’’’’’’’’’’’”ó’’’’’’’’’’’’’’’’’’’’Įó’’’’’’’’’’’’’’’’’’’’įó’#’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ō’’’’’’’’’’’’’’’’’’’’1ō’’’’’’’’’’’’’’’’’’’’Qō’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qō’’’’’’’’’’’’’’’’’’’’‘ō’(’’’’’’’’’’’’’’’’’’’Ņs’3 gen ("drawš’’õ’.’’’’’’’’’’’’’’’’’’’Aõ’H’’’’’’’’’’’’’’’’’’’‘õ’’’’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±õ’’’’’’’’’’’’’’’’’’’’Įõ’’’’’’’’’’’’’’’’’’’’įõ’’’’’’’’’’’’’’’’’’’’ö’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ö’’’’’’’’’’’’’’’’’’’’1ö’’’’’’’’’’’’’’’’’’’’Qö’’’’’’’’’’’’’’’’’’’’qö’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘ö’’’’’’’’’’’’’’’’’’’’±ö’3’’’’’’’’’’’’’’’’’’’ńö’’’’’’’’’’’’’’’’’’’’÷’’’’’’’’’’’’’’’’’’’’’’ PER.’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1÷’’’’’’’’’’’’’’’’’’’’Q÷’’’’’’’’’’’’’’’’’’’’d" von "atom". Wenn keine Flagge existiert, wird nichts getan. ’’’’’’’’’’’’. SYM PROC sym (TEXT CONST text): ’’’’’’’’’’’’^ Konvertiert "text" in ein unbenanntes Atom und liefert einen Zeiger auf dies’’’’’’’’’’’’’’. TEXT PROC text (SYM CONST sym): ’’’’’’’’’’’’^ Konvertiert "sym" in einen TEXT zurŪck, wenn es sich um einen konvertierten’’’’’’’’’’’’’’’N TEXT handelt; wenn nicht, wird eine Fehlermeldung ausgegeben. ’’’’’’’’’’’’. BOOL PROC is text (SYM CONST sym): ’’’’’’’’’> PrŪft, ob "sym" ein konvertierter TEXT ist. ’’’’’’’’’’’’’’. SYM PROC sym character (TEXT CONST text): ’’N "text" muū genau ein Zeichen enthalten. Das Zeichen wird in ein’’’’’’’’’’’N CHARACTER-Objekt im Heap konvertiert und ein Zeiger auf dies Objekt gelieŻ. INT PROC character (SYM CONST sym): ’’’’’’’’N "sym" muū auf ein CHARACTER-Objekt zeigen. Geliefert wird der Code des’’’’. dort gespeicherten Zeichens. ’’’’’’’’’’’’’. SYM PROC sym (INT CONST i 1, i 2): ’’’’’’’’’^ Konvertiert "i 1" und "i 2" in ein unbenanntes Atom und liefert einen Zeiger’’’’’’’’’’’’’’. INT PROC int 1 (SYM CONST sym): ’’’’’’’’’’’’. INT PROC int 2 (SYM CONST sym): ’’’’’’’’’’’’N Holt die Werte der ersten bzw. zweiten Ganzzahl aus "sym", wenn es sich um^ ein konvertiertes INT-Paar handelt; wenn nicht, wird eine Fehlermeldung ausgeŻ’’’’’’’’’’’’. BOOL PROC is int pair (SYM CONST sym): ’’’’’> PrŪft, ob "sym" ein konvertiertes INT-Paar ist. ’’’’’’’’’’>ProzedurŪbergreifende Aussagen Ūber das Paket "lisp.1": ’’’’’’. - Es gibt benannte und unbenannte Atome. ’’’> - Die unbenannten Atome sind Konversionsprodukte. ’’’’’’’’’’^ - Vor dem ersten Aufruf von "delete atom" sind alle benannten Atome in der ObŻ’’’’’’’’’’’’’’^ jektliste enthalten; d.h. sie kŚnnen alle durch "begin oblist dump" und wiederholŻ’’’’’’’’> ten Aufruf von "next atom" erreicht werden. ’’’’’’’’’’’’’’N - Jedes benannte Atom hat genau einen Namen, der immer gleich bleibt. Der’’’^ Name ist als Eigenschaft mit der Bezeichnung "pname" in der Eigenschaftsliste’’’’’’’’’’’’’^ gespeichert. "add property", "alter property" und "delete property" geben desŻ’’’’’’’’’’’’^ halb eine Fehlermeldung aus, statt ihre normalen Aktionen durchzufŪhren, wenn’’’’’’’’’’’’’> ihnen als Eigenschaftsbezeichnung "pname" Ūbergeben wird. ^ - Es gibt keine zwei Atome, die denselben Namen haben; dadurch reduziert sich’’’’’’’’’’’’’’’N die bei "eq" angegebene Fallunterscheidung auf einen Fall. ’’’’’’’’’’’’’’’N - Es kann durchaus zwei unbenannte Atome mit gleichen Werten geben, die von’^ "eq" nicht als gleich anerkannt werden, weil sie in verschiedenen Strukturen’’’’’’’’’’’’’’^ gespeichert sind. "equal" achtet nicht auf die Position, sondern auf die Werte’’’’’’’’’’’’. der zu vergleichenden Strukturen. ’’’’’’’’^ - Mehrfache Zugriffe auf die gleiche Eigenschaft desselben Atoms werden so optiŻ’’’’’’’’’’’’^ miert, daū die Eigenschaftsliste nur beim ersten Zugriff (meist durch "property’’’’’’’’’’’. exists") durchsucht werden muū. ’’’’’’’’’’.4.2 Weitere Funktionen sowie Eingabe und ’’’’. Ausgabe #goalpage("p4.2")# ’’’’’’’’’’’’’’^Die Datei "lisp.2" enthŁlt diverse Pakete, die die Verbindung vom LISP-System zur’’’’’’’’’’’’’Nnormalen EUMEL-Umgebung bilden. Momentan sind das Ein- und Ausgabe und’’’’’’’’>(exemplarisch) die fŪnf Grundrechenarten fŪr Ganzzahlen. ’’’’’NDie Ein- und Ausgabe von LISP-Strukturen wird durch das Paket namens "lisp io".mit den folgenden Prozeduren ermŚglicht: ’’’’’. PROC get (FILE VAR f, SYM VAR sym): ’’’’’’’’N Nach dem Aufruf zeigt "sym" auf eine neue aus "f" eingelesene Struktur. ’’^ In der ersten und hinter der letzten Zeile des S-Ausdrucks dŪrfen keine weiteren’’’’’’’’’’ Daten stehen. ’’’’’’’’’’’’. PROC get all (FILE VAR f, SYM VAR sym): ’’’’^ Wie "get (FILE V, SYM V)", nur daū die Datei nichts als den S-Ausdruck entŻ’’’’’’’’’’’’’’’ halten darf. ’’’’’’’’’’’’’ PROC get (SYM VAR sym): ’’’’^ Es wird mit "get all" ein S-Audruck von einer Scratch-Datei eingelesen, die’’’’’’’’’’’’’’’^ dem Benutzer vorher zum Editieren angeboten wird. Bei Einlesefehlern wird die’’’’’’’’’’’’’N Datei zu Korrigieren angeboten, bis keine Fehler mehr auftreten. ’’’’’’’’’. PROC put (FILE VAR f, SYM CONST sym): ’’’’’’^ Wenn "sym" ein Ganzzahlpaar ist, wird die erste Zahl ausgegeben; wenn es ein’’’’’’’’’’’’’’N konvertierter TEXT ist, wird der ursprŪngliche TEXT wieder ausgegeben; beiN einem benannten Atom oder einer allgemeinen LISP-Struktur wird ein S-AusŻ’ druck ausgegeben. ’’’’’’’’ PROC put (SYM CONST sym): ’’^ Wie "put (FILE V, SYM CONST), auūer daū die Augabe direkt auf den Bildschirm’’’’’’’’’’’’’’.Das Paket "lisp int" enthŁlt die Prozeduren ’’. SYM PROC sum (SYM CONST summandenliste); ’’’N Erwartet eine Liste von "int pair"-Summanden und liefert deren Summe. ’’’’> SYM PROC difference (SYM CONST minuend, subtrahend): ’’’’’’’. Liefert die Differenz der Parameter. ’’’’’. SYM PROC product (SYM CONST faktorenliste): . Liefert das Produkt der Listenelemente. ’’> SYM PROC quotient (SYM CONST dividend, divisor): ’’’’’’’’’’’. Liefert den Quotienten der Parameter. ’’’’> SYM PROC remainder (SYM CONST dividend, divisor): ’’’’’’’’’’ Liefert den Rest. ’’’’’’’’.4.3 Interpreter #goalpage("p4.3")# ’’’’’’’’’’NDie Datei "lisp.3" enthŁlt das Paket "lisp interpreter", das die Prozedur ’’’’> SYM PROC evalquote (SYM CONST expression) ’’’’’’’’’’’’Nexportiert. Es handelt sich dabei um den im EUMEL-LISP-Handbuch beschriebeŻ’’’nen Interpreter. ’’’’’’’’’’’’’^Wenn "expression" ein LISP-Ausdruck ist, liefert die Prozedur den Wert des AusŻ’’’’’’’’’’’’’’’Ndrucks (vorausgesetzt, der LISP-Heap ist vorbereitet, siehe lisp.1). ’’’’’’’’’Wirkungsweise: ’’’’’’’’’’’’’’’>"evalquote" ruft im Wesentlichen die Prozedur "eval" auf. ’’’’^"eval" erwartet als Argumente einen solchen LISP-Ausdruck wie "evalquote", benŚŻ’’’’’’’’’’’’’’^tigt aber zusŁtzlich eine sog. Bindeliste. In einer Bindeliste sind durch LAMBDA- und’’’’’’’’’NLABEL-AusdrŪcke bereits gebundene Variable und ihre Werte gespeichert. Die’’’’^Manipulation der Bindeliste ist durch eine Reihe von Refinements, die am Schluū des’’’’’’’’’’’Pakets stehen, realisiert. ’’’NDa bisher noch keine LAMBDA- oder LABEL-AusdrŪcke verarbeitet wurden, ŪberŻ’’’.gibt "evalquote" die leere Bindeliste. ’’’’’’’Wirkungsweise von ’’’’’’’’’’’’N SYM PROC eval (SYM CONST expression, association list): ’’’’’’’’’’’’’’N"eval" kann als erstes Argument ein Atom oder eine zusammengesetzte Struktur’’^Atome werden als Variable aufgefaūt, deren Wert in der Bindeliste aufzusuchen ist.’’’’’’’’’’’’^Vor der Konsultation der Bindeliste wird allerdings noch nach der Eigenschaft APVAL’’’’’’’’’’’^des Atoms gesehen; wenn sie vorhanden ist, handelt es sich um eine Konstante wie’’’’’’’’’’’’’’^NIL, T oder F, die einen festen Wert hat, nŁmlich den Wert dieser Eigenschaft. Da’’’’’’’’’’’’’^diese Konstanten sich selbst als Wert haben, gilt "eval (NIL, Bindeliste) = NIL"’’’’’’’’’’’’’’.(entsprechend fŪr "T" und "F"). ’’’’’’’’’’’’’’NWenn das erste Arugment von "eval" zusammengesetzt ist, wird angenommen, daū’’.es sich um einen Funktionsaufruf der Form ’’’’ +-----+-----+ ’’’’’’’’’’’’’’. | o | o--+--> Argumentliste ’’’’’’’’’’’’’ +--+--+-----+ ’’’’’’’’’’’’’’^handelt. Die Bestandteile "Funktion" und "Argumentliste" werden mit der Bindeliste’’’’’’’’’’’’Ūbergeben an: N SYM PROC apply (SYM CONST function, arguments, association list): ’’’’’’’’’’N"apply" hat die Aufgabe, die Argumente durch "eval" berechnen zu lassen (das’’^unterbleibt alq÷’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘÷’’’’’’’’’’’’’’’’’’’’±÷’’’’’’’’’’’’’’’’’’’’Ń÷’’’’’’’’’’’’’’’’’’’’ń÷’’’’’’’’’’’’’’’’’’’’ų’’’’’’’’’’’’’’’’’’’’1ų’’’’’’’’’’’’’’’’’’’’Qų’!’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ų’%’’’’’’’’’’’’’’’’’’’±ų’/’’’’’’’’’’’’’’’’’’’’’ set id;’’’’’’’’’’’’’’ set scale.’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ set id :’’’’’’’’’’’’ńų’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’!ł’*’’’’’’’’’’’’’’’’’’’Qł’’’’’’’’’’’’’’’’’’’’qł’6’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ set scale :’’’’’’’’’±ł’’’’’’’’’’’’’’’’’’’’Įł’’’’’’’’’’’’’’’’’’’’įł’’’’’’’’’’’’’’’’’’’’ś’’’’’’’’’’’’’’’’’’’’!ś’0’’’’’’’’’’’’’’’’’’’aś’0’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ś’’’’’’’’’’’’’’’’’’’’Įś’’’’’’’’’’’’’’’’’’’’įś’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ū’4’’’’’’’’’’’’’’’’’’’Aū’’’’’’’’’’’’’’’’’’’’aū’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ū’4’’’’’’’’’’’’’’’’’’’Įū’’’’’’’’’’’’’’’’’’’’’’ next sym.’’’’’’’’’’įū’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ü’K’’’’’’’’’’’’’’’’’’’Qü’*’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’”ü’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’’Įü’’’’’’’’’’’’’’’’’’’’įü’+’’’’’’’’’’’’’’’’’’’ż’$’’’’’’’’’’’’’’’’’’’Aż’*’’’’’’’’’’’’’’’’’’’qż’’’’’’’’’’’’’’’’’’’’‘ż’&’’’’’’’’’’’’’’’’’’’Įż’*’’’’’’’’’’’’’’’’’’’ńż’’’’’’’’’’’’’’’’’’’’ž’+’’’’’’’’’’’’’’’’’’’Až’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’ next sym’’’’’’’’’’’’až’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ž’-’’’’’’’’’’’’’’’’’’’±ž’’’’’’’’’’’’’’’’’’’’Ńž’’’’’’’’’’’’’’’’’’’’ńž’ ’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’’ TRUE’’’’’’’’’’’’ ELSE FALSE’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’)’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’Ń’’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’$’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’Ā’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’B’D’’’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’$’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’Ā’?’’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’'’’’’’’’’’’’’’’’’’’’¢’$’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’%’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’ ’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’$’’’’’’’’’’’’’’’’’’’ā’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’7’’’’’’’’’’’’’’’’’’’r’.’’’’’’’’’’’’’’’’’’’¢’?’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’!’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ INT VAR j;’’’’’’’’’ā’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’#’’’’’’’’’’’’’’’’’’’b’7’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’Ā’8’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’2’7’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’<’’’’’’’’’’’’’’’’’’’2 ’A’’’’’’’’’’’’’’’’’’’‚ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢ ’M’’’’’’’’’’’’’’’’’’’ņ ’A’’’’’’’’’’’’’’’’’’’B ’’’’’’’’’’’’’’’’’’’’b ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚ ’/’’’’’’’’’’’’’’’’’’’Ā ’’’’’’’’’’’’’’’’’’’’ā ’’’’’’’’’’’’’’’’’’’’ ’$’’’’’’’’’’’’’’’’’’’2 ’’’’’’’’’’’’’’’’’’’’R ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’² ’%’’’’’’’’’’’’’’’’’’’ā ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’’’2 ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R ’’’’’’’’’’’’’’’’’’’’b ’’’’’’’’’’’’’’’’’’’’’’ IF is first’’’’’’’’‚ ’’’’’’’’’’’’’’’’’’’’¢ ’’’’’’’’’’’’’’’’’’’’Ā ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’ā ’’’’’’’’’’’’’’’’’’’’ ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2 ’’’’’’’’’’’’’’’’’’’’R ’’’’’’’’’’’’’’’’’’’’r ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’² ’’’’’’’’’’’’’’’’’’’’’’ INT VAR i;’’’’’’’’’Ņ ’%’’’’’’’’’’’’’’’’’’’’?’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’Ā’!’’’’’’’’’’’’’’’’’’’ņ’0’’’’’’’’’’’’’’’’’’’’’ END SELECT’’’’’’’’’’ END REP.’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’&’’’’’’’’’’’’’’’’’’’‚’!’’’’’’’’’’’’’’’’’’’²’$’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’R’-’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’Ņ’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’)’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’9’’’’’’’’’’’’’’’’’’’ņ’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ gen const :’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’ gen (" ");’’’’’’’’’’’ gen zz (i);’’’’’’’’B’K’’’’’’’’’’’’’’’’’’’’’0’’’’’’’’’’’’’’’’’’’Ņ’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’M’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’E’’’’’’’’’’’’’’’’’’’¢’(’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’/’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’=’’’’’’’’’’’’’’’’’’’²’3’’’’’’’’’’’’’’’’’’’ņ’+’’’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’A’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’+’’’’’’’’’’’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ gen equ :’’’’’’’’’’’’B’#’’’’’’’’’’’’’’’’’’’’’ IF init’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’’’ gen (" ");’’’’’’’’’’’’ gen zz (i);’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’’’ IF NOT init’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ IF is first’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’$’’’’’’’’’’’’’’’’’’’Ņ’(’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’ IF is first’’’’’’’’’Ņ’*’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’#’’’’’’’’’’’’’’’’’’’²’ ’’’’’’’’’’’’’’’’’’’ā’/’’’’’’’’’’’’’’’’’’’lerdings unter bestimmten UmstŁnden) und die Berechnungergebnisse an’’’’’’’’’’’’Ndie Parameter der Funktion zu binden; zum Schluū muū der Wert des FunktionsŻ’’Nrumpfs in AbhŁngigkeit von diesen neuen Bindungen als Ergebnis der gesamten’’’NProzedur "apply" berechnet werden; diese Berechnung geschieht wieder durch’’’’^Nur in einem LAMBDA-Ausdruck ist direkt bekannt, wo die Parameterliste steht.SoŻ’’’’’’’’’’’’’’Nlange das nicht der Fall ist, muū entweder ein LABEL-Ausdruck oder ein Atom’’’.Ein LABEL-Ausdruck hat die Form ’’’’’’’’’’’’’’> +-----+-----+ +-----+-----+ +-----+-----+ ’’’’’’’’’’’’> | o | o--+--->| o | o--+--->| o | NIL | ’’’’’’’’’’’’> +--+--+-----+ +--+--+-----+ +--+--+-----+ ’’’’’’’’’’’’. | | | ’’’’’. V V V ’’’’’. LABEL Name Funktion ’NDa der Name fŪr die Dauer der Auswertung des Funktionsrumpfs an die Funktion’’^gebunden sein muū, wird dis Paar als funktionaler Bindelisteneintrag gespeichert.’’’’’’’’’’’’’^Funktionale und nichtfunktionale BindelisteneintrŁge sind eindeutig unterschieden. ’’’’’’’’’’’NNach dem Abspeichern wird wieder getestet, ob die Funktion diesmal ein’’’’’’’’NLAMBDA-Ausdruck ist; wenn nicht, wird ein weiterer Schritt zum "AblŁttern" von.LABELs und Atomen versucht, usw. ’’’’’’’’’’’’’^Wenn die Funktion ein Atom ist, werden analog zu den VorgŁngen in "eval" erst die’’’’’’’’’’’’’>Eigenschaftsliste und dann die Bindeliste durchsucht. ’’’’’’’’^Ist die Eigenschaft FUNCTION in der Eigenschaftsliste vorhanden, ist der Wert der’’’’’’’’’’’’’^Eigenschaft die (evtl. weiter "abzublŁtternde") Funktion; ist die Eigenschaft nicht’’’’’’’’’’’^vorhanden, muū das Atom an eine Funktion gebunden sein, die dann aus der BindeŻ’’’’’’’’’’’’’’’liste geholt werden kann. ’’’’NDa alle Funktionen (auch die Standardfunktionen) letztendlich als LAMBDA-AusŻ’NdrŪcke definiert sind, kommt "apply" auf diese Weise zuletzt zu einem LAMBDA-’.Ein LAMBDA-Ausdruck hat die Form ’’’’’’’’’’’’’> +-----+-----+ +-----+-----+ +-----+-----+ ’’’’’’’’’’’’> | o | o--+--->| o | o--+--->| | | ’’’’’’’’’’’’> +--+--+-----+ +--+--+-----+ +-----+-----+ ’’’’’’’’’’’’ | | ’’’’’’ V V ’’’’’’. LAMBDA Parameterliste ’’’’’’’’’’’’^Als nŁchster Schritt werden die Argumente fŪr die zu berechnende Funktion an die’’’’’’’’’’’’’’NParameter der Parameterliste gebunden, d.h. es werden Parameter-Argument-Paare.in die Bindeliste eingetragen. ’’’’’’’’’’’’’’’^Die Methode des Eintrags ist je nach Art des Parameters unterschiedlich. Es gibt die’’’’’’’’’’.folgenden Arten von Parametern: ’’’’’’’’’’’’’’ Name ’’’’’’’’’’’’’’’N "Name" ist hier - wie bei den restlichen FŁllen - der Name des ParameŻ’’’^ ters. Diese Art von Parametern ist der Normalfall; die Argumente, die einem’’’’’’’’’’’’’’N solchen Parameter entsprechen, werden durch "eval" berechnet und zusammenN mit dem Parameter in einem Bindelisteneintrag gespeichert. ’’’’’’’’’’’’’’. +-----+-----+ +-----+-----+ ’’’’’’’. | o | o--+--->| o | NIL + ’’’’’’’. +--+--+-----+ +--+--+-----+ ’’’’’’’ | |  V V . QUOTE Name ’’’’’’’’’’’’’’^ In diesem Fall wird das Argument ohne weitere Verarbeitung in die Bindeliste’’’’’’’’’’’’’N Ūbernommen. Die Wirkung ist die gleiche, als wŁre das Argument durch’’’’’. "(QUOTE ... )" eingeschlossen. ’’’’’’’’’’. +-----+-----+ +-----+-----+ ’’’’’’’. | o | o--+--->| o | NIL | ’’’’’’’. +--+--+-----+ +--+--+-----+ ’’’’’’’ | |  V V . FUNCTION Name ’’’’’’’’’’’’’’^ Hier wird ein funktionaler Bindelisteneintrag erzeugt, so daū "Name" im FunkŻ’’’’’’’’’’’’> tionsrumpf als Name einer Funktion auftreten kann. ’’’’’’. +-----+-----+ +-----+-----+ ’’’’’’’. | o | o--+--->| o | NIL | ’’’’’’’. +--+--+-----+ +--+--+-----+ ’’’’’’’ | |  V V . INDEFINITE Name ’’’’’’’’’’’’’’N Dies ist ein Parameter, der beliebig viele berechnete Argumente aufnehmen^ kann. Der Einfachheit halber werden die Ergebnisse zu einer Liste zusammenŻ’’’’’’’’’’’’’’N gefaūt und mit "Name" in einen Bindelisteneintrag gesteckt. ’’’’’’’’’’’’’> +-----+-----+ +-----+-----+ +-----+-----+ ’’’’’’> | o | o--+--->| o | o--+--->| o | NIL | ’’’’’’> +--+--+-----+ +--+--+-----+ +--+--+-----+ ’’’’’’> | | | ’’’’’’’’’’’’’’’> V V V ’’’’’’’’’’’’’’’> INDEFINITE QUOTE Name ’’’’’’’’’’’’’^ Dieser Parameter kann wie der in Fall 4. aufgefŪhrte beliebig viele Argumente’’’’’’’’’’’’N aufnehmen, die zu einer Liste zusammengefaūt werden. Im Gegensatz zu 4.’’^ wird aber wie bei 2. nichts durch "eval" berechnet, sondern die Argumente so’’’’’’’’’’’’’. wie sie vorkommen Ūbernommen. ’’’’’’’’’’’^Auf einen Parameter der Form 4. oder 5. darf kein weiterer Parameter folgen, weil’’’’’’’’’’’’’^solch ein Parameter alle restlichen Argumente verbraucht. Solchen Parametern darf -’’’’’’’’’’’Nals Ausnahme - auch kein Argument entsprechen; dann werden sie an die leere’’’Liste (d.h. NIL) gebunden. ’’’^Der letzte Kasten in der Beschreibung des LAMBDA-Ausdrucks ist mit Absicht leer’’’’’’’’’’’’’’’.geblieben; er kann eine der Formen ’’’’’’’’’’’> +-----+-----+ +----------+----------+ ’’’’’’’’> | o | NIL | oder | Ganzzahl | XXXXXXXX | ’’’’’’’’> +--+--+-----+ +----------+----------+ ’’’’’’’’ Funktionsrumpf ’’’’’’’’’’’’^Die erste Form heiūt, daū die Funktion durch Berechnung des Funktionsrumpfs mittels’’’’’’’’’’’^"eval" berechnet werden soll; die zweite Form bewirkt den Aufruf einer der StandardŻ’’’’’’’’’’Nfunktionen, je nachdem, welche Funktionsnummer bei "Ganzzahl" steht. In diesemNzweiten Fall werden die Argumente aber nicht durch den Namen des Parameters’’’^identifiziert, sondern durch die Position des Eintrags in der Bindeliste. Dieser ProŻ’’’’’’’’’^grammteil hŁngt also wesentlich von der Reihenfolge ab, in der die BindelisteneintrŁŻ’’’’’’’’’^ge, die bei der Parameter-Argument-Zuordnung entstehen, in die Bindeliste eingeŻ’’’’’’’’’’’’’’NfŪgt werden. Zur Zeit ist das die Umkehrung der Reihenfolge der Parameter. ’’’^Die Namen der Refinements "arg 1", "arg 2", "arg 3" beziehen sich auch nicht auf’’’’’’’’’’’’’’Ndie Position des Arguments in der Argumentsliste, sondern auf die Position desEintrags in der Bindeliste. ’’.4.4 Kommandoprozeduren #goalpage("p4.4")# ’’’’^Die Datei "lisp.4" enthŁlt eine Reihe von Prozeduren, mit denen der LISP-InterpreŻ’’’’’’’’’’’’>ter Łhnlich wie der ELAN-Compiler aufgerufen werden kann. ’’’’ start lisp system ’’’’NermŚglicht das erneute Starten des LISP-Systems, oder wenn "Ūbersetzte" ProŻ’’^gramme, die in einem Heap einer anderen Task liegen, in dieser Task verarbeitet’’’’’’’’’’’’’’’werden sollen. ’’’’’’’’’’’’’’’^stellt die LISP-Maschine in einem Doppelfenster im Bildschirmdialog zur VerfŪgung.’’’’’’’’’’’’NBei der erstmaligen Benutzung muū die Datei "lisp.bootstrap" vorhanden sein. ’ break lisp ’’’’’’’’’’’Nkoppelt die LISP-Task vom Benutzer-Terminal ab und baut das Doppelfenster fŪr’den Bildschirmdialog neu auf.  run lisp ’’’’’’’’’’’’’^bewirkt, daū ein LISP-Programm eingelesen und ausgefŪhrt wird; nach der AusfŪh"’'’’’’’’’’’’’’’’’’’’’R’?’’’’’’’’’’’’’’’’’’’¢’ ’’’’’’’’’’’’’’’’’’’Ņ’<’’’’’’’’’’’’’’’’’’’’J’’’’’’’’’’’’’’’’’’’b’)’’’’’’’’’’’’’’’’’’’’’K’’’’’’’’’’’’’’’’’’’ā’%’’’’’’’’’’’’’’’’’’’’G’’’’’’’’’’’’’’’’’’’b’)’’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’Ņ’&’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’2’.’’’’’’’’’’’’’’’’’’’b’:’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’’’ END SELECT’’’’’’’’’’’ END REP;’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ gen tab var;’’’’’’’’’8’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’¢’-’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’ ’@’’’’’’’’’’’’’’’’’’’b ’’’’’’’’’’’’’’’’’’’’’’ next sym;’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’² ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā ’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’ THEN TRUE’’’’’’’’’"!’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B!’’’’’’’’’’’’’’’’’’’’b!’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ vec length :’’’’’’’’‚!’’’’’’’’’’’’’’’’’’’’¢!’;’’’’’’’’’’’’’’’’’’’ā!’0’’’’’’’’’’’’’’’’’’’""’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’B"’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b"’’’’’’’’’’’’’’’’’’’’‚"’’’’’’’’’’’’’’’’’’’’’"’>’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ row length :’’’’’’’’Ņ"’’’’’’’’’’’’’’’’’’’’ņ"’1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’2#’)’’’’’’’’’’’’’’’’’’’b#’’’’’’’’’’’’’’’’’’’’‚#’&’’’’’’’’’’’’’’’’’’’²#’=’’’’’’’’’’’’’’’’’’’’’ place:=i; ’’’’’’’’ņ#’)’’’’’’’’’’’’’’’’’’’"$’4’’’’’’’’’’’’’’’’’’’b$’2’’’’’’’’’’’’’’’’’’’’’ PER;’’’’’’’’’’’’’’¢$’2’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’ā$’-’’’’’’’’’’’’’’’’’’’%’(’’’’’’’’’’’’’’’’’’’’’ THEN ’’’’’’’’’’B%’C’’’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²%’’’’’’’’’’’’’’’’’’’’Ņ%’A’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’"&’’’’’’’’’’’’’’’’’’’’B&’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²&’’’’’’’’’’’’’’’’’’’’Ņ&’’’’’’’’’’’’’’’’’’’’ņ&’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’’2'’’’’’’’’’’’’’’’’’’’’’’ END SELECT’’’’’’’’’’R'’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r'’’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’’²'’#’’’’’’’’’’’’’’’’’’’ā'’B’’’’’’’’’’’’’’’’’’’2(’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R(’’’’’’’’’’’’’’’’’’’’r(’ ’’’’’’’’’’’’’’’’’’’¢(’&’’’’’’’’’’’’’’’’’’’Ņ(’)’’’’’’’’’’’’’’’’’’’)’2’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B)’’’’’’’’’’’’’’’’’’’’b)’4’’’’’’’’’’’’’’’’’’’¢)’’’’’’’’’’’’’’’’’’’’²)’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’Ņ)’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ)’-’’’’’’’’’’’’’’’’’’’’’ IF in loop’’’’’’’’’’"*’&’’’’’’’’’’’’’’’’’’’R*’>’’’’’’’’’’’’’’’’’’’’*’@’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’ā*’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’+’C’’’’’’’’’’’’’’’’’’’R+’"’’’’’’’’’’’’’’’’’’’‚+’"’’’’’’’’’’’’’’’’’’’²+’’’’’’’’’’’’’’’’’’’’Ņ+’’’’’’’’’’’’’’’’’’’’ņ+’’’’’’’’’’’’’’’’’’’’’’ compile equ;’’’’’’’’,’’’’’’’’’’’’’’’’’’’’2,’E’’’’’’’’’’’’’’’’’’’‚,’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢,’’’’’’’’’’’’’’’’’’’’Ā,’&’’’’’’’’’’’’’’’’’’’ņ,’ ’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"-’’’’’’’’’’’’’’’’’’’’B-’2’’’’’’’’’’’’’’’’’’’‚-’@’’’’’’’’’’’’’’’’’’’Ņ-’’’’’’’’’’’’’’’’’’’’ņ-’’’’’’’’’’’’’’’’’’’’.’*’’’’’’’’’’’’’’’’’’’B.’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b.’’’’’’’’’’’’’’’’’’’’‚.’’’’’’’’’’’’’’’’’’’’¢.’’’’’’’’’’’’’’’’’’’’Ā.’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā.’’’’’’’’’’’’’’’’’’’’ņ.’’’’’’’’’’’’’’’’’’’’/’'’’’’’’’’’’’’’’’’’’’B/’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b/’’’’’’’’’’’’’’’’’’’’‚/’"’’’’’’’’’’’’’’’’’’’²/’>’’’’’’’’’’’’’’’’’’’ņ/’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ equation :’’’’’’’’’’"0’’’’’’’’’’’’’’’’’’’’B0’’’’’’’’’’’’’’’’’’’’b0’#’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’0’’’’’’’’’’’’’’’’’’’’²0’’’’’’’’’’’’’’’’’’’’Ņ0’6’’’’’’’’’’’’’’’’’’’1’#’’’’’’’’’’’’’’’’’’’B1’6’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ test level :’’’’’’’’‚1’E’’’’’’’’’’’’’’’’’’’Ņ1’'’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"2’=’’’’’’’’’’’’’’’’’’’b2’2’’’’’’’’’’’’’’’’’’’¢2’%’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’’Ņ2’9’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’23’’’’’’’’’’’’’’’’’’’’R3’’’’’’’’’’’’’’’’’’’’r3’’’’’’’’’’’’’’’’’’’’’3’,’’’’’’’’’’’’’’’’’’’Ā3’’’’’’’’’’’’’’’’’’’’’’ FALSE’’’’’’’’’’ ELSE TRUE’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā3’’’’’’’’’’’’’’’’’’’’4’’’’’’’’’’’’’’’’’’’’"4’’’’’’’’’’’’’’’’’’’’B4’+’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’r4’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’4’0’’’’’’’’’’’’’’’’’’’Ņ4’'’’’’’’’’’’’’’’’’’’’5’#’’’’’’’’’’’’’’’’’’’25’’’’’’’’’’’’’’’’’’’’R5’-’’’’’’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’’’‚5’2’’’’’’’’’’’’’’’’’’’Ā5’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā5’B’’’’’’’’’’’’’’’’’’’26’4’’’’’’’’’’’’’’’’’’’r6’!’’’’’’’’’’’’’’’’’’’¢6’2’’’’’’’’’’’’’’’’’’’’’ IF dollar’’’’’’’’’’’ā6’*’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’7’’’’’’’’’’’’’’’’’’’’27’!’’’’’’’’’’’’’’’’’’’b7’#’’’’’’’’’’’’’’’’’’’’7’$’’’’’’’’’’’’’’’’’’’Ā7’#’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ7’’’’’’’’’’’’’’’’’’’’8’’’’’’’’’’’’’’’’’’’’28’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b8’’’’’’’’’’’’’’’’’’’’‚8’'’’’’’’’’’’’’’’’’’’’²8’’’’’’’’’’’’’’’’’’’’Ņ8’&’’’’’’’’’’’’’’’’’’’9’’’’’’’’’’’’’’’’’’’’"9’3’’’’’’’’’’’’’’’’’’’b9’’’’’’’’’’’’’’’’’’’’‚9’3’’’’’’’’’’’’’’’’’’’Ā9’’’’’’’’’’’’’’’’’’’’ā9’4’’’’’’’’’’’’’’’’’’’":’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’B:’(’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’r:’’’’’’’’’’’’’’’’’’’’’:’:’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’Ņ:’’’’’’’’’’’’’’’’’’’’ā:’’’’’’’’’’’’’’’’’’’’;’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’";’’’’’’’’’’’’’’’’’’’’B;’,’’’’’’’’’’’’’’’’’’’r;’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢;’’’’’’’’’’’’’’’’’’’’Ā;’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ test type :’’’’’’’’’ņ;’’’’’’’’’’’’’’’’’’’’<’’’’’’’’’’’’’’’’’’’’"<’’’’’’’’’’’’’’’’’’’’B<’’’’’’’’’’’’’’’’’’’’b<’%’’’’’’’’’’’’’’’’’’’’<’’’’’’’’’’’’’’’’’’’’²<’ ’’’’’’’’’’’’’’’’’’’ā<’’’’’’’’’’’’’’’’’’’’=’!’’’’’’’’’’’’’’’’’’’2=’#’’’’’’’’’’’’’’’’’’’b=’’’’’’’’’’’’’’’’’’’’‚=’’’’’’’’’’’’’’’’’’’’’’ END SELECT;’’’’’’’’¢=’’’’’’’’’’’’’’’’’’’’Ā=’’’’’’’’’’’’’’’’’’’’ā=’’’’’’’’’’’’’’’’’’’’ņ=’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’>’’’’’’’’’’’’’’’’’’’’2>’/’’’’’’’’’’’’’’’’’’’r>’'’’’’’’’’’’’’’’’’’’’¢>’’’’’’’’’’’’’’’’’’’’Ā>’’’’’’’’’’’’’’’’’’’’ā>’’’’’’’’’’’’’’’’’’’’?’$’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2?’’’’’’’’’’’’’’’’’’’’R?’’’’’’’’’’’’’’’’’’’’r?’/’’’’’’’’’’’’’’’’’’’²?’(’’’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā?’’’’’’’’’’’’’’’’’’’’@’5’’’’’’’’’’’’’’’’’’’B@’2’’’’’’’’’’’’’’’’’’’’’ not found.’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚@’’’’’’’’’’’’’’’’’’’’¢@’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ type ok :’’’’’’’’’’’Ņ@’%’’’’’’’’’’’’’’’’’’’A’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2A’’’’’’’’’’’’’’’’’’’’RA’$’’’’’’’’’’’’’’’’’’’‚A’C’’’’’’’’’’’’’’’’’’’ŅA’,’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’Ż’’’’’’’’’’’’’’’Nrung wird das Ergebnis der Berechnung ausgegeben. Diese Operationen werden aufNeiner Kopie des Heaps ausgefŪhrt, so daū Önderungen keine Dauerwirkung haben.’ run lisp again ’’’’’’’^wird das zuletzt eingelesene Programm noch einmal gestartet; da dafŪr die gleiche’’’’’’’’’’’’’^Kopie des Heaps wie bei "run" benutzt wird, kann das Ergebnis diesmal anders sein. ’’’’’’’’’’’ insert lisp ’’’’’’’’’’^wirkt wie "run lisp", auūer daū diesmal alle Önderungen, die durch das Einlesen und’’’’’’’’’’’.AusfŪhren im Heap entstehen, dauerhaft sind. ’> PROC start lisp system (DATASPACE CONST heap): ’’’’’’’’’’’’’N Eine Kopie von "heap" wird der neue LISP-Heap. Wenn es sich um "nilspaŻ’’’^ ce" handelt, werden einige organisatorische Strukturen im Heap aufgebaut und’’’’’’’’’’’’’’. die Atome "NIL" und "PNAME" erzeugt. ’’’’’> PROC start lisp system (DATASPACE CONST heap, FILE VAR f): ’> ZunŁchst wird "start lisp system (heap)" gegeben. ’’’’’’’’N Danach werden die Eigenschaftsbeschreibungen aus "f" in Strukturen im Heap umgesetzt. ’’’’’’’’’’’’’’’N Jede Beschreibung in "f" muū mit dem Zeilenanfang beginnen und kann sich’’^ Ūber mehrere Zeilen erstrecken. Jede Beschreibung besteht aus den Elementen ’’’’’’’’’’’’’’. ’’’’’’’’’’’’N wobei der Name einer Eigenschaft (i.a. APVAL oder FUNCTION)’N und ein beliebiger S-Ausdruck sein mŪssen. Die drei Elemente mŪsŻ’’N sen jeweils durch mindestens ein Leerzeichen getrennt sein. ’’’’’’’’’’’’’’N Wenn das Atom nicht existiert, wird es erzeugt; danach wird ’> unter in der Eigenschaftsliste eingetragen. N Wenn NIL ist, muū wegfallen; dann wird nichts in die’. Eigenschaftsliste eingetragen. ’’’’’’’’’’’ DATASPACE PROC lisp heap: ’’^ Liefert den LISP-Heap. Das ist manchmal fŪr Sicherheitskopien etc. nŪtzlich.’’’’’’’’’’’’’’N Die durch "run lisp" erzeugten Kopien sind nicht zugŁnglich. ’’’’’’’’’’’’’ PROC run lisp: ’’’’’’’’’’’’’. Ruft "run lisp (last param)" auf. ’’’’’’’’. PROC run lisp (TEXT CONST file name): ’’’’’’^ Das in der Datei "file name" stehende LISP-Programm (d.h. der dort stehende’’’’’’’’’’’’’’’N in einen S-Ausdruck Ūbersetzte M-Ausdruck) wird in eine neue Kopie des’’’’^ LISP-Heaps eingelesen und ausgefŪhrt. Evtl. vorher durch "run lisp" erzeugte’’’’’’’’’’’’’’. Kopien des Heaps werden vorher gelŚscht. ’^ Wenn das Programm syntaktisch nicht korrekt ist, wird es im Paralleleditor zur’’’’’’’’’’’’ Korrektur angeboten. ’’’’’ PROC run lisp again: ’’’’’’’N FŪhrt das zuletzt eingelesene Programm noch einmal im gleichen Heap aus. ’ PROC insert lisp: ’’’’’’’’’’. Ruft "insert lisp (last param)" auf. ’’’’’. PROC insert lisp (TEXT CONST file name): ’’’^ Wirkt wie "run lisp (file name)", nur daū alle Operationen auf dem Originalheap’’’’’’’’’’’^ ausgefŪhrt werden. Auch "run lisp again" wirkt nun nicht mehr auf der Kopie. ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’lisp.1’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‹€’’’’’’’’’’’’’’’’ą’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²a€ė’’Ų’’’’ŲŲM’’’’’’lisp.1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€’M’’’’’’’’’’’’’’’’’’’±€’M’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’Q’F’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’ၒ’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ SYM, ’’’’’’’’’’’’’’’’ :=, ’’’’’’’’’’’’’’’’’ nil, ’’’’’’’’’’’’’’’’ pname, ’’’’’’’’’’’’’’ head, ’’’’’’’’’’’’’’’ set head, ’’’’’’’’’’’ tail, ’’’’’’’’’’’’’’’ set tail, ’’’’’’’’’’’ cons, ’’’’’’’’’’’’’’’ eq, ’’’’’’’’’’’’’’’’’ equal, ’’’’’’’’’’’’’’ null, ’’’’’’’’’’’’’’’ atom, ’’’’’’’’’’’’’!‚’’’’’’’’’’’’’’’’’’’’A‚’’’’’’’’’’’’’’’’’’’’’’ next atom, ’’’’’’’’’’ new atom, ’’’’’’’’’a‚’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’”‚’’’’’’’’’’’’’’’’’’’’Į‚’’’’’’’’’’’’’’’’’’’’į‚’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’ property, ’’’’’’’’’!ƒ’’’’’’’’’’’’’’’’’’’’Aƒ’’’’’’’’’’’’’’’’’’’’’’ add flag, ’’’’’’’’’’’ flag, ’’’’’’’’’’’’’aƒ’’’’’’’’’’’’’’’’’’’’’’ text, ’’’’’’’’’’’’’’’ is text, ’’’’’’’’’’’’ character, ’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’”ƒ’’’’’’’’’’’’’’’’’’’’’’ int 1, ’’’’’’’’’’’’’’ int 2, ’’’’’’’’’’’’Įƒ’’’’’’’’’’’’’’’’’’’’’’ sym: ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’გ4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!„’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’LET ’’’’’’’’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’‘„’’’’’’’’’’’’’’’’’’’’Į„’$’’’’’’’’’’’’’’’’’’’ń„’’’’’’’’’’’’’’’’’’’’…’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a…’2’’’’’’’’’’’’’’’’’’’”…’’’’’’’’’’’’’’’’’’’’Į…’’’’’’’’’’’’’’’’’’’’į…’'’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’1†’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’Q†’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’q†’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”†’"’’’’’’’’’’’’’’’’’’’ц’8’’’’’’’’’’’’’’’’’’’’’ line (f); ’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’1‡’’’’’’’’’’’’’’’’’’’’’’ INT VAR i; ’’’’’’’’Q‡’*’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’‘‡’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±‡’’’’’’’’’’’’’’’’’’’’ч’’’’’’’’’’’’’’’’’’’’ń‡’’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’1ˆ’’’’’’’’’’’’’’’’’’’’’’ line (f). ’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’status: ’’’’’’’’’’’’’Qˆ’’’’’’’’’’’’’’’’’’’’qˆ’3’’’’’’’’’’’’’’’’’’’±ˆ’3’’’’’’’’’’’’’’’’’’’ńˆ’3’’’’’’’’’’’’’’’’’’’1‰’3’’’’’’’’’’’’’’’’’’’q‰’3’’’’’’’’’’’’’’’’’’’±‰’3’’’’’’’’’’’’’’’’’’’ń‰’3’’’’’’’’’’’’’’’’’’’1Š’D’’’’’’’’’’’’’’’’’’’Š’3’’’’’’’’’’’’’’’’’’’ĮŠ’L’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’head: ’’’’’’’’’’’’’’’!‹’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q‹’’’’’’’’’’’’’’’’’’’’a‹’’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’”‹’7’’’’’’’’’’’’’’’’’’’į‹’'’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’ " " ’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’’’ " " ’’’’’’’’’’’’’ FI.B’’’’’’’’’’’’’’’’’’’’"B’’’’’’’’’’’’’’’’’’’’BB’ ’’’’’’’’’’’’’’’’’’’rB’’’’’’’’’’’’’’’’’’’’’B’ ’’’’’’’’’’’’’’’’’’’ĀB’!’’’’’’’’’’’’’’’’’’’ņB’’’’’’’’’’’’’’’’’’’’"C’’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’RC’’’’’’’’’’’’’’’’’’’’rC’’’’’’’’’’’’’’’’’’’’’C’’’’’’’’’’’’’’’’’’’’²C’1’’’’’’’’’’’’’’’’’’’ņC’+’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’"D’'’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’RD’’’’’’’’’’’’’’’’’’’’rD’#’’’’’’’’’’’’’’’’’’’¢D’0’’’’’’’’’’’’’’’’’’’āD’’’’’’’’’’’’’’’’’’’’E’&’’’’’’’’’’’’’’’’’’’2E’9’’’’’’’’’’’’’’’’’’’rE’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’E’’’’’’’’’’’’’’’’’’’’²E’/’’’’’’’’’’’’’’’’’’’ņE’,’’’’’’’’’’’’’’’’’’’’’ THEN param’’’’’’’’"F’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BF’’’’’’’’’’’’’’’’’’’’bF’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ is number :’’’’’’’’’’F’5’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ content :’’’’’’’’’’’ŅF’1’’’’’’’’’’’’’’’’’’’G’"’’’’’’’’’’’’’’’’’’’BG’(’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ test index :’’’’’’’’rG’’’’’’’’’’’’’’’’’’’’’G’’’’’’’’’’’’’’’’’’’’²G’&’’’’’’’’’’’’’’’’’’’āG’’’’’’’’’’’’’’’’’’’’H’’’’’’’’’’’’’’’’’’’’"H’’’’’’’’’’’’’’’’’’’’BH’’’’’’’’’’’’’’’’’’’’bH’"’’’’’’’’’’’’’’’’’’’’H’’’’’’’’’’’’’’’’’’’’¢H’’’’’’’’’’’’’’’’’’’’²H’ ’’’’’’’’’’’’’’’’’’’āH’’’’’’’’’’’’’’’’’’’’I’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2I’’’’’’’’’’’’’’’’’’’’BI’&’’’’’’’’’’’’’’’’’’’rI’’’’’’’’’’’’’’’’’’’’’I’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²I’’’’’’’’’’’’’’’’’’’’ĀI’’’’’’’’’’’’’’’’’’’’āI’&’’’’’’’’’’’’’’’’’’’J’’’’’’’’’’’’’’’’’’’’2J’’’’’’’’’’’’’’’’’’’’RJ’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’rJ’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ int index :’’’’’’’’’¢J’+’’’’’’’’’’’’’’’’’’’ŅJ’’’’’’’’’’’’’’’’’’’’ņJ’K’’’’’’’’’’’’’’’’’’’BK’K’’’’’’’’’’’’’’’’’’’’K’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’ var index :’’’’’’’’’²K’)’’’’’’’’’’’’’’’’’’’āK’’’’’’’’’’’’’’’’’’’’L’’’’’’’’’’’’’’’’’’’’"L’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’BL’’’’’’’’’’’’’’’’’’’’bL’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’²L’’’’’’’’’’’’’’’’’’’’ŅL’’’’’’’’’’’’’’’’’’’’ņL’3’’’’’’’’’’’’’’’’’’’2M’’’’’’’’’’’’’’’’’’’’RM’’’’’’’’’’’’’’’’’’’’bM’’’’’’’’’’’’’’’’’’’’‚M’,’’’’’’’’’’’’’’’’’’’²M’%’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’āM’&’’’’’’’’’’’’’’’’’’’N’’’’’’’’’’’’’’’’’’’’2N’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’RN’’’’’’’’’’’’’’’’’’’’rN’1’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’²N’’’’’’’’’’’’’’’’’’’’ŅN’>’’’’’’’’’’’’’’’’’’’O’’’’’’’’’’’’’’’’’’’’BO’E’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’O’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĀO’’’’’’’’’’’’’’’’’’’’āO’’’’’’’’’’’’’’’’’’’’P’’’’’’’’’’’’’’’’’’’’"P’’’’’’’’’’’’’’’’’’’’BP’’’’’’’’’’’’’’’’’’’’bP’&’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’P’’’’’’’’’’’’’’’’’’’’²P’&’’’’’’’’’’’’’’’’’’’āP’’’’’’’’’’’’’’’’’’’’Q’/’’’’’’’’’’’’’’’’’’’BQ’’’’’’’’’’’’’’’’’’’’bQ’’’’’’’’’’’’’’’’’’’’‚Q’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’¢Q’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ gen table :’’’’’’’’’ĀQ’'’’’’’’’’’’’’’’’’’’’ņQ’’’’’’’’’’’’’’’’’’’’R’+’’’’’’’’’’’’’’’’’’’BR’-’’’’’’’’’’’’’’’’’’’rR’>’’’’’’’’’’’’’’’’’’’²R’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŅR’’’’’’’’’’’’’’’’’’’’ņR’'’’’’’’’’’’’’’’’’’’’"S’’’’’’’’’’’’’’’’’’’’BS’’’’’’’’’’’’’’’’’’’’bS’3’’’’’’’’’’’’’’’’’’’¢S’’’’’’’’’’’’’’’’’’’’ĀS’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’āS’’’’’’’’’’’’’’’’’’’’T’’’’’’’’’’’’’’’’’’’’"T’’’’’’’’’’’’’’’’’’’’BT’’’’’’’’’’’’’’’’’’’’bT’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’T’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’²T’’’’’’’’’’’’’’’’’’’’ŅT’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’U’’’’’’’’’’’’’’’’’’’’"U’’’’’’’’’’’’’’’’’’’’BU’’’’’’’’’’’’’’’’’’’’bU’’’’’’’’’’’’’’’’’’’’‚U’’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢U’’’’’’’’’’’’’’’’’’’’ĀU’’’’’’’’’’’’’’’’’’’’āU’’’’’’’’’’’’’’’’’’’’’’ REP’’’’’’’’’’’’’’’’V’’’’’’’’’’’’’’’’’’’’"V’’’’’’’’’’’’’’’’’’’’BV’’’’’’’’’’’’’’’’’’’’bV’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rV’’’’’’’’’’’’’’’’’’’’’V’’’’’’’’’’’’’’’’’’’’²V’’’’’’’’’’’’’’’’’’’’ŅV’’’’’’’’’’’’’’’’’’’’ņV’’’’’’’’’’’’’’’’’’’’’’ FALSE’’’’’’’’W’’’’’’’’’’’’’’’’’’’’2W’’’’’’’’’’’’’’’’’’’’’’ FALSE’’’’’’’’’’ ELSE FALSE’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ constant :’’’’’’’’’’RW’’’’’’’’’’’’’’’’’’’’rW’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢W’’’’’’’’’’’’’’’’’’’’ĀW’’’’’’’’’’’’’’’’’’’’ņW’)’’’’’’’’’’’’’’’’’’’"X’1’’’’’’’’’’’’’’’’’’’bX’0’’’’’’’’’’’’’’’’’’’¢X’’’’’’’’’’’’’’’’’’’’ĀX’0’’’’’’’’’’’’’’’’’’’Y’$’’’’’’’’’’’’’’’’’’’2Y’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’RY’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’rY’’’’’’’’’’’’’’’’’’’’‚Y’:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ auxiliary :’’’’’’’’’ĀY’,’’’’’’’’’’’’’’’’’’’ņY’8’’’’’’’’’’’’’’’’’’’2Z’)’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’bZ’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚Z’’’’’’’’’’’’’’’’’’’’¢Z’’’’’’’’’’’’’’’’’’’’ĀZ’’’’’’’’’’’’’’’’’’’’āZ’’’’’’’’’’’’’’’’’’’’[’’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"[’’’’’’’’’’’’’’’’’’’’B[’4’’’’’’’’’’’’’’’’’’’‚[’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢[’’’’’’’’’’’’’’’’’’’’Ā[’’’’’’’’’’’’’’’’’’’’ā[’’’’’’’’’’’’’’’’’’’’\’’’’’’’’’’’’’’’’’’’’"\’’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B\’’’’’’’’’’’’’’’’’’’’b\’3’’’’’’’’’’’’’’’’’’’¢\’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā\’’’’’’’’’’’’’’’’’’’’ā\’’’’’’’’’’’’’’’’’’’’]’’’’’’’’’’’’’’’’’’’’"]’’’’’’’’’’’’’’’’’’’’B]’’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b]’’’’’’’’’’’’’’’’’’’’‚]’3’’’’’’’’’’’’’’’’’’’Ā]’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ā]’’’’’’’’’’’’’’’’’’’’^’’’’’’’’’’’’’’’’’’’’"^’’’’’’’’’’’’’’’’’’’’B^’’’’’’’’’’’’’’’’’’’’r^’’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’^’’’’’’’’’’’’’’’’’’’’²^’#’’’’’’’’’’’’’’’’’’’ā^’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’_’’’’’’’’’’’’’’’’’’’’"_’+’’’’’’’’’’’’’’’’’’’R_’,’’’’’’’’’’’’’’’’’’’‚_’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’²_’&’’’’’’’’’’’’’’’’’’’ā_’’’’’’’’’’’’’’’’’’’’`’)’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’B`’ ’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r`’’’’’’’’’’’’’’’’’’’’’`’!’’’’’’’’’’’’’’’’’’’Ā`’’’’’’’’’’’’’’’’’’’’ā`’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’a’;’’’’’’’’’’’’’’’’’’’Ba’’’’’’’’’’’’’’’’’’’’ba’'’’’’’’’’’’’’’’’’’’’’a’*’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Āa’’’’’’’’’’’’’’’’’’’’Ņa’;’’’’’’’’’’’’’’’’’’’b’4’’’’’’’’’’’’’’’’’’’Rb’’’’’’’’’’’’’’’’’’’’rb’’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²b’’’’’’’’’’’’’’’’’’’’Ņb’’’’’’’’’’’’’’’’’’’’ņb’’’’’’’’’’’’’’’’’’’’"c’’’’’’’’’’’’’’’’’’’’Bc’&’’’’’’’’’’’’’’’’’’’rc’’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’c’’’’’’’’’’’’’’’’’’’’²c’>’’’’’’’’’’’’’’’’’’’ņc’ ’’’’’’’’’’’’’’’’’’’"d’’’’’’’’’’’’’’’’’’’’Bd’&’’’’’’’’’’’’’’’’’’’rd’’’’’’’’’’’’’’’’’’’’’d’’’’’’’’’’’’’’’’’’’’²d’?’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’e’’’’’’’’’’’’’’’’’’’’"e’&’’’’’’’’’’’’’’’’’’’Re’:’’’’’’’’’’’’’’’’’’’’e’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’tail: ’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ith node: ’’’’’’’’’’’1Œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŒ’(’’’’’’’’’’’’’’’’’’’”Œ’’’’’’’’’’’’’’’’’’’’ĮŒ’’’’’’’’’’’’’’’’’’’’ጒ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’Q’D’’’’’’’’’’’’’’’’’’’”’I’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’’’ INT VAR i; ’’’’’’’’1Ž’’’’’’’’’’’’’’’’’’’’QŽ’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŽ’B’’’’’’’’’’’’’’’’’’’ĮŽ’1’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’!’,’’’’’’’’’’’’’’’’’’’Q’,’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’я’.’’’’’’’’’’’’’’’’’’’’-’’’’’’’’’’’’’’’’’’’1’M’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’(’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’‘’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A‘’’’’’’’’’’’’’’’’’’’’a‘’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘‘’!’’’’’’’’’’’’’’’’’’’Į‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į‘’*’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’’G’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ђ’#’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!“’0’’’’’’’’’’’’’’’’’’’a“’7’’’’’’’’’’’’’’’’’’’”“’3’’’’’’’’’’’’’’’’’’’į“’3’’’’’’’’’’’’’’’’’’’!”’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q”’G’’’’’’’’’’’’’’’’’’’””’L’’’’’’’’’’’’’’’’’’’ń”’/’’’’’’’’’’’’’’’’’’’1•’’’’’’’’’’’’’’’’’’’’Q•’&’’’’’’’’’’’’’’’’’’’•’#’’’’’’’’’’’’’’’’’’’±•’’’’’’’’’’’’’’’’’’’’ѕ’’’’’’’’’’’’’’’’’’’’ń•’’’’’’’’’’’’’’’’’’’’!–’’’’’’’’’’’’’’’’’’’’A–’4’’’’’’’’’’’’’’’’’’’–’2’’’’’’’’’’’’’’’’’’’Į–’’’’’’’’’’’’’’’’’’’’į–’K’’’’’’’’’’’’’’’’’’’1—’?’’’’’’’’’’’’’’’’’’’—’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”—’’’’’’’’’’’’’’’’’’’’Į—’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ adjust head: ’’’’’’’’˜’/’’’’’’’’’’’’’’’’’’’A˜’?’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ adjust tail: ’’’’’’’’‘˜’/’’’’’’’’’’’’’’’’’’’ј’?’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ adjust size: ’’’’’’’’!™’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q™’’’’’’’’’’’’’’’’’’’’q™’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘™’’’’’’’’’’’’’’’’’’’’±™’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’node: ’’’’’’’’’’’’’’’љ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń™’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!š’’’’’’’’’’’’’’’’’’’’Aš’’’’’’’’’’’’’’’’’’’’aš’’’’’’’’’’’’’’’’’’’’š’ ’’’’’’’’’’’’’’’’’’’±š’/’’’’’’’’’’’’’’’’’’’ńš’’’’’’’’’’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’1›’’’’’’’’’’’’’’’’’’’’a›’’’’’’’’’’’’’’’’’’’’›’J’’’’’’’’’’’’’’’’’’’ћ’=’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’1œ’C’’’’’’’’’’’’’’’’’’’œ’8’’’’’’’’’’’’’’’’’’’Įœ’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᜒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ mark node: ’’’’’’’’’’!’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ptr node: ’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’'’’’’’’’’’’’’’’’’’’’į’ ’’’’’’’’’’’’’’’’’’’’’ END OP :=; ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’1ž’’’’’’’’’’’’’’’’’’’’Qž’’’’’’’’’’’’’’’’’’’’qž’’’’’’’’’’’’’’’’’’’’‘ž’’’’’’’’’’’’’’’’’’’’±ž’’’’’’’’’’’’’’’’’’’’ў’’’’’’’’’’’’’’’’’’’’ńž’’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ÿ’M’’’’’’’’’’’’’’’’’’’Ÿ’M’’’’’’’’’’’’’’’’’’’џ’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’! ’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q ’’’’’’’’’’’’’’’’’’’’” ’’’’’’’’’’’’’’’’’’’’Į ’=’’’’’’’’’’’’’’’’’’’”’(’’’’’’’’’’’’’’’’’’’1”’’’’’’’’’’’’’’’’’’’’Q”’’’’’’’’’’’’’’’’’’’’q”’’’’’’’’’’’’’’’’’’’’‘”’I’’’’’’’’’’’’’’’’’’’į”’@’’’’’’’’’’’’’’’’’’’1¢’!’’’’’’’’’’’’’’’’’’’a¢’’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’”¢’F’’’’’’’’’’’’’’’’’’’ń¢’H’’’’’’’’’’’’’’’’’’’A£’’’’’’’’’’’’’’’’’’’’a£’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q£’’’’’’’’’’’’’’’’’’’’‘£’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ head of sym: ’’’’’’’’±£’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ sym node: ’’’’’’’’’’’Ń£’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!¤’!’’’’’’’’’’’’’’’’’’’Q¤’.’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”¤’)’’’’’’’’’’’’’’’’’’’Ѥ’’’’’’’’’’’’’’’’’’’’ń¤’7’’’’’’’’’’’’’’’’’’’1„’5’’’’’’’’’’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’‘„’’’’’’’’’’’’’’’’’’’’±„’’’’’’’’’’’’’’’’’’’’Ń„’I’’’’’’’’’’’’’’’’’’’!¦’?’’’’’’’’’’’’’’’’’’’q¦’’’’’’’’’’’’’’’’’’’’‘¦’’’’’’’’’’’’’’’’’’’’±¦’B’’’’’’’’’’’’’’’’’’’§’G’’’’’’’’’’’’’’’’’’’Q§’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a§’’’’’’’’’’’’’’’’’’’’§’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ head of sym: ’’’’’’’’”§’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ sym node: ’’’’’’’’’’’Į§’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń§’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ø’+’’’’’’’’’’’’’’’’’’’AØ’;’’’’’’’’’’’’’’’’’’’Ø’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ø’’’’’’’’’’’’’’’’’’’’ŃØ’’’’’’’’’’’’’’’’’’’’ńØ’=’’’’’’’’’’’’’’’’’’’1©’(’’’’’’’’’’’’’’’’’’’a©’’’’’’’’’’’’’’’’’’’’©’’’’’’’’’’’’’’’’’’’’”©’C’’’’’’’’’’’’’’’’’’’ń©’@’’’’’’’’’’’’’’’’’’’AŖ’!’’’’’’’’’’’’’’’’’’’qŖ’’’’’’’’’’’’’’’’’’’’‘Ŗ’’’’’’’’’’’’’’’’’’’’±Ŗ’G’’’’’’’’’’’’’’’’’’’«’I’’’’’’’’’’’’’’’’’’’Q«’’’’’’’’’’’’’’’’’’’’q«’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’«’’’’’’’’’’’’’’’’’’’’”«’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ tail of sym: ’’’’’’’’Į«’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ sym node: ’’’’’’’’’’’į«’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¬’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1¬’!’’’’’’’’’’’’’’’’’’’a¬’.’’’’’’’’’’’’’’’’’’’‘¬’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±¬’)’’’’’’’’’’’’’’’’’’’ᬒ’’’’’’’’’’’’’’’’’’’­’8’’’’’’’’’’’’’’’’’’’A­’5’’’’’’’’’’’’’’’’’’’­’’’’’’’’’’’’’’’’’’’’”­’’’’’’’’’’’’’’’’’’’’Į­’’’’’’’’’’’’’’’’’’’’į­’J’’’’’’’’’’’’’’’’’’’1®’?’’’’’’’’’’’’’’’’’’’®’’’’’’’’’’’’’’’’’’’’”®’’’’’’’’’’’’’’’’’’’’Į®’H’’’’’’’’’’’’’’’’’’’Æ’I’’’’’’’’’’’’’’’’’’’aÆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qÆ’’’’’’’’’’’’’’’’’’’’‘Æ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ tail of sym: ’’’’’’’’±Æ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ sym node: ’’’’’’’’’’’ŃÆ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’°’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!°’+’’’’’’’’’’’’’’’’’’’Q°’;’’’’’’’’’’’’’’’’’’’‘°’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±°’&’’’’’’’’’’’’’’’’’’’į°’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’!±’$’’’’’’’’’’’’’’’’’’’Q±’$’’’’’’’’’’’’’’’’’’’±’$’’’’’’’’’’’’’’’’’’’’’ result. ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±±’’’’’’’’’’’’’’’’’’’’ѱ’'’’’’’’’’’’’’’’’’’’’²’(’’’’’’’’’’’’’’’’’’’1²’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’Q²’’’’’’’’’’’’’’’’’’’’q²’<’’’’’’’’’’’’’’’’’’’’’ FI.’’ ’’’’’’’’’’’’’’’’’’’’²e’-’’’’’’’’’’’’’’’’’’’āe’’’’’’’’’’’’’’’’’’’’f’’’’’’’’’’’’’’’’’’’’"f’’’’’’’’’’’’’’’’’’’’’’ END SELECT.’’’’’’’’’Bf’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’bf’XT PROC dra ’’’’’’’’’’’’’’’’’’’’’’’’²f’L’’’’’’’’’’’’’’’’’’’g’L’’’’’’’’’’’’’’’’’’’Rg’L’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’¢g’’’’’’’’’’’’’’’’’’’’Āg’’’’’’’’’’’’’’’’’’’’āg’’’’’’’’’’’’’’’’’’’’’’FI;’’’’’’’’’’’’’’’’’’h’1’’’’’’’’’’’’’’’’’’’Bh’’’’’’’’’’’’’’’’’’’’bh’+’’’’’’’’’’’’’’’’’’’’’ put (i);’’’’’’’’’’’’h’,’’’’’’’’’’’’’’’’’’’Āh’1’’’’’’’’’’’’’’’’’’’i’,’’’’’’’’’’’’’’’’’’’2i’-’’’’’’’’’’’’’’’’’’’bi’1’’’’’’’’’’’’’’’’’’’¢i’,’’’’’’’’’’’’’’’’’’’’’ line;’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’’’’’ sysout("")’’’’’’’’’’’Ņi’’’’’’’’’’’’’’’’’’’’ņi’K’’’’’’’’’’’’’’’’’’’Bj’’’’’’’’’’’’u ’’q’L***** ŪŠ ’’¢r’ + "drŚv ’’āx’H genln ("IF# ’’w „’’2t’" ’’’’’¤’’bt’. ‘’’²t’. ’’’t’ „¤’’ņt’H ’’’’ń’’Bu’L’’’’’’’’’’’’’’u’$IF is draw ’’Āu’D PROC draw’’’’’’’’’’’’’’’’&,’’āu’’’’’’’’’’’’±%’’Rv draw found ²–’’rv’plot found в’’āv’ Ļ’’2w $Ū’’‚w’’’’’’’’’’’’- ’’āw’J err (67))#&’’2x’is draw := ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’>(************************************************************)>(************************************************************)>(****** ******)>(****** ******)>(****** DYNAMO - III - ELAN PRECOMPILER ******)>(****** ******)>(****** ******)>(****** AUTOREN : R. Keil, ******)>(****** T. Froehlich ******)>(****** ******)>(****** VERSION : 3.3.6 ******)>(****** ******)>(****** *****)>(****** AENDERUNGEN: ******)>(****** 05.10.1983 ******)>(****** 06.05.1985 Hua&DC: forget("zzdyn.const") ******)>(****** 08.04.1986 Ley : Anpassung an 1.7.5 ******)N(****** 02.04.1987 C.Fallis & C.Rensen Einbettung in BOX ******)’’N(****** 18.05.1988 dc: Udi Katzirs changes ******)’’N(****** should declare vector eingefŪhrt ******)’’N(****** 20.05.1988 dc: already used in loop body eingefŪhrt ******)’’N(****** Fehlermeldung bei Ref. int index unterdrŪckt ******)’’N(****** weil sie wahrscheinlich selbst ein Fehler ist ******) ’N(****** 21.07.1988 Christian Szymanski ******) >(****** ******)>(************************************************************)>(************************************************************)NPACKET dynamo compiler 33 DEFINES init std, dynamo, insert macro,,,,,,’’’’’’’’> erase, table dump, graphic:’N(********************** T A B L E S ********************************)’’LET max tab size = 950,’’’’’’ max hash size = 300,’’’’’’. library = ""15"TAB1"14"",’’’’’’’’’’’. tab name = ""15"TAB2"14"";’’’’’’’’’’’NBOOL VAR is draw := FALSE;max tab size TEXT name, init, right part,’’’’’’’’’’’N ROW max tab size INT type, line no, pred, mac,’’’’’’’’’> index, index type,N ROW max tab size BOOL in use, idef, rdef,’’’’’’’’’’’’’’’N already used in loop body,’’’’’’’’N should declare vector, ’’’’’’’’’’’N (*18.5.88 dc: Önderung von Udi Katzir *) ’’’’’’’’’’’’’> ROW max hash size INT class,’’’’’’’’’’’’. INT tab size,’’’’’’’’’’’. tab beg);’’’’’’’’’’’N(* already used in loop body: is set to TRUE , if that table-element has been’N used to generate a line within a loop --> PROC gen loop 20.5.88 dc*)’N(* should declare vector : used when rows are declared and indicates if the*)’N(* length of the row is to be taken from the index of the current variable *)’BOUND TABLE VAR tab;’’’’’’’’’’NPROC enter (TEXT CONST name, right part, INT CONST type of equ) :’’’’’’’’’’’’’ INT VAR tab pos;’’’’’’’’’’’’’. INT CONST hash class := hash (name);’’’’’’’’’> search (name, tab pos, lmp, equtype, hash class);’’’’’’’’’’’’ table index := tab pos;’’’’’’N IF not found OR subscript COR CONCR (tab).type (tabpos) = mac param’’’’’’’’’ THEN enter name’’’’’’’’’’’’ ELIF type of equ = nequ’’’’’ THEN enter nequ’’’’’’’’’’’’. ELIF CONCR (tab).right part (tab pos) = nt’’ THEN complete nequ’’’’’’’’’ ELSE err (name, 1)’’’’’’’’’ IF subscript THEN type of equ’’’’’’’’’’’ CONCR (tab).tab size INCR 1;. tab size := CONCR (tab).tab size;’’’’’’’’’’’ IF tab size > max tab size’’. THEN errorstop ("dynamo table overflow")’’’ IF type of equ = nequ’’’’’’’> THEN CONCR (tab).init (tab size) := right part;’’’’’’> CONCR (tab).right part (tab size) := nt’’’’’’’’’’’’’’’> ELSE CONCR (tab).init (tab size) := nt;’’’’’’’’’’’’’’> CONCR (tab).right part (tab size) := right part’’’’’’’ init element.’’’’’’’’’’’’’’’ init element :’’’’’’’’’’’’’’’. CONCR (tab).name (tab size) := name;’’> CONCR (tab).type (tab size) := type of equ;’’’’’’’’’’’> CONCR (tab).line no (tab size) := line no;’’’’’’’’’’’’’’’. CONCR (tab).mac (tab size) := lmp;’’’. CONCR (tab).index (tab size) := nil;’’’. CONCR (tab).index type (tab size) := nil;’’’. CONCR (tab).in use (tab size) := FALSE;’. CONCR (tab).idef (tab size) := FALSE;’. CONCR (tab).rdef (tab size) := FALSE;’> CONCR (tab).already used in loop body (tab size) := FALSE;’’N CONCR (tab).pred (tab size) := CONCR (tab).class (hash class);’’’’’’’’> CONCR (tab).class (hash class) := tab size.’’’’’’’’’’’’’’. IF CONCR (tab).init (tab pos) <> nt’’’’’’’’’ THEN err (name, 2)’’’’’’’’’. CONCR (tab).init (tab pos) := right part.’’’ complete nequ :’’’’’’’’’’’’’’> CONCR (tab).right part (tab pos) := right part;’’’’’’’’’’’’’> CONCR (tab).type (tab pos) := type of equ;’’’’’’’’’’’’. CONCR (tab).line no (tab pos) := line no.END PROC enter;’’’’’’’’’’’’’’’NPROC test (TEXT CONST name, INT VAR tab pos, INT CONST last mp, type, ’’’’’’’’N err no) :’’’’’’’’’’’’’’. search (name, tab pos, last mp, type);’’’’’’’ THEN err (err no)’’’’’’’’’’’END PROC test;NPROC search (TEXT CONST name, INT VAR tab pos, INT CONST last mp, type) :’’’’’> search (name, tab pos, last mp, type, hash (name)) ’’’’’’’’’’END PROC search;’’’’’’’’’’’’’’.PROC search (TEXT CONST name, INT VAR tab pos,> INT CONST last mp, type, hash class) :’’’’’’’’’’’ not found := TRUE;’’’’’’’’’’’. tab pos := CONCR (tab).class (hash class);’’’ ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ result node: ’’’’’’’’±²’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į²’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’³’'’’’’’’’’’’’’’’’’’’’1³’ ’’’’’’’’’’’’’’’’’’’’’ END PROC eq; ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a³’*’’’’’’’’’’’’’’’’’’’‘³’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į³’’’’’’’’’’’’’’’’’’’’į³’1’’’’’’’’’’’’’’’’’’’’’ FALSE ’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’!“’ ’’’’’’’’’’’’’’’’’’’Q“’’’’’’’’’’’’’’’’’’’’q“’?’’’’’’’’’’’’’’’’’’’Į“’:’’’’’’’’’’’’’’’’’’’µ’’’’’’’’’’’’’’’’’’’’!µ’’’’’’’’’’’’’’’’’’’’Qµ’’’’’’’’’’’’’’’’’’’’qµ’H’’’’’’’’’’’’’’’’’’’Įµ’I’’’’’’’’’’’’’’’’’’’¶’"’’’’’’’’’’’’’’’’’’’A¶’=’’’’’’’’’’’’’’’’’’’¶’;’’’’’’’’’’’’’’’’’’’Į¶’7’’’’’’’’’’’’’’’’’’’·’L’’’’’’’’’’’’’’’’’’’Q·’$’’’’’’’’’’’’’’’’’’’·’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ equal texts: ’’’’’’’’”·’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ń·’’’’’’’’’’’’’’’’’’’’į·’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ø’’’’’’’’’’’’’’’’’’’’1ø’+’’’’’’’’’’’’’’’’’’’aø’+’’’’’’’’’’’’’’’’’’’’’ INT VAR i; ’’’’’’’’‘ø’)’’’’’’’’’’’’’’’’’’’Įø’?’’’’’’’’’’’’’’’’’’’¹’?’’’’’’’’’’’’’’’’’’’a¹’@’’’’’’’’’’’’’’’’’’’±¹’/’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’ń¹’>’’’’’’’’’’’’’’’’’’’1ŗ’C’’’’’’’’’’’’’’’’’’’ŗ’4’’’’’’’’’’’’’’’’’’’Įŗ’0’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’»’2’’’’’’’’’’’’’’’’’’’A»’7’’’’’’’’’’’’’’’’’’’»’0’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’’’ TRUE. ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ sym 1 node: ’’’’’’’’’Į»’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ sym 2 node: ’’’’’’’’’ń»’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!¼’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A¼’ ’’’’’’’’’’’’’’’’’’’q¼’’’’’’’’’’’’’’’’’’’’‘¼’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±¼’ ’’’’’’’’’’’’’’’’’’’į¼’’’’’’’’’’’’’’’’’’’’½’’’’’’’’’’’’’’’’’’’’!½’’’’’’’’’’’’’’’’’’’’A½’’’’’’’’’’’’’’’’’’’’a½’’’’’’’’’’’’’’’’’’’’½’’’’’’’’’’’’’’’’’’’’”½’’’’’’’’’’’’’’’’’’’’Į½’’’’’’’’’’’’’’’’’’’’į½’’’’’’’’’’’’’’’’’’’’¾’I’’’’’’’’’’’’’’’’’’’Q¾’F’’’’’’’’’’’’’’’’’’’”¾’2’’’’’’’’’’’’’’’’’’’į¾’9’’’’’’’’’’’’’’’’’’’’’ END SELECT ’’’’’’’’!æ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aæ’)’’’’’’’’’’’’’’’’’’’qæ’’’’’’’’’’’’’’’’’’’’‘æ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±æ’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ą’4’’’’’’’’’’’’’’’’’’’AĄ’'’’’’’’’’’’’’’’’’’’’qĄ’,’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’”Ą’’’’’’’’’’’’’’’’’’’’ĮĄ’’’’’’’’’’’’’’’’’’’’ńĄ’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’1Į’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ new node: ’’’’’’’’’’’QĮ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’node: ’’’’’’’’’’’’’’’qĮ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Į’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Į’#’’’’’’’’’’’’’’’’’’’įĮ’)’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ā’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’(NOTE: ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ā’5’’’’’’’’’’’’’’’’’’’įĀ’5’’’’’’’’’’’’’’’’’’’!Ć’H’’’’’’’’’’’’’’’’’’’qĆ’H’’’’’’’’’’’’’’’’’’’ĮĆ’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ END OF NOTE) ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ä’4’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AÄ’’’’’’’’’’’’’’’’’’’’aÄ’’’’’’’’’’’’’’’’’’’’Ä’K’’’’’’’’’’’’’’’’’’’ŃÄ’’’’’’’’’’’’’’’’’’’’ńÄ’’’’’’’’’’’’’’’’’’’’Å’’’’’’’’’’’’’’’’’’’’1Å’’’’’’’’’’’’’’’’’’’’QÅ’’’’’’’’’’’’’’’’’’’’qÅ’K’’’’’’’’’’’’’’’’’’’ĮÅ’’’’’’’’’’’’’’’’’’’’įÅ’’’’’’’’’’’’’’’’’’’’Ę’’’’’’’’’’’’’’’’’’’’!Ę’’’’’’’’’’’’’’’’’’’’1Ę’’’’’’’’’’’’’’’’’’’’AĘ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QĘ’’’’’’’’’’’’’’’’’’’’qĘ’’’’’’’’’’’’’’’’’’’’‘Ę’K’’’’’’’’’’’’’’’’’’’įĘ’’’’’’’’’’’’’’’’’’’’Ē’’’’’’’’’’’’’’’’’’’’!Ē’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AĒ’J’’’’’’’’’’’’’’’’’’’‘Ē’H’’’’’’’’’’’’’’’’’’’įĒ’F’’’’’’’’’’’’’’’’’’’1Č’I’’’’’’’’’’’’’’’’’’’Č’L’’’’’’’’’’’’’’’’’’’ŃČ’H’’’’’’’’’’’’’’’’’’’!É’G’’’’’’’’’’’’’’’’’’’qÉ’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±É’F’’’’’’’’’’’’’’’’’’’Ź’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ź’’’’’’’’’’’’’’’’’’’’AŹ’’’’’’’’’’’’’’’’’’’’aŹ’’’’’’’’’’’’’’’’’’’’Ź’1’’’’’’’’’’’’’’’’’’’ĮŹ’’’’’’’’’’’’’’’’’’’’’’ l ’’’’’’’’’’’’’’’ V ’’’’’’’’’’’’’įŹ’’’’’’’’’’’’’’’’’’’’Ė’’’’’’’’’’’’’’’’’’’’!Ė’’’’’’’’’’’’’’’’’’’’AĖ’/’’’’’’’’’’’’’’’’’’’Ė’’’’’’’’’’’’’’’’’’’’’’ l ’’’’’’’’’’’’’’’ V ’’’’’’’’’’’’’’’ . ’’’’’’’’’’’’’’’ . ’’’’’’’’’’’’’’’ . ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ l ’’’’’’’’’’’’’’’ V ’’’’’’’’’’’’’”Ė’’’’’’’’’’’’’’’’’’’’ĮĖ’’’’’’’’’’’’’’’’’’’’įĖ’’’’’’’’’’’’’’’’’’’’Ģ’0’’’’’’’’’’’’’’’’’’’AĢ’’’’’’’’’’’’’’’’’’’’’’ l ’’’’’’’’’’’’’’’ V ’’’’’’’’’’’’’aĢ’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ģ’9’’’’’’’’’’’’’’’’’’’’’*) ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃĢ’(’’’’’’’’’’’’’’’’’’’Ķ’ ’’’’’’’’’’’’’’’’’’’1Ķ’#’’’’’’’’’’’’’’’’’’’aĶ’’’’’’’’’’’’’’’’’’’’’’ INT VAR i; ’’’’’’’’Ķ’’’’’’’’’’’’’’’’’’’’”Ķ’$’’’’’’’’’’’’’’’’’’’ŃĶ’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’ńĶ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’node: ’’’’’’’’’’’’’’’Ī’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ī’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aĪ’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ī’(’’’’’’’’’’’’’’’’’’’įĪ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ļ’’’’’’’’’’’’’’’’’’’’1Ļ’"’’’’’’’’’’’’’’’’’’’aĻ’’’’’’’’’’’’’’’’’’’’Ļ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ļ’’’’’’’’’’’’’’’’’’’’ĮĻ’'’’’’’’’’’’’’’’’’’’’ńĻ’,’’’’’’’’’’’’’’’’’’’!Š’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’AŠ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŠ’!’’’’’’’’’’’’’’’’’’’‘Š’L’’’’’’’’’’’’’’’’’’’įŠ’L’’’’’’’’’’’’’’’’’’’1Ń’L’’’’’’’’’’’’’’’’’’’Ń’’’’’’’’’’’’’’’’’’’’”Ń’(’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’ŃŃ’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’!Ņ’1’’’’’’’’’’’’’’’’’’’aŅ’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’”Ņ’%’’’’’’’’’’’’’’’’’’’ŃŅ’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ó’(’’’’’’’’’’’’’’’’’’’1Ó’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aÓ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ó’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃÓ’’’’’’’’’’’’’’’’’’’’ńÓ’L’’’’’’’’’’’’’’’’’’’AŌ’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ō’!’’’’’’’’’’’’’’’’’’’ĮŌ’’’’’’’’’’’’’’’’’’’’įŌ’$’’’’’’’’’’’’’’’’’’’’’ nil ’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’’’ result ’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Õ’’’’’’’’’’’’’’’’’’’’1Õ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aÕ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Õ’%’’’’’’’’’’’’’’’’’’’±Õ’’’’’’’’’’’’’’’’’’’’ŃÕ’$’’’’’’’’’’’’’’’’’’’Ö’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’’’ result. ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!Ö’’’’’’’’’’’’’’’’’’’’AÖ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qÖ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ö’$’’’’’’’’’’’’’’’’’’’ĮÖ’’’’’’’’’’’’’’’’’’’’įÖ’ ’’’’’’’’’’’’’’’’’’’×’7’’’’’’’’’’’’’’’’’’’’’ ELS. WHILE tab pos <> nil CAND name not found REP’. tab pos := CONCR (tab).pred (tab pos)’’’’’’’ name not found :’’’’’’’’’’’’’> not found := NOT (CONCR (tab).name (tab pos) = name ’’’’’’’’> AND same macro AND type ok);’’’’’’’’’’’’’’. CONCR (tab).mac (tab pos) = last mp.’’’’’’’’> type = nil OR CONCR (tab).type (tab pos) = type.’’’’’’’’’’’’END PROC search;’’’’’’’’’’’’’’.PROC insert macro (TEXT CONST source) :’’’’’’’. dynamo (source, ""8"", FALSE);’’’’’’’’’’’’’’’ kill (""8""); IF errors = nil’’’’’’’’’’’’’’ THEN kill (library);’’’’’’’’. copy (tab name, library)’’’’’’’’’’’’’’’END PROC insert macro;’’’’’’’’.PROC init std (TEXT CONST std name) :’’’’’’’’’ kill (library);’’’’’’’’’’’’’’ tab := new (library);’’’’’’’’. FOR i FROM 1 UPTO max hash size REP’’’’’’’’’’ CONCR (tab).class (i) := nil CONCR (tab).tab size := nil;’ enter std procs;’’’’’’’’’’’’’. CONCR (tab).tab beg := tab size + 1.’’’’’’’’’enter std procs :’’’’’’’’’’’’’> FILE VAR std file := sequential file (input, std name);’’’’’’ TEXT VAR name, params;’’’’’’’ WHILE NOT eof (std file) REP’ get (std file, name);’’’’’’’ IF params = "()"’’’’’’’’’’’’ THEN params := ""’’’’’’’’’’ enter (name, params, std p)’ IF name = "/*"’’’’’’’’’’’’’’ THEN LEAVE enter std procs’. ELSE get (std file, params) ’’’’’’’’’’’’’’’END PROC init std;’’’’’’’’’’’’PROC next sym :’’’’’’’’’’’’’’’. next sym (scan buf, sym, type, scan position)END PROC next sym;’’’’’’’’’’’’.PROC next sym (TEXT CONST buf) :’’’’’’’’’’’’’’. next sym (buf, sym, type, scan position)’’’’’END PROC next sym;’’’’’’’’’’’’.PROC test open bracket (TEXT CONST sym) :’’’’’ IF sym <> "(" THEN err (sym, 6)’’’’’’’’’’’END PROC test open bracket;’’’.PROC test closing bracket (TEXT CONST sym) :’’ IF sym <> ")" THEN err (sym, 58)’’’’’’’’’’END PROC test closing bracket;.PROC test bold (INT CONST err no) :’’’’’’’’’’’ IF type <> bold’’’’’’’’’’’’’’ THEN err (err no)’’’’’’’’’’’END PROC test bold;’’’’’’’’’’’.PROC test equal (INT CONST err no) :’’’’’’’’’’ IF sym <> "=" THEN err (err no)’’’’’’’’’’’END PROC test equal;’’’’’’’’’’.BOOL OP IN (TEXT CONST pattern, source) :’’’’’ pos (source, pattern) > nil.’PROC scan (TEXT CONST buf) :’’ scan buf := buf;’’’’’’’’’’’’’ scan position := 1’’’’’’’’’’’END PROC scan;.PROC err (TEXT CONST a, INT CONST b) :’’’’’’’’ err (a, b, line no)’’’’’’’’’’PROC err (INT CONST i) :’’’’’’ err (sym, i, line no)’’’’’’’’PROC gen (TEXT CONST a) :’’’’’ out buf CAT aPROC gen (TEXT CONST a, b) :’’ out buf CAT a;’’’’’’’’’’’’’’’ out buf CAT b.PROC gen (TEXT CONST a, b, c) :’’’’’’’’’’’’’’’ out buf CAT a;’’’’’’’’’’’’’’’ out buf CAT b;’’’’’’’’’’’’’’’ out buf CAT c.PROC gen (TEXT CONST a, b, c, d) :’’’’’’’’’’’’ out buf CAT a;’’’’’’’’’’’’’’’ out buf CAT b;’’’’’’’’’’’’’’’ out buf CAT c;’’’’’’’’’’’’’’’ out buf CAT d.PROC genln (TEXT CONST a, b, c) :’’’’’’’’’’’’’ gen (a, b, c);’’’’’’’’’’’’’’’END PROC genln;’’’’’’’’’’’’’’’ putline (target, outbuf);’’’’PROC gen ln (TEXT CONST t) :’’ outbuf CAT t; putline (target, outbuf);’’’’END PROC gen ln; ’’’’’’’’’’’’’PROC erase (BOOL CONST b) :’’’ erase option := b’’’’’’’’’’’’END PROC erase;’’’’’’’’’’’’’’’PROC dynamo (TEXT CONST s) :’’. TEXT VAR target name := s + ".elan";’’’’’’’’’. dynamo (s, target name, TRUE);’’’’’’’’’’’’’’’ IF erase option’’’’’’’’’’’’’’ THEN kill (target name)’’’’’ forget (target name, quiet); END PROC dynamo;’’’’’’’’’’’’’’ dynamo (last param)’’’’’’’’’’END PROC dynamo;’’’’’’’’’’’’’’NPROC graphic (BOOL CONST mode):M P I L E R ************************)’’’’.LET bold = 1, number = 2,’’’’. delimiter = 3, eol = 4,’’’’. aux = 1, rate = 2,’’’’. level = 3, nequ = 4,’’’’. mac name = 6, std p = 7, ’’’. sub init = 8, table = 9,’’’’. for = 10, mac param = 11,’’’. const = 12, print = 1,’’’’. plot = 2, global param = 1,’’’’. none = 3, max print no = 10,’’’. supp = 5, any = "ū";’’FILE VAR source, target;’’’’’’.ROW max print no TEXT VAR print param;’’’’’’’’ROW 10 TEXT VAR plot name, id;ROW 10 INT VAR scale pointer;.ROW 10 TEXT VAR lower bound, upper bound;’’’’’.ROW 10 BOOL VAR l fixed scale, u fixed scale;’>TEXT VAR buffer, left part, right part, outbuf, print buf,’’> headline, sym, plot buf, asterisk buffer,’’’’’’’’’’> macro name, noise buffer, constant, run buffer,’’’’ scan buf;’’’’’’’’’’NINT VAR print param no, print line no, tab beg, type, line no,’’’’’’’’’’’’’> plot line no, scale counter, plot param no,’’’’’’’’N last pos, lmp, index, (* lmp = Last Macro Position *)’’’’’’’’’’’’’’> index type, for index, i, tab size, expansion no,’’> table index, scan position, old tab beg;’’’’’’’’’’’>BOOL VAR k, kl, is first, fixed scale, in macro, ,,,,,,,,’’’> in loop, not found, internal, subscript, draw found. erase option := FALSE;’’’’’’’’’’’’’TEXT CONST nt := "";’’’’’’’’’’INT CONST nil := 0;’’’’’’’’’’N(*$$$$$$$$$$ ZUSATZ C & C 20.2.87 eingefuegt : error listing $$$$$$$$$*)’’’’’’N(* Diese Prozedur erzeugt einen zweigeteilten Bildschirm, wobei *)’’’’’’N(* die Datei 'procsource' (d.h. das Dynamo-Quellprogramm) in der *)’’’’’’N(* oberen Haelfte und die Fehlerdatei 'notebook' in der unteren *)’’’’’’(* Haelfte steht. *)’’’’.PROC error listing (FILE VAR procsource) :  note edit (procsource);’’’’’’ error stop ("")  error stop ("") END PROC error listing;’’’’’’’N(*$$$$$$$$$$$$$$$$$$$$ ENDE ZUSATZ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*)’’’’NPROC dynamo (TEXT CONST source name, target name, BOOL CONST pass2) :’’’’’’’’’ THEN second pass’’’’’’’’’’ ELSE error listing(source)N (* Falls Fehler im ersten Durchlauf gefunden wurden, wird der zweite *)’’’’’N (* Durchlauf erst gar nicht durchgefuehrt, sondern das fehlerhafte *)’’’’’N (* Dynamo-Programm und die Fehlerdatei werden ausgegeben . *)’’’’’ WHILE NOT eof (source) REP’’ read source line;’’’’’’’’’’ translate line’’’’’’’’’’’’’ IF NOT pass2 THEN LEAVE dynamo’’’’’’’’’’ end of first pass.’’’’’’’’’’ second pass : generate initializations;’’’ generate equations.’’’’’’’’’ generate initializations :’’’ generate rts call;’’’’’’’’’’ generate noise card;’’’’’’’’ generate table part;’’’’’’’’ generate for variables;’’’’’ generate variable part;’’’’’ generate table init;’’’’’’’’ generate init print;’’’’’’’’ generate init plot;’’’’’’’’’ generate init scale;’’’’’’’’ generate asterisk;’’’’’’’’’’ generate equations :’’’’’’’’’ generate print line;’’’’’’’’ generate plot line;’’’’’’’’’ gen equations (level);’’’’’’ gen equations (aux);’’’’’’’’ gen equations (supp);’’’’’’’ gen equations (rate);’’’’’’’ gen end repeat;’’’’’’’’’’’’’ IF no errors THEN run (target name)’’’’’ ELSE error listing(source);N (* Falls im zweiten Durchlauf Fehler gefunden wurden, wird das *)’’’’’’’’N (* ELAN-Zielprogramm nicht ausgefuehrt, sondern das fehlerhafte *)’’’’’’’’N (* Dynamo-Quellprogramm und die Fehlerdatei werden ausgegeben . *)’’’’’’’’ init dynamo : kill (target name);’’’’’’’’’ init tables;> source := sequential file (input, source name);’’’> target := sequential file (output, target name);’’’ print buf := nt;’’’’’’ outbuf := nt;’’’’’’E ’’’’’’’’’’’’’’Q×’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q×’’’’’’’’’’’’’’’’’’’’‘×’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į×’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į×’#’’’’’’’’’’’’’’’’’’’Ų’’’’’’’’’’’’’’’’’’’’AŲ’,’’’’’’’’’’’’’’’’’’’qŲ’;’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’±Ų’’’’’’’’’’’’’’’’’’’’ŃŲ’!’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’Ł’>’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŁ’’’’’’’’’’’’’’’’’’’’aŁ’ ’’’’’’’’’’’’’’’’’’’‘Ł’0’’’’’’’’’’’’’’’’’’’ŃŁ’(’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ś’’’’’’’’’’’’’’’’’’’’!Ś’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŚ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŚ’&’’’’’’’’’’’’’’’’’’’”Ś’9’’’’’’’’’’’’’’’’’’’įŚ’L’’’’’’’’’’’’’’’’’’’1Ū’L’’’’’’’’’’’’’’’’’’’Ū’L’’’’’’’’’’’’’’’’’’’ŃŪ’L’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’!Ü’’’’’’’’’’’’’’’’’’’’AÜ’$’’’’’’’’’’’’’’’’’’’qÜ’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ü’’’’’’’’’’’’’’’’’’’’ŃÜ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ż’’’’’’’’’’’’’’’’’’’’!Ż’=’’’’’’’’’’’’’’’’’’’aŻ’.’’’’’’’’’’’’’’’’’’’‘Ż’%’’’’’’’’’’’’’’’’’’’ĮŻ’&’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’ńŻ’B’’’’’’’’’’’’’’’’’’’’’ FALSE ’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’AŽ’’’’’’’’’’’’’’’’’’’’aŽ’(’’’’’’’’’’’’’’’’’’’‘Ž’’’’’’’’’’’’’’’’’’’’±Ž’+’’’’’’’’’’’’’’’’’’’įŽ’&’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’ TRUE ’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ß’’’’’’’’’’’’’’’’’’’’1ß’;’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qß’%’’’’’’’’’’’’’’’’’’’”ß’=’’’’’’’’’’’’’’’’’’’įß’,’’’’’’’’’’’’’’’’’’’ą’&’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Aą’ ’’’’’’’’’’’’’’’’’’’qą’F’’’’’’’’’’’’’’’’’’’Įą’&’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńą’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į’*’’’’’’’’’’’’’’’’’’’Aį’M’’’’’’’’’’’’’’’’’’’‘į’M’’’’’’’’’’’’’’’’’’’įį’M’’’’’’’’’’’’’’’’’’’1ā’’’’’’’’’’’’’’’’’’’’Qā’$’’’’’’’’’’’’’’’’’’’ā’+’’’’’’’’’’’’’’’’’’’±ā’'’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’įā’ ’’’’’’’’’’’’’’’’’’’ć’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ać’’’’’’’’’’’’’’’’’’’’ać’H’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ć’’’’’’’’’’’’’’’’’’’’Ńć’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńć’’’’’’’’’’’’’’’’’’’’ä’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aä’’’’’’’’’’’’’’’’’’’’ä’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńä’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’(* ’’’’’’’’’’’’’’’’’’Aå’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’å’-’’’’’’’’’’’’’’’’’’’±å’-’’’’’’’’’’’’’’’’’’’įå’-’’’’’’’’’’’’’’’’’’’ę’6’’’’’’’’’’’’’’’’’’’Qę’-’’’’’’’’’’’’’’’’’’’ę’!’’’’’’’’’’’’’’’’’’’±ę’!’’’’’’’’’’’’’’’’’’’įę’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’or ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ē’’’’’’’’’’’’’’’’’’’’1ē’’’’’’’’’’’’’’’’’’’’Qē’’’’’’’’’’’’’’’’’’’’qē’’’’’’’’’’’’’’’’’’’’‘ē’’’’’’’’’’’’’’’’’’’’’’ l ’’’’’’’’’’’’’’’ V ’’’’’’’’’’’’’’’ flag id ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ē’<’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńē’K’’’’’’’’’’’’’’’’’’’Ač’H’’’’’’’’’’’’’’’’’’’‘č’G’’’’’’’’’’’’’’’’’’’įč’8’’’’’’’’’’’’’’’’’’’!é’J’’’’’’’’’’’’’’’’’’’qé’K’’’’’’’’’’’’’’’’’’’Įé’H’’’’’’’’’’’’’’’’’’’ź’’’’’’’’’’’’’’’’’’’’’’*) ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ź’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ź’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ź’0’’’’’’’’’’’’’’’’’’’ńź’-’’’’’’’’’’’’’’’’’’’!ė’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qė’4’’’’’’’’’’’’’’’’’’’‘ė’+’’’’’’’’’’’’’’’’’’’Įė’’’’’’’’’’’’’’’’’’’’įė’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’ģ’3’’’’’’’’’’’’’’’’’’’Aģ’'’’’’’’’’’’’’’’’’’’’qģ’<’’’’’’’’’’’’’’’’’’’±ģ’M’’’’’’’’’’’’’’’’’’’ķ’M’’’’’’’’’’’’’’’’’’’Qķ’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ get flag id: ’’’’’’’’qķ’5’’’’’’’’’’’’’’’’’’’±ķ’C’’’’’’’’’’’’’’’’’’’ī’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ī’’’’’’’’’’’’’’’’’’’’Aī’5’’’’’’’’’’’’’’’’’’’ī’C’’’’’’’’’’’’’’’’’’’Ńī’?’’’’’’’’’’’’’’’’’’’!ļ’4’’’’’’’’’’’’’’’’’’’aļ’D’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’±ļ’:’’’’’’’’’’’’’’’’’’’ńļ’>’’’’’’’’’’’’’’’’’’’1š’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qš’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qš’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įš’’’’’’’’’’’’’’’’’’’’ńš’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ń’;’’’’’’’’’’’’’’’’’’’qń’"’’’’’’’’’’’’’’’’’’’”ń’B’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’ńń’-’’’’’’’’’’’’’’’’’’’!ņ’*’’’’’’’’’’’’’’’’’’’Qņ’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’qņ’<’’’’’’’’’’’’’’’’’’’±ņ’ ’’’’’’’’’’’’’’’’’’’įņ’5’’’’’’’’’’’’’’’’’’’!ó’"’’’’’’’’’’’’’’’’’’’Qó’%’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ó’%’’’’’’’’’’’’’’’’’’’±ó’"’’’’’’’’’’’’’’’’’’’įó’L’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ō’&’’’’’’’’’’’’’’’’’’’aō’K’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ō’’’’’’’’’’’’’’’’’’’’Ńō’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńō’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’õ’A’’’’’’’’’’’’’’’’’’’aõ’"’’’’’’’’’’’’’’’’’’’‘õ’0’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’Ńõ’.’’’’’’’’’’’’’’’’’’’ö’!’’’’’’’’’’’’’’’’’’’1ö’1’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’qö’8’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’±ö’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńö’1’’’’’’’’’’’’’’’’’’’÷’,’’’’’’’’’’’’’’’’’’’A÷’’’’’’’’’’’’’’’’’’’’’’ nil ’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’q÷’$’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’”÷’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į÷’4’’’’’’’’’’’’’’’’’’’ų’"’’’’’’’’’’’’’’’’’’’1ų’C’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’ų’.’’’’’’’’’’’’’’’’’’’±ų’%’’’’’’’’’’’’’’’’’’’įų’H’’’’’’’’’’’’’’’’’’’1ł’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’Qł’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qł’9’’’’’’’’’’’’’’’’’’’±ł’,’’’’’’’’’’’’’’’’’’’įł’’’’’’’’’’’’’’’’’’’’ś’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!ś’9’’’’’’’’’’’’’’’’’’’aś’L’’’’’’’’’’’’’’’’’’’±ś’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’įś’’’’’’’’’’’’’’’’’’’’ū’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’!ū’2’’’’’’’’’’’’’’’’’’’aū’!’’’’’’’’’’’’’’’’’’’‘ū’’’’’’’’’’’’’’’’’’’’±ū’!’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’įū’'’’’’’’’’’’’’’’’’’’’ü’?’’’’’’’’’’’’’’’’’’’aü’H’’’’’’’’’’’’’’’’’’’±ü’A’’’’’’’’’’’’’’’’’’’ż’<’’’’’’’’’’’’’’’’’’’Aż’$’’’’’’’’’’’’’’’’’’’qż’M’’’’’’’’’’’’’’’’’’’Įż’"’’’’’’’’’’’’’’’’’’’ńż’I’’’’’’’’’’’’’’’’’’’Až’0’’’’’’’’’’’’’’’’’’’ž’1’’’’’’’’’’’’’’’’’’’Įž’5’’’’’’’’’’’’’’’’’’’’’E’’’’’’’’’’’’’’’’’’’Q’’@’’’’’’’’’’’’’’’’’’’”’’&’’’’’’’’’’’’’’’’’’’Ń’’'’’’’’’’’’’’’’’’’’’’’+’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’)’’’’’’’’’’’’’’’’’’’Ā’=’’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’,’’’’’’’’’’’’’’’’’’’’’ ’’’’ plot buf := nt;’’’’’’ noise buffer := nt;’’’’’’ asterisk buffer := nt;’’’’’’ macro name := nt;’’’’’’ run buffer := "zzdyn";’ line no := nil;’’’’’ plot param no := nil;’’’’’ last pos := nil;’’’’’ lmp := nil;’’’’’ index := nil;’’’’’ index type := nil;’’’’’ expansion no := nil;’’’’’ in macro := FALSE;’’’ internal := FALSE;’’’ in loop := FALSE;’’’ plot found := FALSE;’’’. tab beg := CONCR (tab).tab beg;’’’’’. old tab beg := CONCR (tab).tab size + 1; init errors. init tables : kill (tab name);’’’’’’’’’’’’ copy (library, tab name);’’’ tab := old (tab name).’’’’’’ read source line :’’’’’’’’’’’ line no INCR 1;’’’’’’’’’’’’’ getline (source, buffer);’’’ cout (line no);’’’’’’’’’’’’’ scan (buffer);’’’’’’’’’’’’’’ translate line :’’’’’’’’’’’’’ TEXT VAR start := sym;’’’’’’. WHILE sym = " " REP next sym PER;’’’’’’’’’’’N pos ("a c l n r print plot note EOL spec * x macro mend for s noise run ",’ start + " ") OF’> CASE 1 : enter equ (TRUE, FALSE, aux, 9)’’’’’’’’’’’ CASE 3, 31 : constant equ’> CASE 5 : enter equ (TRUE, FALSE, level, 11)’’’’’’’’’’> CASE 7 : enter equ (FALSE, FALSE, nequ, 56)’’’’’’’’’’> CASE 9 : enter equ (FALSE, TRUE, rate, 12)’’’’’’’’’’ CASE 11 : print card’’’ CASE 17 : is draw := FA. CASE 22, 27 : (* comment; empty line *)’’’’ CASE 36 : gen headline’> CASE 15 : enter equ (FALSE, FALSE, table, 13)’’’’’’’’’’. CASE 38 : continuation card’’’’’’’’’’’’ CASE 40 : macro card’’’ CASE 46 : macro end’’’’ CASE 51 : for card’’’’’> CASE 55 : enter equ (TRUE, FALSE, supp, 9)’’’’’’’’’’’’’ CASE 57 : noise card’’’ CASE 63 : run card’’’’’. "END IF;")draw := TRUE;’’’’’’’’’’ THEN err (4)’’’’’’’’’’’’’’’ in macro := TRUE;’’’’’’’’’’’ get macro name;’’’’’’’’’’’’’ get macro param list.’’’’’’’ get macro name :’’’’’’’’’’’’’ IF type = bold’’’’’’’’’’’’’’. THEN enter (sym, nt, mac name);’’’’’’’’’’’’. CONCR (tab).line no (tab size) := nil; macro name := sym;’’’’ lmp := tab size’’’’’’’ ELSE err (5)’’’’’’’’’’’’’’’ get macro param list :’’’’’’’ test open bracket (sym);’’’’ WHILE sym <> ")" REP’’’’’’’’ IF type = bold’’’’’’’’’’’’’. THEN enter (sym, nt, mac param)’’’’’’’’’’’ ELSE err (7)’’’’’’’’’’’’’’ IF sym = ","’’’’’’’’’’’’’’’ THEN next sym’’’’’’’’’’’’’ test closing bracket (sym).’ in macro := FALSE.’’’’’’’’’’ constant equ :’’’’’’’’’’’’’’’ analyze constant equ;’’’’’’. enter (left part, constant, const);’’’’’’’’ last pos := tab size’’’’’’’ UNTIL end of constants PER.’ analyze constant equ :’’’’’’’ test bold (10);’’’’’’’’’’’’’ left part := sym;’’’’’’’’’’’ test equal (21);’’’’’’’’’’’’ get constant.’’’’’’’’’’’’’’’ end of constants :’’’’’’’’’’’ test delimiter.’’’’’’’’’’’’’ get constant :’’’’’’’’’’’’’’’. IF NOT sym is number (constant)’’’’’’’’’’’ THEN err (37)’’’’’’’’’’’’’’ IF print buf = nt’’’’’’’’’’’N THEN print buf := subtext (buffer, scanposition - length (sym));’’’’’’’’’’’. print line no := line no’’’’’’’’’’’’’’N ELSE print buf CAT "," + subtext (buffer, scanposition - length (sym))’’’’’ last pos := print.’’’’’’’’’’ IF draw found AND NOT s THENN THEN plot buf := subtext (buffer, scanposition - length (sym));’’’’’’’’’’’’. plot line no := line no;’’’’’’’’’’’’’’N ELSE plot buf CAT "/" + subtext (buffer, scanposition - length (sym))’’’’’’ last pos := plot.’’’’’’’’’’’ gen headline :’’’’’’’’’’’’’’’N asterisk buffer := "asterisk (""" + subtext (buffer, 3) + """);".’’’’’’’’’’’ generate asterisk :’’’’’’’’’’ IF asterisk buffer <> nt’’’’. THEN genln (asterisk buffer)’’’’’’’’’’’’’’’ continuation card :’’’’’’’’’’ skip blanks;. TEXT CONST tail := subtext (buffer, i);’’’’’ SELECT last pos OF’’’’’’’’’’. CASE print : print buf CAT "," + tail’’’’’’. CASE plot : plot buf CAT "/" + tail’’’’’’ CASE none : err (14)’’’’’’. OTHERWISE : content CAT tail’’’’’’’’’’’’’’ END SELECT. . IF CONCR (tab).type (last pos) = nequ’’’’’’’. THEN CONCR (tab).init (last pos)’’’’’’’’’’’. ELSE CONCR (tab).right part (last pos)’’’’’ skip blanks :. UNTIL (buffer SUB i) <> " " END REP.’’’’’’’’ read for variable’’’’’’’’’’. UNTIL end of forlist END REP.’’’’’’’’’’’’’’’ end of forlist :’’’’’’’’’’’’’ IF sym = "/" THEN next sym; FALSE’’’’’’’ read for variable :’’’’’’’’’’> TEXT VAR init; (* left part = name *)’’’’’’’’’’’’’> test bold (15); (* right part = obere Grenze *)’’’’’> left part := sym; (* init = untere Grenze *)’’’’ test equal (16);’’’’’’’’’’’’ pass ranges;. enter (left part, right part, for);’’’’’’’’’. CONCR (tab).init (tab size) := init.’’’’’’’’ pass ranges : test number (init);’’’’’’’’’ IF sym <> ","’’’’’’’’’’’’’ THEN err (18)’’’’’’’’’’’’’’’ test number (right part).’’’. IF NOT sym is number (noise buffer)’’’’’’’’’ THEN err (66)’’’’’’’’’’’’’’ test bold (65);’’’’’’’’’’’’’ run buffer := sym.’’’’’’’’’’N genln ("WHILE time <= length REP");genln (" cout(int(time));");’’’’’’’’’’’’’ genln (" set time (time);"). gen end repeat : ’’’’’’’’’’’’ genln (" time INCR dt"); ’’’. genln ("UNTIL " + draw adtop request PER;"); IF plot buf <> nt’’’’’’’’’’’. THEN genln (draw ad + "end of program;")’’’. genln ("END PROC target program").’’’’’’’’’’ generate rts call :’’’’’’’’’’. genln ("forget (""zzdyn.const"",quiet);");’’. genln ("run card (""", run buffer, """);");’> genln ("run time system (PROC target program);");’’’’’’’’’’’. genln ("PROC target program :").’’’’’’’’’’’’ generate noise card :’’’’’’’’ IF noise buffer <> nt’’’’’’’> THEN genln (" initialize random (", noise buffer, ");")’’’’ generate plot line :’’’’’’’’’ IF plot buf <> nt’’’’’’’’’’’ THEN gen plots’’’’’’’’’’’’’. genln (draw ad + " new plot line (time);");’. FOR i FROM 1 UPTO plot param no REP’’’’’’’’’. genln (draw a plot (", plot name (i), ");") generate print line :’’’’’’’’ IF print buf <> nt’’’’’’’’’’ THEN gen prints’’’’’’’’’’’’ genln (" new line (time);");. FOR i FROM 1 UPTO print param no REP’’’’’’’’. genln (" print (", printparam (i), ");")’’’ generate init plot :’’’’’’’’’ INT VAR tab pos;’’’’’’’’’’’’ IF plot buf <> nt’’’’’’’’’’’> THEN search ("pltper", tab pos, nil, const);’’’’’’’’’’’’’’’ IF not found’’’’’’’’’’. THEN IF is draw THEN, plot line no)’’> ELSE genln (dinitialize plot (""", plot buf, """);");N(*$$$$$$$$$$$$$ ZUSATZ Februar87 C&C eingefuegt: pltper INCR 0 $$$$$$$$$*)’’’’. genln ("pltper INCR 0.0 ;");’’’’N genln (" (* um Warnung des ELAN-Compilers zu unterdruecken *)")’N(*$$$$$$$$$$$$$$$$$$$$$$$$$$ ENDE ZUSATZ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*)’’’’END PROC dynamo;’’’’’’’’’’’’’’.PROC test number (TEXT VAR content) :’’’’’’’’’ SELECT type OF’’’’’’’’’’’’’’’ CASE bold : content := sym. CASE number : content := trunc (sym)’’’’’’’’ OTHERWISE err (17)’’’’’’’’’’END PROC test number;’’’’’’’’’>PROC enter equ (BOOL CONST x, y, INT CONST exp type, err no) : get left part;’’’’’’’’’’’’’’’. enter (left part, right part, exp type);’’’’’ IF incorrect time script’’’’’ THEN err (err no)’’’’’’’’’’’ incorrect time script :’’’’’’ (k XOR x) OR (kl XOR y).’’’’> INT VAR last entry := table position;’’’’’’> last pos ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’)’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’B’C’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’*’’’’’’’’’’’’’’’’’’’"’$’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’Ā’$’’’’’’’’’’’’’’’’’’’ņ’+’’’’’’’’’’’’’’’’’’’"’.’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’1’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’Ņ’$’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’R’ ’’’’’’’’’’’’’’’’’’’‚’D’’’’’’’’’’’’’’’’’’’Ņ’9’’’’’’’’’’’’’’’’’’’’4’’’’’’’’’’’’’’’’’’’R’ ’’’’’’’’’’’’’’’’’’’‚’3’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’ā’D’’’’’’’’’’’’’’’’’’’2’9’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’¢’'’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’2 ’’’’’’’’’’’’’’’’’’’’R ’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢ ’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ ’ ’’’’’’’’’’’’’’’’’’’" ’’’’’’’’’’’’’’’’’’’’B ’’’’’’’’’’’’’’’’’’’’b ’ ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’² ’/’’’’’’’’’’’’’’’’’’’ņ ’+’’’’’’’’’’’’’’’’’’’" ’"’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’ result ’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’R ’"’’’’’’’’’’’’’’’’’’’’’ "" ’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚ ’’’’’’’’’’’’’’’’’’’’¢ ’3’’’’’’’’’’’’’’’’’’’ā ’,’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’2 ’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚ ’#’’’’’’’’’’’’’’’’’’’² ’’’’’’’’’’’’’’’’’’’’Ņ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ ’ ’’’’’’’’’’’’’’’’’’’" ’+’’’’’’’’’’’’’’’’’’’R ’=’’’’’’’’’’’’’’’’’’’’ ’+’’’’’’’’’’’’’’’’’’’Ā ’’’’’’’’’’’’’’’’’’’’ā ’’’’’’’’’’’’’’’’’’’’’’ INT VAR i; ’’’’’’’’’'’’’’’’’’’’’’’’’’’’’B’A’’’’’’’’’’’’’’’’’’’’’<’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’’’ result. ’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’5’’’’’’’’’’’’’’’’’’’2’-’’’’’’’’’’’’’’’’’’’b’)’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’"’$’’’’’’’’’’’’’’’’’’’R’*’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’¢’'’’’’’’’’’’’’’’’’’’’’’ -1 ’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ņ’(’’’’’’’’’’’’’’’’’’’"’"’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’)’’’’’’’’’’’’’’’’’’’¢’/’’’’’’’’’’’’’’’’’’’ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’2’$’’’’’’’’’’’’’’’’’’’b’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’‚’#’’’’’’’’’’’’’’’’’’’’’ -1 ’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’ ’’’’’’’’’’’’’’’’’’’’$’’’’’’’’’’’’’’’’’’’2’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’R’#’’’’’’’’’’’’’’’’’’’’’ -1 ’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¢’'’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’'’’’’’’’’’’’’’’’’’’’B’&’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ņ’.’’’’’’’’’’’’’’’’’’’’;’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’ā’M’’’’’’’’’’’’’’’’’’’2’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ name: ’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’ ’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’!’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’B’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’b’M’’’’’’’’’’’’’’’’’’’²’M’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’R’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’Ņ’’’’’’’’’’’’’’’’’’’’ņ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’’2’2’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NPACKET lisp heap and oblist management (* Autor: J.Durchholz *) ’N (* Datum: 09.05.1984 *) ’N DEFINES (* Version 1.7.2 *) ’N (* hey 25.2.83 *) ’’’’’’’’ initialize lisp system, ’’’’ dump lisp heap, ’’’’’’’’’’’’ lisp storage, ’’’’’’’’’’’’’’ collect lisp heap garbage, ’ is named atom, ’’’’’’’’’’’’’ begin oblist dump, ’’’’’’’’’ create atom, ’’’’’’’’’’’’’’’ delete atom, ’’’’’’’’’’’’’’’ begin property list dump, ’’ next property, ’’’’’’’’’’’’’ add property, ’’’’’’’’’’’’’’ alter property, ’’’’’’’’’’’’ delete property, ’’’’’’’’’’’ property exists, ’’’’’’’’’’’ delete flag, ’’’’’’’’’’’’’’’ is character, ’’’’’’’’’’’’’’ sym character, ’’’’’’’’’’’’’ is int pair, ’’’’’’’’’’’’’’’>(* NOTE: All internal routines are prefixed by x *) ’’’’’’’’’’N(***************************** heap management ****************************) ’ max size = 32767, ’’’’’’’’. NODE = STRUCT (INT status, ’’’’’’’’’’’’’’’. head, tail); ’’’’’’’’’’LET HEAP = STRUCT (INT size, ’. ROW max size NODE node); ’’BOUND HEAP VAR heap; ’’’’’’’’’>PROC initialize lisp system (DATASPACE CONST ds): ’’’’’’’’’’’’ IF type (ds) < 0 THEN ’’’’’’ heap := ds; ’’’’’’’’’’’’’’. x initialize oblist and heap size; ’’’’’’’ create atom ("NIL"); ’’’’’ create atom ("PNAME"); ’’’ heap := ds ’’’’’’’’’’’’’’’.END PROC initialize lisp system; ’’’’’’’’’’’’’.PROC dump lisp heap (FILE VAR f): ’’’’’’’’’’’’> put line (f, "Groesse :" + text (CONCR (heap).size)); ’’’’’’ put (CONCR (heap).size); ’’’ BOOL VAR is char := FALSE; ’. FOR i FROM 1 UPTO CONCR (heap).size REP ’’’’ cout (i);  dump ith node ’’’’’’’’’’’’dump ith node: ’’’’’’’’’’’’’’’ put (f, text (i, 6)); ’’’’’’ put (f, stat := last entry;’’’’’’’’’’> CONCR (tab).index (last entry) := index;’’’’’’’’’’’’’’’> CONCR (tab).index type (last entry) := index type.’’’’’’’’’’ table position :’’’’’’’’’’’’’> IF exp type = nequ AND index type = nil AND NOT not found’’’ THEN table index’’’’’’’’’’’ ELSE tab size’’’’’’’’’’’’’’ test global : IF in macro AND NOT internal THEN search global’’’’’’’’’ search global :’’’’’’’’’’’’’’ INT VAR tab pos;’’’’’’’’’’’’. search (left part, tab pos, lmp, mac param); IF not found. THEN IF left part <> macro name’’’’’’’’’’’’. THEN err (left part, 64)’’’’’’’’’’’’’> ELSE CONCR (tab).index (last entry) := tab pos;’’’’’’’> CONCR (tab).index type (last entry) := -1;’’’’’’’’’’’’> CONCR (tab).index type (tab pos) := global param;’’> CONCR (tab).index (tab pos) := last entry’’’’’ get left part :’’’’’’’’’’’’’’ get time script;’’’’’’’’’’’’ internal := sym = "$";’’’’’’ THEN next sym;’’’’’’’’’’’’’ IF NOT in macro’’’’’’’ THEN err (19)’’’’’’’’ test bold (20);’’’’’’’’’’’’’ left part := sym; next sym.’ get time script :’’’’’’’’’’’’ IF sym = "." THEN process time script’’’. ELSE k := FALSE; kl := FALSE’’’’’’’’’’’’’’’ subscript := sym = "(".’’’’’ IF subscript THEN process index’’’’’’’’’ ELSE index := nil;’’’’’’’’’ index type := nil’’’’’> right part := subtext (buffer, scanposition);’’’’’’’’’’’’’’’ test equal (21).’’’’’’’’’’’’ process time script :’’’’’’’’. k := sym = "k"; kl := sym = "kl";’’’’’’’’’’’ process index :’’’’’’’’’’’’’’ SELECT type OF’’’’’’’’’’’’’’. CASE number : index := int (sym)’’’’’’’’’’’. CASE bold : search for variable’’’’’’’’’’ OTHERWISE : err (22)’’’’’ index type := type;’’’’’’’’’ test closing bracket (sym);’ search for variable :’’’’’’’’. test (sym, tab pos, lmp, for, 61);’’’’’’’’’’ index := tab pos.’’’’’’’’’’’END PROC enter equ;’’’’’’’’’’’PROC end of first pass :’’’’’’ INT VAR tab pos;’’’’’’’’’’’’’ search macro calls;’’’’’’’’’’ search system constants.’’’’’. search ("time", tab pos, nil, nequ);’’’’’’’’ IF not found. THEN enter ("time", "0.0", nequ)’’’’’’’’’’’N enter ("time", "time.j+dt", level). (* 08.06.88 Dummy level, Dc *) ’’’’’’’’ search system constants :’’’’. test ("dt", tab pos, nil, const, 35);’’’’’’’. test ("length", tab pos, nil, const, 36).’’’ search macro calls :’’’’’’’’’. INT VAR old tabsize := tabsize;’’’’’’’’’’’’’. FOR i FROM old tabbeg UPTO old tabsize REP’’ IF is normal equ’’’’’’’’’’’. THEN enter global macro params’’’’’’’’’’’’ tab size := old tabsize.’’’’ is normal equ :’’’’’’’’’’’’’’. SELECT CONCR (tab).type (i) OF’’’’’’’’’’’’’’. CASE aux, rate, level, nequ, supp : TRUE’’’. OTHERWISE : FALSE’’ enter global macro params :’’> enter params (CONCR (tab).right part (i), FALSE);’’’’’’’’’’’. enter params (CONCR (tab).init (i), TRUE).’’END PROC end of first pass;’’’>PROC enter params (TEXT CONST buf, BOOL CONST is init) :’’’’’’ TEXT VAR macro name;’’’’’’’’’ IF pos (buf, "(") > nil’’’’’’ THEN read params’’’’’’’’’’’’ read params : scan position := 1;’’’’’’’’’> next sym (buf, macro name, type, scan position);’’’’’’’’’’’ IF type = bold’’’’’’’’’’’’’ THEN next sym (buf);’’’’’’ IF sym = "("’’’’’’’’’ THEN parameter list’ UNTIL type = eol END REP.’’’ parameter list :’’’’’’’’’’’’’ INT VAR act param, tab pos;’. search (macro name, tab pos, nil, nil);’’’’’> IF NOT not found CAND CONCR (tab).type (tab pos) = mac name’ THEN read param list’’’’’’’ read param list :’’’’’’’’’’’’. CONCR (tab).index type (tab pos) INCR 1;’’’’ act param := tab pos;’’’’’’’ next sym (buf);’’’’’’’’’’’’ act param INCR 1;’’’’’’’’’’. IF CONCR (tab).type (act param) = mac param THEN test parameter’’’’’’’ ELSE err (macro name, 53)’. UNTIL end of parameter list END REP.’’’’’’’’ test parameter :’’’’’’’’’’’’’ TEXT VAR param;’’’’’’’’’’’’’> IF CONCR (tab).index type (act param) = global param’’’’’’’’ THEN get global param’’’’’’ ELSE get actual param’’’’’’ content CAT param + "%".’’’’. THEN CONCR (tab).init (act param)’’’’’’’’’’. ELSE CONCR (tab).right part (act param)’’’’ get global param :’’’’’’’’’’’ INT VAR param index;’’’’’’’’ IF type = bold’’’’’’’’’’’’’’ THEN enter param’’’’’’’’’’’ enter param :> param index := CONCR (tab).index (act param);’’’’’’’’’’’’’’’> enter (sym, CONCR (tab).right part (param index),’’’’’’’’’’’. CONCR (tab).type (param index));N CONCR (tab).init (tab size) := CONCR (tab).init (param index);’’’’’’’’’’’’’. CONCR (tab).index (tab size) := act param;’’ param := sym;’’’’’’’’’’’’’’’ next sym (buf);’’’’’’’’’’’’’ get time script.’’’’’’’’’’’’ get actual param :’’’’’’’’’’’ INT VAR brackets := nil;’’’’ param := nt; param CAT sym;’’’’’’’’’’’’’ next sym (buf);’’’’’’’’’’’’ get time script’’’’’’’’’’’’ UNTIL end of param END REP.’ get time script :’’’’’’’’’’’’ IF sym = "." THEN param CAT sym;’’’’’’’’ next sym (buf);’’’’’’’ param CAT any;’’’’’’’’ next sym (buf)’’’’’’’’ end of param :’’’’’’’’’’’’’’’ IF brackets = nil’’’’’’’’’’’ THEN sym IN ",)"’’’’’’’’’’’ ELIF sym = "("’’’’’’’’’’’’’’ THEN brackets INCR 1;’’’’’’ ELIF sym = ")"’’’’’’’’’’’’’’ THEN brackets DECR 1;’’’’’’ end of parameter list :’’’’’’ SELECT pos (",)", sym) OF’’’ CASE 1 : FALSE’’’’’’’’’’ CASE 2 : TRUE’’’’’’’’’’’ OTHERWISE : err (50); TRUE’END PROC enter params;’’’’’’’’N(************************* P A S S 2 ***************************)’’’’’’PROC generate init print :’’’’ INT VAR tab pos;’’’’’’’’’’’’’ IF print buf <> nt’’’’’’’’’’’> THEN test ("prtper", tab pos, nil, const, 24);’’’’’’’’’’’’’’ gen init’’’’’’’’’’’’’’’ print param no := nil;’’’’’’ headline := nt;’’’’’’’’’’’’’ scan (print buf);’’’’’’’’’’’ line no := print line no;’’’ cout (line no);’’’’’’’’’’’’’ get parameter’’’’’’’’’’’’’’ UNTIL sym <> "," END REP;’’’> genln ("initialize print (""", headline, """);");’’’’’’’’’’’N (*$$$$$$$$$$$$$ ZUSATZ Februar87 C&C eingefuegt: prtper INCR 0 $$$$$$$$$$*)’ genln ("prtper INCR 0.0 ;");N genln ("(* Um Warnung des ELAN-Compilers zu unterdruecken *)").’’’’’’’’’’’’’N (*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ENDE ZUSATZ $$$$$$$$$$$$$$$$$$$$$$$*)’’’’ get parameter :’’’’’’’’’’’’’’ test bold (33);’’’’’’’’’’’’’ get print param.’’’’’’’’’’’’ get print param :’’’’’’’’’’’’. test (sym, tab pos, nil, nil, 32);’’’’’’’’’’ TEXT VAR act param := sym;’’. INT VAR pos := scanposition - length (sym);’. test subscript (act param, 33);’’’’’’’’’’’’’ print param no INCR 1;’’’’’’. print param (print param no) := act param;’’N headline CAT text (subtext (print buf, pos, scanposition - 1), 13);’’’’’’’’’ headline CAT " ".’’’’’’’’’’’END PROC generate init print;’>PROC test subscript (TEXT VAR act param, INT CONST err no) :’’ INT VAR tab pos;’’’’’’’’’’’’’ THEN test index’’’’’’’’’’’’’ act param CAT " SUB ";’’’’’’ act param CAT subscript;’’’’ test closing bracket (sym);’ SELECT type OF’’’’’’’’’’’’’’ CASE number : trunc (sym)’’ CASE bold : search index’. OTHERWISE : err (err no); nt’’’’’’’’’’’’’ search index :’’’’’’’’’’’’’’’. test (sym, tab pos, nil, for, 61);’’’’’’’’’’END PROC test subscript;’’’’’’PROC generate init scale :’’’’ IF plot buf <> nt’’’’’’’’’’’’ THEN gen plot card’’’’’’’’’’ gen plot card :’’’’’’’’’’’’’’ scale counter := 1;’’’’’’’’’ plot param nus); ’’’’’’’’’’’ put (f, head); ’’’’’’’’’’’’’ put (f, tail); ’’’’’’’’’’’’’ SELECT ith node.status OF ’’> CASE atomic : "ATOMIC............" ’’’’’’’’’’’> CASE non atomic : "NON ATOMIC........" ’’’’’’’’’’’> CASE oblist bone : "OBLIST BONE......." ’’’’’’’’’’’> CASE property indicator : "PROPERTY INDICATOR" ’’’’’’’’’’’> CASE property root : "PROPERTY ROOT....." ’’’’’’’’’’’> CASE flag indicator : "FLAG INDICATOR...." ’’’’’’’’’’’> CASE text data : "TEXT DATA........." ’’’’’’’’’’’N CASE character data : is char := TRUE; "CHARACTER DATA...." ’’’’’’’’’’> CASE int data : "INT DATA.........." ’’’’’’’’’’’N OTHERWISE "????." + text (ith node.status, 6) + ".????" ’’ END SELECT. . maybe a code + text (ith node.head, 6). ’’’’maybe a code:  IF is char THEN ’’’’’’’’’’’’ is char := FALSE; ’’’’’’’’> IF ith node.head > 31 AND 128 > ith node.head THEN ’’’’’’’. " " + code (ith node.head) + " " ’’’’’’’ text (ith node.tail, 6). ’’’ CONCR (heap).node (i). ’’’’’END PROC dump lisp heap; ’’’’’.PROC lisp storage (INT VAR size, used): ’’’’’’ size := max size; ’’’’’’’’’’ used := CONCR (heap).size ’’END PROC lisp storage; ’’’’’’’.PROC collect lisp heap garbage: ’’’’’’’’’’’’’’ mark all used nodes; ’’’’’’’N transfer all used high address nodes to unused low address nodes; ’’’’’’’’’’N adjust all pointers to cleared high address area and unmark all nodes; ’’’’’ adjust size. ’’’’’’’’’’’’’’’mark all used nodes: ’’’’’’’’’ FOR i FROM 2 UPTO 28 REP ’’’ x mark (i) ’’’’’’’’’’’’’’’Ntransfer all used high address nodes to unused low address nodes: ’’’’’’’’’’’’> INT VAR high address :: CONCR (heap).size + 1, ’’’’’’’’’’’’’ low address :: 0; ’’. find next lower used high address node; ’’. IF no used high address node found THEN ’’N LEAVE transfer all used high address nodes to unused low address nodes ’. find next higher unused low address node; . IF no unused low address node found THEN ’N LEAVE transfer all used high address nodes to unused low address nodes ’> transfer high address node to low address node ’’’’’’’’’’’.find next lower used high address node: ’’’’’’ high address DECR 1 ’’’’’’. UNTIL high address node marked PER. ’’’’’’’’high address node marked: ’’’’. high address node.status < 0. ’’’’’’’’’’’’’’.no used high address node found: ’’’’’’’’’’’’’ low address = high address. .find next higher unused low address node: ’’’’ low address INCR 1 ’’’’’’’N UNTIL low address node not marked OR low address = high address PER. ’’’’’’’low address node not marked: ’. low address node.status > 0. ’’’’’’’’’’’’’’’.no unused low address node found : ’’’’’’’’’’’ low address = high address. >transfer high address node to low address node: ’’’’’’’’’’’’’’> low address node.status := high address node.status; ’’’’’’’> low address node.head := high address node.head; ’’’’’’’’’’’> low address node.tail := high address node.tail; ’’’’’’’’’’’. high address node.head := low address. ’’’’’Nadjust all pointers to cleared high address area and unmark all nodes: ’’’’’’’N (* 'high address' should now point to the last node of the used area *) ’’> FOR low address FROM 1 UPTO high address REP ’’’’’’’’’’’’’’’ unmark low address node; ’. SELECT low address node.status OF ’’’’’’’’. CASE oblist bone: adjust head’’’’’’’’’’’ CASE atomic, ’’’’’’’’’’’ non atomic, ’’’’’’’. property indicator, ’’’’’’’’’’’’’’’ property root, ’’’’> flag indicator: adjust head; adjust tail ’’’’’’’’’’> CASE text data, character data: adjust tail ’’’’’’’’’’’’ CASE int data: ’’’’’’’’’N OTHERWISE x lisp error ("Status " + text (low address node.status) + ’’’N " gefunden bei pointer Justage") ’’’’’’’’’’’’’’’ END SELECT ’’’’’’’’’’’’’’’unmark low address node: ’’’’’> low address node.status := - low address node.status. ’’’’’’> IF low address node.head > high address THEN ’’’’’’’’’’’’’’’N low address node.head := node (low address node.head).head ’’’’’’’’’’’’’’’> IF low address node.tail > high address THEN ’’’’’’’’’’’’’’’N low address node.tail := node (low address node.tail).head ’’’’’’’’’’’’’’’. CONCR (heap).size := high address. ’’’’’’’’’low address node: ’’’’’’’’’’’’ node (low address). ’’’’’’’’high address node: ’’’’’’’’’’’ node (high address). ’’’’’’’ CONCR (heap).node. ’’’’’’’’’.END PROC collect lisp heap garbage; ’’’’’’’’’’PROC x mark (INT CONST ptr): ’ IF node not yet marked THEN  mark node; ’’’’’’’’’’’’’’’. SELECT - ptr node.status OF ’’’’’’’’’’’’’’> CASE oblist bone: x mark (ptr node.head) ’’’’’’’’’’’’’’’ CASE atomic, ’’’’’’’’’’’ non atomic, ’’’’’’’. property indicator, ’’’’’’’’’’’’’’’ property root, ’’’’N flag indicator: x mark (ptr node.head); x mark (ptr node.tail) ’’’’> CASE text data, character data: x mark (ptr node.tail) ’ CASE int data: ’’’’’’’’’N OTHERWISE error stop ("Status " + text (- ptr node.status) + ’’’’’’’’’’’> " gefunden beim Markieren") ’’’’’’ END SELECT ’’’’’’’’’’’’’’’node not yet marked: ’’’’’’’’’ ptr node.status > 0. ’’’’’’’. ptr node.status := - ptr node.status. ’’’’’’ CONCR (heap).node (ptr) ’’’’END PROC x mark; ’’’’’’’’’’’’’TYPE SYM = INT; ’’’’’’’’’’’’’’.OP := (SYM VAR left, SYM CONST right): ’’’’’’’. CONCR (left) := CONCR (right) ’’’’’’’’’’’’’’LET atomic = 1, ’’’’’’’’’’’’’’ non atomic = 2, ’’’’’’’’’’ oblist bone = 3, ’’’’’’’’’ property indicator = 4, ’’ property root = 5, ’’’’’’’ flag indicator = 6, ’’’’’’ text data = 7, ’’’’’’’’’’’ character data = 8, ’’’’’’ int data = 9; ’’’’’’’’’’’’NSYM CONST nil :: SYM :(35), (* 'x initialize oblist and heap size' will *) ’N pname :: SYM :(44); (* place the atom NIL at node 35 and PNAME *) ’N (* at node 44 *) ’N(***************************** basic functions ****************************) ’.SYM PROC head (SYM CONST sym): ’’’’’’’’’’’’’’’ SELECT status of sym OF ’’’’> CASE atomic: error stop ("Atome haben keinen head"); nil ’. CASE non atomic: SYM :(head of sym) ’’’’’’ CASE oblist bone, ’’’’’’’’ property indicator, ’ property root, ’’’’’’N flag indicator : x lisp error ("Versteckter Knoten, Type:" + ’’’’’N text (status of sym)); ’’’’’’’’’’’’’’. nil ’’’’’’’’’’’’’ CASE text data, ’’’’’’’’’’ character data, ’’’’’N int data : error stop ("Daten haben keinen head"); nil ’’’’’’’’N OTHERWISE x lisp error ("Illegaler Status " + text (status of sym));’’’’’’ nil ’’’’’’’’’’’’ END SELECT. status of sym: ’’’’’’’’’’’’’’’ sym node.status. ’’’’’’’’’’’ sym node.head. ’’’’’’’’’’’’’. CONCR (heap).node (CONCR (sym)) ’’’’’’’’’’’’END PROC head; ’’’’’’’’’’’’’’’.SYM PROC x head (SYM CONST sym): ’’’’’’’’’’’’’. SYM :(CONCR (heap).node (CONCR (sym)).head) END PROC x head; ’’’’’’’’’’’’’.PROC set head (SYM CONST sym, new head): ’’’’’ SELECT status of sym OF ’’’’> CASE atomic: errorstop ("Atome haben keinen head") ’’’’’’’> CASE non atomic: head of sym := CONCR (new head) ’’’’’’’’’ CASE oblist bone, ’’’’’’’’ property indicator, ’ property root, ’’’’’’N flag indicator : x lisp error ("Veo := nil;’’’’’’’ line no := plot line no;’’’’ cout (line no);’’’’’’’’’’’’’ scan (plot buf);’’’’’’’’’’’’ equal scale;’’’’’’’’’’’’’’’ different scale’’’’’’’’’’’’. UNTIL type = eol OR sym = " " END REP;’’’’’’ generate scales.’’’’’’’’’’’’ equal scale : fixed scale := FALSE;’’’’’’’ single scale param’’’’’’’’’ UNTIL sym <> "," END REP.’’’ different scale :’’’’’’’’’’’’ IF sym = "/" THEN scale counter INCR 1’’ ELIF type <> eol’’’’’’’’’’’’. THEN err (sym, 26, plot line no)’’’’’’’’’’’ generate scales :’’’’’’’’’’’’ clear scales;’’’’’’’’’’’’’’’ gen plot scales.’’’’’’’’’’’’ gen plot scales :’’’’’’’’’’’’. FOR i FROM 1 UPTO plot param no REPEAT’’’’’’N gen ("draw ad + plot scale (""", id (i), """, ", text (scale pointer (i)));. gen (", ", lower scale, ", ", upper scale);N gen (", ", text (l fixed scale (i)), ", ", text (u fixed scale (i)));’’’’’’ genln (");")’’’’’’’’’’’’’’’ lower scale : IF l fixed scale (i)’’’’’’’’ THEN lower bound (i)’’’’’’’ ELSE "9.0e126"’’’’’’’’’’’’’ upper scale : IF u fixed scale (i)’’’’’’’’ THEN upper bound (i)’’’’’’’ ELSE "-9.0e126"’’’’’’’’’’’’ clear scales :’’’’’’’’’’’’’’’> FOR i FROM scale counter+1 UPTO plot param no REP’’’’’’’’’’’ lower bound (i) := "0.0";’’ upper bound (i) := "0.0"’’’ single scale param :’’’’’’’’’ test bold (27);’’’’’’’’’’’’’ enter plot param.’’’’’’’’’’’ enter plot param :’’’’’’’’’’’ TEXT VAR param := sym;’’’’’’ test subscript (param, 22);’ plot param no INCR 1;’’’’’’’ IF plot param no > 10’’’’’’’ THEN err (64);’’’’’’’’’’’’’. LEAVE generate init scale’’’’’’’’’’’’’. plot name (plot param no) := param;’’’’’’’’’> scalepointer (plot param no) := scalecounter;’’’’’’’’’’’’’’’ IF sym = "=" THEN next sym;’’’’’’’’’’’’’. id (plot param no) := (sym SUB 1);’’’’ next sym’’’’’’’’’’’’’’> ELSE id (plot param no) := text (plot param no - 1)’’’’’’’’ IF sym = "(" THEN get plot scale;’’’’’’’ fixed scale := TRUE’’’ ELIF NOT fixed scale’’’’’’’> THEN l fixed scale (scale counter) := FALSE;’’’’’’’’’’’’’’> u fixed scale (scale counter) := FALSE;’’’’’’’’’’’’’’ get plot scale :’’’’’’’’’’’’’ IF fixed scale’’’’’’’’’’’’’’ THEN err (28)’’’’’’’’’’’’’’> read scale param (lower bound, l fixed scale, 29);’’’’’’’’’’ IF sym <> ","’’’’’’’’’’’’’’’ THEN err (30)’’’’’’’’’’’’’’> read scale param (upper bound, u fixed scale, 30);’’’’’’’’’’ test closing bracket (sym);’END PROC generate init scale;’NPROC read scale param (ROW 10 TEXT VAR bound, ROW 10 BOOL VAR fixed scale, ’’’. INT CONST err no) :’’’’ TEXT VAR scale;’’’’’’’’’’’’’’ INT VAR tab pos;’’’’’’’’’’’’’ IF type = bold’’’’’’’’’’’’’’’. THEN test (sym, tab pos, nil, const, 61);’’’. bound (scale counter) := sym;’’’’’’’’’’. fixed scale (scale counter) := TRUE’’’’ ELIF sym is number (scale)’’’. THEN bound (scale counter) := scale;’’’’’’’’. fixed scale (scale counter) := TRUE’’’’ ELIF sym = "*"’’’’’’’’’’’’’’’. THEN fixed scale (scale counter) := FALSE’’’ ELSE err (err no)’’’’’’’’’’’END PROC read scale param;’’’’.BOOL PROC sym is number (TEXT VAR constant) :’ constant := nt;’’’’’’’’’’’’’’ IF sym IN "+-"’’’’’’’’’’’’’’’. THEN constant := sym; next sym’’’’’’’’’’’’’’ IF type = number’’’’’’’’’’’’’ THEN constant CAT sym;’’’’’’END PROC sym is number;’’’’’’’.PROC gen equations (INT CONST equ type) :’’’’’ gen normal equs;’’’’’’’’’’’’’ end of init list;’’’’’’’’’’’’ gen index equs.’’’’’’’’’’’’’’ gen normal equs :’’’’’’’’’’’’. FOR i FROM tabbeg UPTO tabsize REP’’’’’’’’’’ IF is normal equ’’’’’’’’’’’ THEN generate equ’’’’’’’’’ generate equ :’’’’’’’’’’’’’’’. declare variables (i, equ type, FALSE).’’’’’ is normal equ :’’’’’’’’’’’’’’. CONCR (tab).type (i) = equ type’’’’’’’’’’’’’N AND NOT CONCR (tab).rdef (i) AND CONCR (tab).index type (i) <= nil’’’’’’’’’’> AND NOT CONCR (tab).already used in loop body(i).’’’’’’’’’’’ gen index equs :’’’’’’’’’’’’’. FOR i FROM tabbeg UPTO tabsize REP’’’’’’’’’’ IF is index equ’’’’’’’’’’’’. THEN gen loop (i, equ type)’’’’’’’’’’’’’’’ is index equ :’’’’’’’’’’’’’’’. CONCR (tab).type (i) = equ type AND’’’’’’’’’N NOT CONCR (tab).rdef (i) AND CONCR (tab).index type (i) > nil’’’’’’’’’’’’’’’> AND NOT CONCR (tab).already used in loop body(i).’’’’’’’’’’’END PROC gen equations;’’’’’’’.PROC gen loop (INT CONST i, equ type) :’’’’’’’. for index := CONCR (tab).index (i);’’’’’’’’’’ TEXT VAR gen buf;’’’’’’’’’’’’. SELECT CONCR (tab).index type (i) OF’’’’’’’’’ CASE bold : gen for loop’’. CASE number : generate replace’’’’’’’’’’’’’’ generate replace :’’’’’’’’’’’ INT VAR k := i;’’’’’’’’’’’’’. expression (equ type, gen buf, k);’’’’’’’’’’. gen replace (gen buf, k, text (for index)).’ gen for loop :’’’’’’’’’’’’’’’> gen (" FOR ", CONCR (tab).name (for index), " FROM ",’’’’’’’. CONCR (tab).init (for index));N genln (" UPTO ", CONCR (tab).right part (for index), " REP");’’’’’’’’’’’’’’’ in loop := TRUE;’’’’’’’’’’’’ IF equ type = sub init’’’’’’. THEN gen replace (equ type, i)’’’’’’’’’’’’’ ELSE search equal indices’’ in loop := FALSE;’’’’’’’’’’’ genln (" PER;").’’’’’’’’’’’’ search equal indices :’’’’’’’. FOR j FROM i UPTO tab size REP’’’’’’’’’’’’’’ IF is same index’’’’’’’’’’’. THEN gen replace (equ type, j);’’’’’’’’’’’> CONCR (tab).already used in loop body(j):=TRUE’’’’’’’ is same index :’’’’’’’’’’’’’’> for index = CONCR (tab).index (j)’’’’’’. AND CONCR (tab).index type (j) = bold’’’’’’’> AND CONCR (tab).type (j) = CONCR (tab).type (i)’’’’’’’ AND NOT CONCR (tab).rdef (j)> AND NOT CONCR (tab).already used in loop body(j).’’’’’’’’’’’END PROC gen loop;’’’’’’’’’’’’>PROC gen replace (TEXT VAR gen buf, INT CONST table index) :’’N gen replace (gen buf, table index, CONCR (tab).name (for index))’’’’’’’’’’’’’END PROC gen replace;’’’’’’’’’NPROC gen replace (TEXT VAR gen buf, INT CONST table index, TEXT CONST index):’N gen (" replace (", CONCR (tab).name (table index), ", ", index);’’’’’’’’’’’’’ genln (", ", gen buf, ");")’’END PROC gen replace;’’’’’’’’’>PROC gen replace (INT CONST equ type, tabpos) :’’’’’’’’’’’’’’’ INT VAR no := tab pos;’’’’’’’ TEXT VAR gen buf;’’’’’’’’’’’’. expression (equ type, gen buf, no);’’’’’’’’’’ gen replace (gen buf, no)’’’’END PROC gen replace;’’’’’’’’’PROC generate for variables :’ is first := TRUE;’’’’’’’’’’’’. FOR i FROM tab beg UPTO tab size REP’’’’’’’’’. IF CONCR (tab).type (i) = for’’’’’’’’’’’’’’’ THEN gen for var’’’’’’’’’’’ end of init list.’’’’’’’’’’’’ gen for var : set line no (i);’’’’’’’’’’’’ THEN gen ("INT VAR ");’’’’ is first := FALSE’’’’’ ELSE continue init list’’’’ gen (CONCR (tab).name (i)).’.END PROC generate for variables;’’’’’’’’’’’’’’PROC generate variable part :’ generate constants;’’’’’’’’’’ generate variables;’’’’’’’’’’ generate missed inits.’’’’’’’ generate constants :’’’’’’’’’. FOR i FROM tab beg UPTO tabsize REP’’’’’’’’’N IF CONCR (tab).type (i) = const AND NOT CONCR (tab).idef (i)’’’’’’’’’’’’’’’ THEN gen const’’’’’’’’’’’’ generate variables :’’’’’’’’’. FOR i FROM tab beg UPTO tab size REP’’’’’’’’. SELECT CONCR (tab).type (i) OF’’’’’’’’’’’’’> CASE level, aux, nequ, rate : gen normal equ’’’’’’’’’’’’’’ generate missed inits :’’’’’’. FOR i FROM tab beg UPTO tab size REP’’’’’’’’. SELECT CONCR (tab).type (i) OF’’’’’’’’’’’’’. CASE aux, rate : gen missed init’’’’’’’’’’ END SELECT; end of init rsteckter Knoten, Type:" + ’’’’’N text (status of sym)) ’’’’’’’’’’’’’’’ CASE text data, ’’’’’’’’’’ character data, ’’’’’N int data : error stop ("Daten haben keinen head") ’’’’’’’’’’’’N OTHERWISE x lisp error ("Illegaler Status " + text (status of sym))’’’’’’’ END SELECT. status of sym: ’’’’’’’’’’’’’’’ sym node.status. ’’’’’’’’’’’ sym node.head. ’’’’’’’’’’’’’. CONCR (heap).node (CONCR (sym)). ’’’’’’’’’’’END PROC set head; ’’’’’’’’’’’.PROC x set head (SYM CONST sym, new head): ’’’> CONCR (heap).node (CONCR (sym)).head := CONCR (new head) ’’’END PROC x set head; ’’’’’’’’’.SYM PROC tail (SYM CONST sym): ’’’’’’’’’’’’’’’ SELECT status of sym OF ’’’’> CASE atomic: error stop ("Atome haben keinen tail"); nil ’. CASE non atomic: SYM :(tail of sym) ’’’’’’ CASE oblist bone, ’’’’’’’’ property indicator, ’N flag indicator : x lisp error ("Versteckter Knoten:" + ’’’’’’’’’’’N text (status of sym)); ’’’’’’’’’’’’’’. nil ’’’’’’’’’’’’’ CASE text data, ’’’’’’’’’’ character data, ’’’’’N int data : error stop ("Daten haben keinen tail"); nil ’’’’’’’N OTHERWISE x lisp error ("Illegaler Status: "+ text (status of sym)); ’’’’’ nil ’’’’’’’’’’’’ END SELECT. status of sym: ’’’’’’’’’’’’’’’ sym node.status. ’’’’’’’’’’’ sym node.tail. ’’’’’’’’’’’’’. CONCR (heap).node (CONCR (sym)). ’’’’’’’’’’’END PROC tail; ’’’’’’’’’’’’’’’.SYM PROC x tail (SYM CONST sym): ’’’’’’’’’’’’’. SYM :(CONCR (heap).node (CONCR (sym)).tail) END PROC x tail; ’’’’’’’’’’’’’.PROC set tail (SYM CONST sym, new tail): ’’’’’ SELECT status of sym OF ’’’’> CASE atomic: error stop ("Atome haben keinen tail") ’’’’’’> CASE non atomic: tail of sym := CONCR (new tail) ’’’’’’’’’ CASE oblist bone, ’’’’’’’’ property indicator, ’ property root, ’’’’’’N flag indicator : x lisp error ("Versteckter Knoten, Type: " + ’’’’N text (status of sym)) ’’’’’’’’’’’’’’’ CASE text data, ’’’’’’’’’’ character data, ’’’’’N int data : error stop ("Daten tails sind unveraenderbar")’’’’’’N OTHERWISE x lisp error ("Illegaler Status: " + text (status of sym)) ’’’’’ END SELECT. status of sym: ’’’’’’’’’’’’’’’ sym node.status. ’’’’’’’’’’’ sym node.tail. ’’’’’’’’’’’’’. CONCR (heap).node (CONCR (sym)). ’’’’’’’’’’’END PROC set tail; ’’’’’’’’’’’.PROC x set tail (SYM CONST sym, new tail): ’’’> CONCR (heap).node (CONCR (sym)).tail := CONCR (new tail) ’’’END PROC x set tail; ’’’’’’’’’.SYM PROC cons (SYM CONST head, tail): ’’’’’’’’ SYM VAR result; ’’’’’’’’’’’’ search free node; ’’’’’’’’’’. result node.status := non atomic; ’’’’’’’’’’. result node.head := CONCR (head); ’’’’’’’’’’. result node.tail := CONCR (tail); ’’’’’’’’’’search free node: ’’’’’’’’’’’’. IF CONCR (heap).size = max size THEN ’’’’’’’. error stop ("LISP Heap Ueberlauf"); ’’’’’’ LEAVE cons WITH nil ’’’’’’ CONCR (heap).size INCR 1; > CONCR (result) := CONCR (heap).size; cout(CONCR(result))’’. CONCR (heap).node (CONCR (result)). ’’’’’’’’END PROC cons; ’’’’’’’’’’’’’’’.BOOL PROC eq (SYM CONST sym 1, sym 2): ’’’’’’’. CONCR (sym 1) = CONCR (sym 2) ’’’’’’’’’’’’’’.BOOL PROC equal (SYM CONST sym 1, sym 2): ’’’’. eq (sym 1, sym 2) COR have same value. ’’’’’have same value: ’’’’’’’’’’’’’> IF sym 1 node.status <> sym 2 node.status THEN ’’’’’’’’’’’’’. SELECT sym 1 node.status OF ’’’’’’’’’’’’’’ CASE atomic: FALSE ’’’’’N CASE non atomic: equal (head (sym 1), head (sym 2)) CAND ’’’’’’’’’’’’’’’> equal (tail (sym 1), tail (sym 2)) ’’’’ CASE oblist bone, ’’’’’’. property indicator, ’’’’’’’’’’’’’’’ property root, ’’’’N flag indicator: x lisp error ("Versteckter Knoten, Type: " + ’’’’’’N text (x status (sym 1))); FALSE ’’’’’. CASE text data: equal texts ’’’’’’’’’’’’> CASE character data: sym 1 node.head = sym 2 node.head ’> CASE int data: sym 1 node.head = sym 2 node.head AND ’’’> sym 1 node.tail = sym 2 node.tail ’’’’’’’N OTHERWISE x lisp error ("Ilegaler Status " + text (x status (sym 1)));’’. FALSE ’’’’’’’’’’ END SELECT ’’’’’’’’’’’’’’’. equal length CAND equal character sequence. equal length: . eq (x head (sym 1), x head (sym 2)). ’’’’’’’equal character sequence: ’’’’. SYM VAR actual sym 1 character :: sym 1, ’’’. actual sym 2 character :: sym 2; ’’’. FOR i FROM 1 UPTO sym 1 node. head REP ’’’’’N actual sym 1 character := x tail (actual sym 1 character); ’’’’’’’’’’’’’’’N actual sym 2 character := x tail (actual sym 2 character); ’’’’’’’’’’’’’’’N IF eq (actual sym 1 character, actual sym 2 character) THEN ’’’’’’’’’’’’’’> LEAVE equal character sequence WITH TRUE ’’’’’’’’’’’’’’’> IF x status (actual sym 1 character) <> character data OR N x status (actual sym 2 character) <> character data THEN ’’’’’’’’’’’> x lisp error ("Ungueltiges Zeichen im text"); ’’’’’’’’’’> LEAVE equal character sequence WITH FALSE ’’’’’’’’’’’’’’> IF CONCR (x head (actual sym 1 character)) <> ’’’’’’’’’’’’> CONCR (x head (actual sym 2 character)) THEN ’’’’’’’> LEAVE equal character sequence WITH FALSE ’’’’’’’’’’’’’’. CONCR (heap).node (CONCR (sym 1)). ’’’’’’’’’. CONCR (heap).node (CONCR (sym 2)). ’’’’’’’’’END PROC equal; ’’’’’’’’’’’’’’.BOOL PROC null (SYM CONST sym): ’’’’’’’’’’’’’’ CONCR (sym) = CONCR (nil) ’’END PROC null; ’’’’’’’’’’’’’’’.BOOL PROC atom (SYM CONST sym): ’’’’’’’’’’’’’’ SELECT x status (sym) OF ’’’ CASE atomic, ’’’’’’’’’’’’’ text data, ’’’’’’’’’’ character data, ’’’’’ int data: TRUE  CASE non atomic: FALSE ’’’ CASE oblist bone, ’’’’’’’’ property indicator, ’ property root, ’’’’’’N flag indicator : x lisp error ("Versteckter Knoten, Type:" + ’’’’’N text (x status (sym))); TRUE ’’’’’’’’> OTHERWISE x lisp error ("Illegaler Status " + ’’’’’’’’’’’’> text (x status (sym))); TRUE’’’’’END PROC atom; ’’’’’’’’’’’’’’’.BOOL PROC is named atom (SYM CONST sym): ’’’’’ x status (sym) = atomic ’’’’END PROC is named atom; ’’’’’’N(*------------------- internal heap management routines ------------------*) ’>SYM PROC x new node (INT CONST status, head, tail): ’’’’’’’’’’. IF CONCR (heap).size = max size THEN ’’’’’’’. error stop ("LISP Heap Ueberlauf"); nil ’’ CONCR (heap).size INCR 1; . new node.status := status; ’’’’’’’’’’’’’’’ new node.head := head; ’’’ new node.tail := tail; ’’’ SYM :(CONCR (heap).size) ’ node (CONCR (heap).size). ’’ CONCR (heap).node. ’’’’’’’’’END PROC x new node; ’’’’’’’’’.INT PROC x status (SYM CONST sym): ’’’’’’’’’’’. CONCR (heap).node (CONCR (sym)).status ’’’’’END PROC x status; ’’’’’’’’’’’N(**************************** oblist management ***************************) ’(* Oblist organization: ’’’’’’> +-----------------+ ’’’’’’’’’> l l ’’’’’’’’’N All nodes are represented as +--------+--------+ in all comments ’’’’’’N l l l of this packet. ’’’’’’> +--------+--------+ ’’’’’’’’’list.’’’’’’’’’’’ gen missed init :’’’’’’’’’’’’ IF sub init necessary’’’’’’’. THEN declare variables (i, sub init, TRUE)’ sub init necessary :’’’’’’’’’. CONCR (tab).init (i) = nt AND’’’’’’’’’’’’’’’N NOT CONCR (tab).idef (i) AND CONCR (tab).index type (i) <= nil.’’’’’’’’’’’’’ gen normal equ :’’’’’’’’’’’’’ IF equ not yet declared’’’’’. THEN declare variables (i, nequ, TRUE)’’’’’ equ not yet declared :’’’’’’’> NOT CONCR (tab).idef (i) AND CONCR (tab).init (i) <> nt’’’’’. AND CONCR (tab).index type (i) <= nil.’’’’’’ gen linefeed;’’’’’’’’’’’’’’’N gen (CONCR (tab).name (i), " := ", "constant (""", CONCR (tab).name (i));’’’> gen (""", ", CONCR (tab).right part (i), ")").’’’’’’’’’’’’’’.END PROC generate variable part;’’’’’’’’’’’’’’PROC end of init list :’’’’’’’ IF NOT is first’’’’’’’’’’’’’’ THEN is first := TRUE;’’’’’’ genln (";")’’’’’’’’’’’’END PROC end of init list;’’’’PROC gen zz (INT CONST no) :’’ IF CONCR (tab).mac (no) > nilN THEN gen ("zz", CONCR(tab).name (CONCR(tab).mac (no)), text (expansion no))’END PROC gen zz;’’’’’’’’’’’’’’NPROC declare variables (INT CONST no, equ type, BOOL CONST is init) :’’’’’’’’’. INT VAR mac no := CONCR (tab).mac (no);’’’’’’ IF mac no > nil’’’’’’’’’’’’’’ THEN gen local equs’’’’’’’’’> ELSE declare variable (no, equ type, is init)’’’’’’’’’’’’’’’ gen local equs :’’’’’’’’’’’’’> INT VAR no of expansions := CONCR (tab).indextype (mac no);’> FOR expansion no FROM 1 UPTO no of expansions REP’’’’’’’’’’’. declare variable (no, equ type, is init)’’’END PROC declare variables;’’’NPROC declare variable (INT CONST no, exp type, BOOL CONST init) :’’’’’’’’’’’’’ TEXT VAR gen buf;’’’’’’’’’’’’ INT VAR i := no;’’’’’’’’’’’’’. IF (init AND NOT CONCR (tab).idef (no)) OR’’’. (NOT init AND NOT CONCR (tab).rdef (no))’’ THEN gen equ. expression (exp type, gen buf, i);’’’’’’’’’’’ THEN gen linefeed’’’’’’’’’’’. gen (CONCR (tab).name (i), " := ", gen buf);’ THEN genln (";")’’’’’’’’’’’’END PROC declare variable;’’’’PROC gen linefeed :’’’’’’’’’’’ THEN is first := FALSE;’’’’’ gen ("REAL VAR ")’’’’’’ ELSE continue init list’’’’’END PROC gen linefeed;’’’’’’’’.PROC set line no (INT CONST index) :’’’’’’’’’’. line no := CONCR (tab).line no (index);’’’’’’ cout (line no)’’’’’’’’’’’’’’’END PROC set line no;’’’’’’’’’PROC continue init list :’’’’’. genln (","); gen (" ");’’’’’’’’’’’’’’END PROC continue init list;’’PROC gen tab var :’’’’’’’’’’’’. THEN gen ("TAB VAR "); is first := FALSE’’’’ ELSE continue init list’’’’’END PROC gen tab var;’’’’’’’’’PROC generate table part :’’’’ is first := TRUE;’’’’’’’’’’’’. FOR i FROM tabbeg UPTO tabsize REP’’’’’’’’’’’. SELECT CONCR (tab).type (i) OF’’’’’’’’’’’’’’> CASE table : gen tab declaration;’’’’’’’’’’’’’’’. gen tab init’’’’’’’N CASE aux, rate, level : IF CONCR (tab).index type (i) = bold’’’’’’’’’’’’’’’. THEN’’’’’’’’’’’’’’> IF CONCR(tab).type(i)=aux THEN ’’N IF NOT CONCR(tab).should declare vector(i)’’’’. THEN ’’’’’N find maximum index for current variable ’’’. FI; ’’’’’’’’’N IF CONCR(tab).should declare vector(i)’’’’’’’. THEN ’’’’’> gen row init ’’’’’’’’’’’’’. FI ’’’’’’’’. ELSE’’’’’’’’’’’’. gen row init> FI (*18.5.88 dc*)’’’’ FI’ end of init list.’’’’’’’’’’’’gen tab declaration :’’’’’’’’’> gen (CONCR (tab).name (i), " := vector (", vec length);’’’’’’ genln (");"); is first := TRUE.’’’’’’’’’’’’gen tab init : INT VAR elem no := 1;’’’’’’’’. scan (CONCR (tab).right part (i)); next sym;’ set line no (i);’’’’’’’’’’’’’ WHILE type is number REP’’’’’N gen ("replace (", CONCR (tab).name (i), ", ", text (elem no));’’’’’’’’’’’’’’. genln (", ", constant, ");");’’’’’’’’’’’’’’’ elem no INCR 1’’’’’’’’’’’’’’. UNTIL end of constant list END REP.’’’’’’’’’’ type is number :’’’’’’’’’’’’’ IF sym is number (constant)’ ELSE err (40); FALSE’’’’’’’ end of constant list :’’’’’’’ test delimiter.’’’’’’’’’’’’’ INT VAR p, l := 1;’’’’’’’’’’> FOR p FROM 2 UPTO length (CONCR (tab).right part (i)) REP’’’> IF (CONCR (tab).right part (i) SUB p) IN ",/"’’’’’’’’’’’’’’ THEN l INCR 1’’’’’’’’’’’’’ PER; text (l).’’’’’’’’’’’’’’ gen row init :’’’’’’’’’’’’’’’ gen tab var;> gen (CONCR (tab).name (i), " := vector (", row length, ")"). set line no (i);’’’’’’’’’’’’> CONCR (tab).right part (CONCR (tab).index (i)).’’’’’’’’’’’’’. find maximum index for current variable:’’’’’ INT VAR maximum, place, k; . TEXT VAR name::CONCR(tab).name(i); ’’’’’’’’> maximum:=int(CONCR(tab).right part(CONCR(tab).index(i))); ’. FOR k FROM tabbeg UPTO tabsize REPEAT ’’’’’> check maximum of index and change if needed; ’’’’’’’’’’> CONCR(tab).should declare vector(k):=FALSE ’’’’’’’’’’’’> CONCR(tab).should declare vector(place):=TRUE. ’’’’’’’’’’’’.check maximum of index and change if needed: ’. IF same variable CAND need to change ’’’’’’N maximum:=int(CONCR(tab).right part(CONCR(tab).index(k))); ’’’’’’’’’’’ place:=k ’’’’’’’’’’’’need to change: ’’’’’’’’’’’’’’N maximum < int(CONCR(tab).right part(CONCR(tab).index(k))). ’’’’’’’’’’’’’same variable: ’’’’’’’’’’’’’’’N name =CONCR(tab).name(k) CAND CONCR(tab).index type(k) = 1. ’’’’’’’’’’’END PROC generate table part;’BOOL PROC test delimiter :’’’’ SELECT pos ("/, EOL", sym) OF CASE 1, 2 : next sym; FALSE’ CASE 3, 4 : TRUE’’’’’’’’’’’’ OTHERWISE : err (62); TRUE’’END PROC test delimiter;’’’’’’PROC generate table init :’’’’ INT VAR i, tab pos;’’’’’’’’’’. FOR i FROM tabbeg UPTO tabsize REP’’’’’’’’’’’N IF CONCR (tab).index type (i) > nil AND NOT CONCR (tab).idef (i)’’’’’’’’’’’’ THEN gen tab init’’’’’’’’’’ gen tab init :’’’’’’’’’’’’’’’. SELECT CONCR (tab).type (i) OF’’’’’’’’’’’’’’. CASE nequ : gen loop (i, nequ)’’’’’’’’. CASE aux, rate : gen missed table init’’’’’> CASE mac name : CONCR (tab).line no (i) := nil’’’’’’’’’’’’ gen missed table init :’’’’’’> search (CONCR (tab).name (i), tab pos, nil, nequ);’’’’’’’’’’ IF not found THEN gen loop (i, sub init)END PROC generate table init;’.PROC sort equ (INT CONST tab pos, equ type) :’. THEN gen replace (equ type, tab pos)’’’’’’’’> ELSE declare variable (tab pos, equ type, equ type = nequ ORN equ type = sub init)’’’’’’’’’’’’’’END PROC sort equ;’’’’’’’’’’’’NPROC expression (INT CONST equtype, TEXT VAR gen buf, INT VAR no) :’’’’’’’’’’’. TEXT VAR symbol, buf := equation;’’’’’’’’’’’’. INT VAR spos := 1, stype, tabpos;’’’’’’’’’’’’ gen buf := nt;’’’’’’’’’’’’’’’ set line no (no);’’’’’’’’’’’’ test global equ;’’’’’’’’’’’’’ IF CONCR (tab).mac (no) = nilN COR expansion no >= CONCR (tab).index type (CONCR (tab).mac (no))’’’’’’’’’ THEN set def flag’’’’’’’’’’’ test global equ :’’’’’’’’’’’’. IF CONCR (tab).index type (no) < nil’’’’’’’’. THEN replace global mac param’’’’’’’’’’’’’’ replace global mac param :’’’> INT CONST param index := CONCR (tab).index (no);’’’’’’’’’’’’N search (actual parameter (CONCR (tab).rightpart (paramindex)),’’’’’’’’’’’’’’ tabpos, nil, nil);’’ no := tabpos>The 'oblist' (object list) is organized as follows: ’’’’’’’’’’ +-------------+ ’’’’’’’’’’’’ l oblist bone l ’’’’’’’’’’’’N +------+------+ +--> list of all atoms whose print names begin with "@" ’’’ l o l XXXX l l ’’’’’’’’’ +---+--+------+ l ’’’’’’’’’ +------------+ ’’’’’’’’’ +-------------+ ’’’’’’’’’’’’ l oblist bone l ’’’’’’’’’’’’N +------+------+ +--> list of all atoms whose print names begin with "A" ’’’ l o l XXXX l l ’’’’’’’’’ +---+--+------+ l ’’’’’’’’’ +------------+ ’’’’’’’’’ .  .  .  +-------------+ ’’’’’’’’’’’’ l oblist bone l ’’’’’’’’’’’’N +------+------+ +--> list of all atoms whose print names begin with "Z" ’’’ l o l XXXX l l ’’’’’’’’’ +---+--+------+ l ’’’’’’’’’ +------------+ ’’’’’’’’’NThese nodes with status 'oblist bone' form the oblist skeleton. As long as’’’’Nthe lisp heap exists, they are stored contiguously in nodes 2 - 28; they’’’’’’Ncannot be changed directly by the user. This way of storing the oblist’’’’’’’’Nskeleton allows a hashing scheme to be applied when searching for an atom’’’’’Nwith a given name. The hash width of 27 is the smallest one thas distributes’’Nall atoms according to their character; with a smaller hash size, two or’’’’’’Nmore lists would be merged, with the effect that some of the atom lists’’’’’’’>would contain atoms beginning with different characters.’’’’’’NThe list of all atoms whose print names begin with a certain character’’’’’’’’is organized as follows: ’’’’’ +-------------+ ’’’’’’’’’’’’ l atomic l ’’’’’’’’’’’’ +------+------+ ’’’’’’’’’’’’> l o l o---+--> property list of first atom ’’’’’’’’’’’’’ +---+--+------+ ’’’’’’’’’’’’ +-------------+ ’’’’’’’’’’’’ l atomic l ’’’’’’’’’’’’ +------+------+ ’’’’’’’’’’’’> l o l o---+--> property list of 2nd atom ’’’’’’’’’’’’’’’ +---+--+------+ ’’’’’’’’’’’’ +-------------+ ’’’’’’’’’’’’ l atomic l ’’’’’’’’’’’’ +------+------+ ’’’’’’’’’’’’> l o l o---+--> property list of last atom ’’’’’’’’’’’’’’ +---+--+------+ ’’’’’’’’’’’’. oblist bone where the atom list began ’’’’>These lists cannot be acessed directly by the user, too. ’’’’’.PROC x initialize oblist and heap size: ’’’’’’. node (1).status := text data; ’’’’’’’’’’’’’’. node (1).head := 32 (* blank *); ’’’’’’’’’’’ node (1).tail := 1; ’’’’’’’’ FOR i FROM 2 UPTO 28 REP ’’’. node (i).status := oblist bone; ’’’’’’’’’’ node (i).head := i ’’’’’’’ CONCR (heap).size := 28. ’’’ CONCR (heap).node. ’’’’’’’’’.END PROC x initialize oblist and heap size; ’’N(*++++++++++++++++++++++++++++++ oblist dump +++++++++++++++++++++++++++++*) ’.SYM VAR actual oblist bone :: SYM :(0), ’’’’’’. actual atom :: SYM :(0); ’’’’’’’’’’’’’PROC begin oblist dump: ’’’’’’. actual oblist bone := SYM :(2); ’’’’’’’’’’’’ actual atom := SYM :(2) ’’’’END PROC begin oblist dump; ’’SYM PROC next atom: ’’’’’’’’’’. actual atom := x head (actual atom); ’’’’’’’. WHILE no more atoms in this atom list REP ’’ try next oblist bone ’’’’’ actual atom. ’’’’’’’’’’’’’’’.no more atoms in this atom list: ’’’’’’’’’’’’’N (* NIL is given as last atom when 'next atom' is called repeatedly, so *) ’’N (* it can serve as a terminator. So NIL "does not count" if it is *) ’’N (* encountered during one of the calls. *) ’’ IF null (actual atom) THEN ’. actual atom := x head (actual atom) ’’’’’’. eq (actual atom, actual oblist bone). ’’’’’’try next oblist bone: ’’’’’’’’> IF actual oblist bone is last oblist bone THEN ’’’’’’’’’’’’’ actual atom := SYM :(2); ’ LEAVE next atom WITH nil ’. CONCR (actual oblist bone) INCR 1; ’’’’’’’’’. actual atom := x head (actual oblist bone). .actual oblist bone is last oblist bone: ’’’’’’. CONCR (actual oblist bone) = 28. ’’’’’’’’’’’END PROC next atom; ’’’’’’’’’’N(*+++++++++++++++++++++++ atom search and creation +++++++++++++++++++++++*) ’SYM VAR predecessor, result; ’N (* Variables used for communication between the internal search *) ’’N (* procedures and the procedures calling them. *) ’’.SYM PROC atom (TEXT CONST name): ’’’’’’’’’’’’’ x search atom (name); ’’’’’’. IF atom not already existing THEN ’’’’’’’’’’atom not already existing: ’’’. x status (result) = oblist bone. ’’’’’’’’’’’END PROC atom; ’’’’’’’’’’’’’’’.SYM PROC new atom (TEXT CONST name): ’’’’’’’’’ x search atom (name); ’’’’’’. IF atom not already existing THEN ’’’’’’’’’’ x create new atom (name); atom not already existing: ’’’. x status (result) = oblist bone. ’’’’’’’’’’’END PROC new atom; ’’’’’’’’’’’.PROC create atom (TEXT CONST name): ’’’’’’’’’’ x search atom (name); ’’’’’’. IF atom already existing THEN ’’’’’’’’’’’’’’> error stop ("Atom " + name + " existiert bereits") ’’’’’’’ x create new atom (name) ’atom already existing: ’’’’’’’. x status (result) <> oblist bone. ’’’’’’’’’’END PROC create atom; ’’’’’’’’.PROC delete atom (SYM CONST atom): ’’’’’’’’’’’. IF is named atom (atom) THEN ’’’’’’’’’’’’’’’. IF null (atom) OR eq (atom, pname) THEN ’’> error stop ("Dies Atom darf nicht geloescht werden") ’’’ search predecessor; ’’’’. delete atom from atom list ’’’’’’’’’’’’’> error stop ("Nur benannte Atome kŚnnen geloescht werden") search predecessor: ’’’’’’’’’’. predecessor := x head (atom); ’’’’’’’’’’’’’’> WHILE NOT eq (x head (predecessor), atom) REP ’’’’’’’’’’’’’’. predecessor := x head (predecessor) ’’’’’’delete atom from atom list: ’’. x set head (predecessor, x head (atom)). ’’’END PROC delete atom; ’’’’’’’’.PROC x search atom (TEXT CONST name): ’’’’’’’’> CONCR (result) := (code (name SUB 1) + 17) MOD 27 + 2; ’’’’’N (* This formula places the list of atoms beginning with "@" at the *) ’’N (* first oblist bone, the list of atoms beginning with "A" at the *) ’’N (* at the second one, and so on. (See also the big comment in lines *) ’’N (* 600 - 700) *) ’’ predecessor := result; ’’’. result := x head (predecessor); ’’’’’’’’’’> UNTIL end of atom list reached COR right atom found PER. ’’’end of atom list reached: ’’’’. x status (result) = oblist bone. ’’’’’’’’’’’right atom found: ’’’’’’’’’’’’> SYM VAR actual character node := property (result, pname); ’. IF NOT is text (actual character node) THEN . x lisp error ("Namen erwartet"); ’’’’’’’’’. LEAVE right atom found WITH FALSE ’’’’’’’’N IF CONCR (x head (actual character node)) <> length (name) THEN ’’’’’’’’’’’’ INT VAR i; ’’’’’’’’’’’’’’’. FOR i FROM 1 UPTO length (name) REP ’’’’’’ to next character node; . check wether is character data node; ’’’. check wether character matches; ’’’’’’’’to next character node: ’’’’’’> actual character node := x tail (actual character node). ’’’.check wether is character data node: ’’’’’’’’’> IF x status (actual character node) <> character data THEN ’. x lisp error ("Zeichenkette erwartet"); ’’. LEAVE right atom found WITH FALSE ’’’’’’’’.check wether character matches: ’’’’’’’’’’’’’’N IF code (name SUB i) <> CONCR (x head (actual character node)) THEN ’’’’’’’’. LEAVE right atom found WITH FALSE ’’’’’’’’END PROC x search atom; ’’’’’’.PROC x create new atom (TEXT CONST name): ’’’’N (* It is necessary that 'x search atom' has been executed before *) ’N (* calling 'x create new atom' because this procedure relies on the *) ’N (* value of 'predecessor'. ;’’’’’’’’’’’’’’’. expression (type of param, gen buf, no);’’’’ LEAVE expression.’’’’’’’’’’’ type of param :’’’’’’’’’’’’’’ IF equ type = sub init’’’’’’ THEN CONCR (tab).type (no)’ ELSE equ type’’’’’’’’’’’’’’ compile equ : IF CONCR (tab).in use (no)’’. THEN err (CONCR (tab).name (no), 43)’’’’’’’ ELSE pass expression’’’’’’’ pass expression :’’’’’’’’’’’’. CONCR (tab).in use (no) := TRUE;’’’’’’’’’’’’> expression2 (equtype, no, spos, stype, genbuf, symbol, buf);. CONCR (tab).in use (no) := FALSE.’’’’’’’’’’’ IF equtype = nequ’’’’’’’’’’’ THEN CONCR (tab).init (no)’. ELSE CONCR (tab).right part (no)’’’’’’’’’’’ set def flag :’’’’’’’’’’’’’’’ SELECT equtype OF’’’’’’’’’’’> CASE nequ, sub init : CONCR (tab).idef (no) := TRUE’’’’’’’’. CASE level : test level’’’’’’’’’’’> OTHERWISE : CONCR (tab).rdef (no) := TRUE’’’’’’’’N IF CONCR (tab).init (no) = nt AND CONCR (tab).index type (no) = nil’’’’’’’’’. THEN err (CONCR (tab).name (no), 39)’’’’’’’END PROC expression;’’’’’’’’’’>PROC expression2 (INT CONST equtype, no, INT VAR spos, stype,’> TEXT VAR gen buf, symbol, buf) :’’’’’’’’’’’’. next sym (buf, symbol, stype, spos);’’’’’’’’’> factor (equtype, no, spos, gen buf, buf, symbol, stype)’’’’’ UNTIL is no operator END REP. is no operator :’’’’’’’’’’’’’ IF symbol IN "+-*/"’’’’’’’’’ THEN gen buf CAT symbol;’’’. next sym (buf, symbol, stype, spos);’’ process obelix;’’’’’’’ process obelix :’’’’’’’’’’’’’ IF symbol = "*"’’’’’’’’’’’’’ THEN gen buf CAT symbol;’’’. next sym (buf, symbol, stype, spos)’’’END PROC expression2;’’’’’’’’’>TEXT PROC actual parameter (TEXT CONST params) :’’’’’’’’’’’’’’. INT VAR position := nil, old position;’’’’’’’. FOR i FROM 1 UPTO expansion no REP’’’’’’’’’’’ old position := position;’’’. position := pos (params, "%", position + 1)’> subtext (params, old position + 1, position - 1).’’’’’’’’’’’’END PROC actual parameter;’’’’NPROC factor (INT CONST equtype, no, INT VAR spos, TEXT VAR genbuf,’’’’’’’’’’’’> buf, symbol, INT VAR stype) :’’’’’’’’’’. BOOL VAR dollar := symbol = "$";’’’’’’’’’’’’’> INT VAR tab pos, mac num := CONCR (tab).mac (no);’’’’’’’’’’’’. THEN next sym (buf, symbol, stype, spos)’’’’ SELECT stype OF ’’’’’’’’’’’’’. CASE number : process number’’’’’’’’’’’’’. CASE bold : process quantity’’’’’’’’’’’. CASE delimiter : process delimiter’’’’’’’’’’. OTHERWISE : err (symbol, 44)’’’’’’’’’’’ process number :’’’’’’’’’’’’’ gen buf CAT symbol;’’’’’’’’’. next sym (buf, symbol, stype, spos).’’’’’’’’ process quantity :’’’’’’’’’’’. TEXT VAR name := symbol, time script;’’’’’’’ INT VAR old spos := spos;’’’. next sym (buf, symbol, stype, spos);’’’’’’’’ IF mac num > nil’’’’’’’’’’’’> THEN search (name, tab pos, mac num, mac param);’’’’’’’’’’’ IF not found’’’’’’’’’’> THEN search (name, tab pos, mac num, nil);’’’’’’’’’’’ IF not found’’’’> THEN search (name, tab pos, nil, nil)’’’’’’’’’’ FI’’’’’’’’’’’’’’. ELSE search (name, tab pos, nil, nil)’’’’’’ IF is global param’’’’’’’’’’> THEN search (name, tab pos, macro number of param, nil)’’’’ IF not found THEN err (name, 46)’’’’’’’’ ELSE test type’’’’’’’’’’’’’ is global param :’’’’’’’’’’’’. not found AND CONCR (tab).index (no) > nil’’. AND CONCR (tab).index type (no) = nil.’’’’’’ macro number of param :’’’’’’. CONCR (tab).mac (CONCR (tab).index (no)).’’’ INT VAR nop; BOOL VAR is equ := FALSE;’’’ search table entry;’’’’’’’’’ get time script;’’’’’’’’’’’’. type := CONCR (tab).type (tab pos);’’’’’’’’’ SELECT type OF’’’’’’’’’’’’’’. CASE std p : std function’’’’’’’’’’’’’’ CASE table : (* nanu *). CASE mac param : replace param’’’’’’’’’’’’’. CASE mac name : macro expansion’’’’’’’’’’’ CASE const : constant’’ OTHERWISE test quantity’’’’ IF symbol = "("’’’’’’’’’’’’’ THEN test index’’’’’’’’’’’’ ELIF is equ THEN gen buf CAT name’’’’’ search table entry :’’’’’’’’’> IF CONCR (tab).index type (tab pos) > nil AND’’’’’’’’’’’’’’’. CONCR (tab).type (tab pos) = n equ’’’’’’’ THEN search correct table;’ IF not found’’’’’’’’’’ THEN err (name, 46);’. LEAVE process quantity’’’’’’’’’’ search correct table :’’’’’’’ not found := TRUE;’’’’’’’’’’> WHILE tab pos <> nil CAND table not found REP’’’’’’’’’’’’’’’. tab pos := CONCR (tab).pred (tab pos)’’’’’’ table not found :’’’’’’’’’’’’> not found := NOT (CONCR (tab).name (tab pos) = name’’’’’’’’’> AND not in macro AND type ok);’’’’’’’’’’’’ not in macro :’’’’’’’’’’’’’’’. CONCR (tab).mac (tab pos) = nil.’’’’’’’’’’’’. type := CONCR (tab).type (tab pos);’’’’’’’’’. type = aux OR type = rate OR type = level.’’ test quantity :’’’’’’’’’’’’’’. IF CONCR (tab).mac (tab pos) > nil’’’’’’’’’’N THEN name := "zz" + CONCR (tab).name (CONCR (tab).mac (tab pos))’’’’’’’’’’’. + text (expansion no) + name’’ is equ := TRUE;’’’’’’’’’’’’’ SELECT equtype OF’’’’’’’’’’’. CASE nequ : initialization’’’’’’’’’’’’’’ CASE aux : auxiliary’’’. CASE level : level equation’’’’’’’’’’’’’’. CASE sub init: substitute init’’’’’’’’’’’’’. CASE supp : supplementary’’’’’’’’’’’’’’’. OTHERWISE : rate equation’’’’’’’’’’’’’’’ get time script :’’’’’’’’’’’’ time script := nt;’’’’’’’’’’ IF symbol = "."’’’’’’’’’’’’’> THEN next sym (buf, time script, stype, spos);’’’’’’’’’’’’’. next sym (buf, symbol, stype, spos)’’’. BOOL VAR is any := time script = any.’’’’’’’ replace param :’’’’’’’’’’’’’’. buf := text (buf, old spos - 2) +’’’’’’’’’’’> actual param + subtext (buf, spos - 1);’’’’’’’’’’’’’’ spos := old spos - 1;’’’’’’’. next sym (buf, symbol, stype, spos);’’’’’’’’> factor (equtype, no, spos, genbuf, buf, symbol, stype);’’’’’ LEAVE factor.’’’’’’’’’’’’’’’ actual param :’’’’’’’’’’’’’’’> TEXT VAR param := actual parameter (content);’’’’’’’’’’’’’’’. IF param contains time script OR is number’’ ELSE param + "." + any’’’’’ param contains time script :’. (param SUB (length (param))) = any.’’’’’’’’’> pos ("0123456789", param SUB (length (param))) > 0.’’’’’’’’’> IF type = nequ AND CONCR (tab).index (no) = nil’’’’’’’’’’’’’. THEN CONCR (tab).init (tab pos)’’’’’’’’’’’’. ELSE CONCR (tab).right part (tab pos)’’’’’’ gen buf CAT "(";’’’’’’’’’’’’ gen buf CAT name;’’’’’’’’’’’. next sym (buf, symbol, stype, spos);’’’’’’’’ gen buf CAT " SUB ";’’’’’’’’ SELECT stype OF’’’’’’’’’’’’’ CASE number : int index’’’’ CASE bold : var index’’’’. OTHERWISE : err (symbol, 48) ’’’’’’’’’’’’ END SELECT; test offset;. test closing bracket (symbol);’’’’’’’’’’’’’’ gen buf CAT symbol;’’’’’’’’’. next sym (buf, symbol, stype, spos).’’’’’’’’ test offset :. next sym (buf, symbol, stype, spos);’’’’’’’’ IF symbol IN "+-"’’’’’’’’’’’ THEN pass offset’’’’’’’’’’’ pass offset : gen buf CAT symbol;’’’’’’’’’. next sym (buf, symbol, stype, spos);’’’’’’’’ gen buf CAT trunc (symbol);’ IF stype <> number’’’’’’’’’’ THEN err (symbol, 48) ’’’’’. next sym (buf, symbol, stype, spos).’’’’’’’’.(*IF CONCR (tab).index (no) <> int (symbol)’’’ THEN err (symbol, 48); ’’’’N message("Starten Sie trotzdem das Ūbersetzte ELAN Programm") FI;*) ’’’N(*20.5.88 dc: hier kommt eine falsche Fehlermeldung *) ’’’ gen buf CAT trunc (symbol).’. search (symbol, tab pos, mac num, for);’’’’’ gen buf CAT symbol;’’’’’’’’’ *) ’ enable stop; ’’’’’’’’’’’’’’’. SYM CONST sym name :: sym (name); ’’’’’’’’’’. IF CONCR (heap).size + 3 > max size THEN ’’’. error stop ("LISP Heap Ueberlauf") ’’’’’’’. result := newly created atom; ’’’’’’’’’’’’’’. x set head (predecessor, result). ’’’’’’’’’’newly created atom: ’’’’’’’’’’N x new node (atomic, CONCR (oblist bone node), CONCR (property list)). ’’’’’’oblist bone node: ’’’’’’’’’’’’ x head (predecessor). ’’’’’’property list: ’’’’’’’’’’’’’’’N x new node (property indicator, CONCR (pname), property root node). ’’’’’’’’property root node: ’’’’’’’’’’N CONCR (x new node (property root, CONCR (sym name), CONCR (nil))). ’’’’’’’’’END PROC x create new atom; ’’N(************************* property list handling *************************) ’>The property lists consist of chained units of the structure ’. +--------------------+ +---------------+ ’. l property indicator l l property root l ’. +----------+---------+ +-------+-------+ ’> l o l o----+-->l o l o---+--> . . . ’’’’’’’’. +----+-----+---------+ +---+---+-------+ ’. l l ’’’’’’’’’’’’’. V V ’’’’’’’’’’’’’. property id property ’’’’’’’’’’ +----------------+ ’’’’’’’’’ l flag indicator l ’’’’’’’’’ +--------+-------+ ’’’’’’’’’ l o l o---+--> . . .  +---+----+-------+ ’’’’’’’’’>The property lists cannot be altered or read directly, too. ’’NFor property list handling there exist procedures that insert, change, read’’’Nand delete properties resp. flags. Thus, the only thing that can be done’’’’’’Nwith any property of an atom without using these special procedures, is’’’’’’’>comparing to or 'cons'ing with some other S-expression. ’’’’’’NAt any given time the property list of any atom (including 'NIL') contains’’’’Nthe property 'PNAME' giving the print name of the atom, stored as a list of’’’Ncharacters. This special property cannot be altered, overwritten by 'add’’’’’’property' or deleted.’’’’’’’’’N(*++++++++++++++++++++++++++ property list dump ++++++++++++++++++++++++++*) ’.SYM VAR actual property list node :: nil; ’’’’>PROC begin property list dump (SYM CONST atom): ’’’’’’’’’’’’’’. actual property list node := x tail (atom) ’.END PROC begin property list dump; ’’’’’’’’’’’>PROC next property (SYM VAR property id, property): ’’’’’’’’’’. IF null (actual property list node) THEN ’’’ property id := nil; ’’’’’’ property := nil ’’’’’’’’’’> SELECT x status (actual property list node) OF ’’’’’’’’’’’. CASE flag indicator: get flag id ’’’’’’’> CASE property indicator: get property id and property ’’N OTHERWISE x lisp error ("Flagge oder Eigenschaft erwartet und nicht: " ’N + text (x status (actual property list node))) ’ END SELECT ’’’’’’’’’’’’’’’> property id := x head (actual property list node); ’’’’’’’’’N actual property list node := x tail (actual property list node); ’’’’’’’’’’’ property := nil. ’’’’’’’’’’’get property id and property: > property id := x head (actual property list node); ’’’’’’’’’N actual property list node := x tail (actual property list node); ’’’’’’’’’’’N IF x status (actual property list node) = property root THEN ’’’’’’’’’’’’’’’> property := x head (actual property list node); ’’’’’’’’’’N actual property list node := x tail (actual property list node) ’’’’’’’’’’> x lisp error ("Eigenschaftswurzel erwartet, nicht:" + ’’’’> text (x status (actual property list node)));  property := nil ’’’’’’’’’’END PROC next property; ’’’’’’N(*+++++++++++++++++++++++++++++ properties +++++++++++++++++++++++++++++++*) ’.SYM VAR last atom :: SYM :(0), ’’’’’’’’’’’’’’’ p list predecessor, ’’ p list result; ’’’’’’’>PROC add property (SYM CONST atom, property id, property): ’’’. IF eq (property id, pname) THEN ’’’’’’’’’’’’N errorstop ("Der PNAME eines Atoms darf nicht versteckt sein") ’’’’’’’’’’’’. IF CONCR (heap).size + 2 > max size THEN ’. error stop ("LISP Heap Ueberlauf"); ’’’’ LEAVE add property ’’’’’> x set tail (atom, new property plus old property list); ’’. IF eq (atom, last atom) AND ’’’’’’’’’’’’’’> eq (property id, x head (p list result)) THEN ’’’’’’’’’. p list predecessor := atom; ’’’’’’’’’’’’. p list result := x tail (atom) ’’’’’’’’’.new property plus old property list: ’’’’’’’’’. x new node (property indicator, ’’’’’’’’’’’’N CONCR (property id), CONCR (property root plus old property list)). ’’.property root plus old property list: ’’’’’’’’N x new node (property root, CONCR (property), CONCR (old property list)). ’’’old property list: ’’’’’’’’’’’ x tail (atom) ’’’’’’’’’’’’’’END PROC add property; ’’’’’’’NPROC alter property (SYM CONST atom, property id, new property): ’’’’’’’’’’’’’. IF eq (property id, pname) THEN ’’’’’’’’’’’’> error stop ("Namen kann man nicht aendern") ’’’’’’’’’’’’’’. x search property id (atom, property id); . IF null (p list result) THEN ’’’’’’’’’’’’’> error stop ("Eigenschaft existiert nicht") ’’’’’’’’’’’’’> x set head (x tail (p list result), new property) ’’’’’’END PROC alter property; ’’’’’>SYM PROC property (SYM CONST atom, property id): ’’’’’’’’’’’’’. x search property id (atom, property id); ’’. IF null (p list result) THEN ’’’’’’’’’’’’’’’. x head (x tail (p list result)) ’’’’’’’’’’END PROC property; ’’’’’’’’’’’>PROC delete property (SYM CONST atom, property id): ’’’’’’’’’’. IF eq (property id, pname) THEN ’’’’’’’’’’’’N errorstop ("Der Name eines Atoms darf nicht geloescht werden") ’’’’’’’’’’’. x search property id (atom, property id); . IF NOT null (p list result) THEN ’’’’’’’’’N x set tail (p list predecessor, x tail (x tail (p list result))); ’’’’’’ last atom := SYM :(0) ’’END PROC delete property; ’’’’>BOOL PROC property exists (SYM CONST atom, property id): ’’’’’. x search property id (atom, property id); ’’ NOT null (p list result) ’’’END PROC property exists; ’’’’>PROC x search property id (SYM CONST atom, property id): ’’’’’N IF eq (last atom, atom) AND eq (x head (p list result), property id) THEN ’’. LEAVE x search property id ’’’’’’’’’’’’’’’ last atom := atom; ’’’’’’’’’ p list predecessor := atom; > p list result := x tail (p list predecessor); ’’’’’’’’’’’’. IF end of property list THEN ’’’’’’’’’’’’’ last atom := SYM :(0); ’. LEAVE x search property id ’’’’’’’’’’’’’. SELECT x status (p list result) OF ’’’’’’’N CASE flag indicator: p list predecessor := p list result ’’’’’’’’’’’’’’’N CASE property indicator: check wether property root node follows; ’’’’’’N IF correct property id found THEN ’’’’’’’’’’’’’> LEAVE x search property id ’’. ELSE ’’’’’’’’’’N p list predecessor := xtail (p list result) ’. FI ’’’’’’’’’’’’N CASE property root: xlisperror("Unordentliche Eigenschaftwurzel"); ’’’’’> p list result := nil; ’’’’’’’’’’’’’’> last atom := SYM :(0); ’’’’’’’’’’’’’> LEAVE x search property id ’’’’’’’’’N OTHERWISE x lisp error ("Eigenschaften erwartet und nicht: " + ’’’’’’’’’N text (x status (p list result))); ’’’’’’’’’’’’’’. p list result := nil; ’’’’’’’’. last atom := SYM :(0); ’’’’’’’ IF incorrect index’’’’’’’’’’ THEN err (symbol, 48) ’’’’’ incorrect index :’’’’’’’’’’’’N not found COR CONCR (tab).name (CONCR (tab).index (no)) <> symbol.’’’’’’’’’’ std function :’’’’’’’’’’’’’’’ test open bracket (symbol);’> nop := length (CONCR (tab).right part (tab pos));’’’’’’’’’’’ gen buf CAT (name + " (");’’ IF nop > nil THEN pass actual params’’’’. ELSE next sym (buf, symbol, stype, spos);’’. test closing bracket (symbol)’’’’’’’’’. next sym (buf, symbol, stype, spos);’’’’’’’’ IF act param <> nop’’’’’’’’’ THEN err (symbol, 49)’’’’’’ pass actual params :’’’’’’’’’> INT VAR table pos := tab pos, act param := nil;’’’’’’’’’’’’’ act param INCR 1;’’’’’’’’’’> IF (CONCR (tab).right part (table pos) SUB act param) = "t". THEN test if param is table’’’’’’’’’’’’’’’N ELSE expression2 (equtype, no, spos, stype, gen buf, symbol, buf)’’’’’’’’’. UNTIL no more params END REP.’’’’’’’’’’’’’’’ no more params :’’’’’’’’’’’’’ gen buf CAT symbol;’’’’’’’’’ SELECT pos (",)", symbol) OF CASE 1 : FALSE’’’’’’’’’ CASE 2 : TRUE’’’’’’’’’’. OTHERWISE : err (symbol, 50); TRUE’’’’’’’’ test if param is table :’’’’’. next sym (buf, symbol, stype, spos);’’’’’’’’ IF s type = bold’’’’’’’’’’’’> THEN search (symbol, tab pos, mac num, nil);’’’’’’’’’’’’’’’ IF not found’’’’’’’’’’ THEN err (symbol, 51) ELSE gen table’’’’’’’ ELSE err (symbol, 52)’’’’’’. IF CONCR (tab).type (tab pos) = table’’’’’’’ THEN gen buf CAT symbol;’’’. next sym (buf, symbol, stype, spos)’’’. ELIF CONCR (tab).index type (tab pos) > nil’> THEN factor (equtype, no, spos, genbuf, buf, symbol, stype) ELSE err (symbol, 52)’’’’’’ macro expansion :’’’’’’’’’’’’. CONCR (tab).line no (tab pos) INCR 1;’’’’’’’ gen buf CAT "zz";’’’’’’’’’’’ gen buf CAT name;’’’’’’’’’’’> gen buf CAT text (CONCR (tab).line no (tab pos));’’’’’’’’’’’ gen buf CAT name;’’’’’’’’’’’ get actual parameters.’’’’’’ get actual parameters :’’’’’’ TEXT VAR char;’’’’’’’’’’’’’’ test open bracket (symbol);’ get macro parameter list;’’’. next sym (buf, symbol, stype, spos).’’’’’’’’ get macro parameter list :’’’ get act param’’’’’’’’’’’’’’. UNTIL end of parameter list END REP.’’’’’’’’ end of parameter list :’’’’’’ SELECT pos (",)", char) OF’’ CASE 1 : FALSE’’’’’’’’’’ CASE 2 : TRUE’’’’’’’’’’’ OTHERWISE : TRUE’’’’’’’’’’’ get act param :’’’’’’’’’’’’’’ INT VAR brackets := nil;’’’’ char := buf SUB spos;’’’’’’’ spos INCR 1;’’’’’’’’’’’’’’’ char := buf SUB spos’’’’’’’ UNTIL end of param END REP;’ spos INCR 1. end of param :’’’’’’’’’’’’’’’ IF brackets = nil’’’’’’’’’’’ THEN char IN ",)"’’’’’’’’’’ ELIF char = "("’’’’’’’’’’’’’ THEN brackets INCR 1;’’’’’’ ELIF char = ")"’’’’’’’’’’’’’ THEN brackets DECR 1;’’’’’’ is equ := TRUE;’’’’’’’’’’’’’. CONCR (tab).idef (tab pos) := TRUE.’’’’’’’’’ initialization :’’’’’’’’’’’’’. IF time script = nt OR is any’’’’’’’’’’’’’’’. THEN IF NOT CONCR (tab).idef (tab pos)’’’’’> THEN IF CONCR (tab).init (tab pos) <> nt’’’’’’’’’’’’’> THEN sort equ (tab pos, equ type)’’’’’’’’’’’’’’ ELIF is sub init> THEN sort equ (tab pos, sub init)’’’’’’’’’’’’’’. ELSE err (symbol, 39)’’’’’’’’’’ FI’’’’’’’’’’’’’’ ELSE err (time script, 56)’ is sub init :> CONCR (tab).init (tab pos) = nt AND correct type (type).’’’’. IF time script = aux time script OR is any’’> THEN IF NOT CONCR (tab).rdef (tab pos) AND type = aux’’’’’’. THEN sort equ (tab pos, equtype)’’’’’ ELSE err (time script, 57)’ aux time script :’’’’’’’’’’’’ SELECT type OF’’’’’’’’’’’’’’ CASE aux, level : "k"’’’’’ CASE rate : "jk"’’’’ OTHERWISE : " "’’’’’ level equation :’’’’’’’’’’’’’> IF time script <> level time script AND NOT is any’’’’’’’’’’ THEN err (time script, 59)’ level time script :’’’’’’’’’’ SELECT type OF’’’’’’’’’’’’’’ CASE aux, level : "j"’’’’’’ CASE rate : "jk"’’’’’ OTHERWISE : " "’’’’’’ rate equation :’’’’’’’’’’’’’’> IF time script <> rate time script AND NOT is any’’’’’’’’’’’ THEN err (time script, 60)’ rate time script :’’’’’’’’’’’ SELECT type OF’’’’’’’’’’’’’’ CASE aux, level : "k"’’’’’’ CASE rate : "jk"’’’’’ OTHERWISE : " "’’’’’’ supplementary :’’’’’’’’’’’’’’> IF time script <> supp time script AND NOT is any’’’’’’’’’’’ THEN err (time script, 57)’ supp time script :’’’’’’’’’’’ SELECT type OF’’’’’’’’’’’’’’ CASE aux, level, supp : "k". CASE rate : "jk"’’’’’’’’’’’’’’’ OTHERWISE : " " substitute init :’’’’’’’’’’’’. IF NOT CONCR (tab).idef (tab pos)’’’’’’’’’’’ THEN gen sub init equ’’’’’’ gen sub init equ :’’’’’’’’’’’. IF CONCR (tab).index type (tab pos) > nil’’’. THEN IF CONCR (tab).index type (no) = nil’’. THEN process index equ’’’’’’’’’’’’’’’. ELIF CONCR (tab).init (tab pos) = nt’’’’’’’’. THEN IF correct type (type) ’’’’’’’’’’’’’’’. THEN sort equ (tab pos, equtype)’’’’’. ELSE sort equ (tab pos, nequ)’’’’’’’’’’’’’’ process index equ :’’’’’’’’’’. INT VAR table type := sub init;’’’’’’’’’’’’’ IF type <> nequ’’’’’’’’’’’’’ THEN search nequ’’’’’’’’’’’> IF NOT CONCR (tab).idef (tab pos) AND correct type (type)’’’ THEN end of init list;’’’’’. gen loop (tab pos, table type);’’’’’’’. CONCR (tab).idef (tab pos) := TRUE’’’’ search nequ :> search (CONCR (tab).name (tabpos), table pos, nil, nequ);’’’> IF NOT (not found CAND CONCR (tab).idef (tab pos))’’’’’’’’’’ THEN type := nequ;’’’’’’’’’ tab pos := table pos;’ table type := type’’’’ process delimiter :’’’’’’’’’’ genbuf CAT symbol;’’’’’’’’’’. SELECT pos ("(+-", symbol) OF’’’’’’’’’’’’’’’ CASE 1 : process bracket’. CASE 2, 3: process monadic operator’’’’’’’’ OTHERWISE err (symbol, 44)’ process bracket :’’’’’’’’’’’’> expression2 (equtype, no, spos, stype, genbuf, symbol, buf);. test closing bracket (symbol);’’’’’’’’’’’’’’ gen buf CAT symbol;’’’’’’’’’. next sym (buf, symbol, stype, spos);’’’’’’’’ IF symbol = "("’’’’’’’’’’’’’ THEN gen buf CAT "*";’’’’’’N factor (equtype, no, spos, gen buf, buf, symbol, stype)’’’’’’’’’’’’’’’ process monadic operator :’’’. next sym (buf, symbol, stype, spos);’’’’’’’’> factor (equtype, no, spos, gen buf, buf, symbol, stype).’’’’END PROC factor;’’’’’’’’’’’’’’.BOOL PROC correct type (INT CONST equ type) :’ SELECT equ type OF’’’’’’’’’’’ CASE aux, rate, nequ : TRUE’ OTHERWISE : FALSEEND PROC correct type; ’’’’’’’NTEXT PROC draw ad:ZUSATZ Februar 87 C&C geaendert: Ausgabe "dump" $$$$$$$$*)’’N(* In dieser Prozedur wird eine Datei 'dump' angelegt, in der alle *)’’N(* Dynamo-Standardfunktionen, Macros und die programmspezifischen *)’’N(* Variablen und Konstanten eingetragen werden. *)’’PROC table dump :’’’’’’’’’’’’’IF exists ("dump")’’’’’’’’’’THEN forget("dump",quiet)’’’’’>FILE VAR dump := sequential file(output, "dump");’’’’’’’’’’’’’sysout("dump");’’’’’’’’’’’’’’’. FOR i FROM 1 UPTO CONCR (tab).tab size REP’’’. put ("NAM :"); put (CONCR (tab).name (i));’’> put ("RP :"); put (CONCR (tab).right part (i));’’’’’’’’’’’’’. put ("INI :"); put (CONCR (tab).init (i));’’. put ("IND :"); put (CONCR (tab).index (i));’> put ("IT :"); put (CONCR (tab).index type (i));’’’’’’’’’’’’’. put ("TYP :"); put (CONCR (tab).type (i));’’END PROC table dump’’’’’’’’’’’N(*$$$$$$$$$$$$. LEAVE x search property id ’’’ END SELECT ’’’’’’’’’’’’’’’end of property list: ’’’’’’’’ null (p list result). ’’’’’’.check wether property root node follows: ’’’’’> IF x status (x tail (p list result)) <> property root THEN ’> x lisp error ("Eigenschaftswurzel erwartet"); ’’’’’’’’’’’’ p list result := nil; ’’’’ last atom := SYM :(0); ’’’. LEAVE x search property id ’’’’’’’’’’’’’’’correct property id found: ’’’. eq (x head (p list result), property id). ’’.END PROC x search property id; ’’’’’’’’’’’’’’’N(*++++++++++++++++++++++++++++++++ flags +++++++++++++++++++++++++++++++++*) ’.PROC add flag (SYM CONST atom, flag id): ’’’’’ enable stop; ’’’’’’’’’’’’’’’> x set tail (atom, new flag plus old property list). ’’’’’’’’.new flag plus old property list: ’’’’’’’’’’’’’N x new node (flag indicator, CONCR (flag id), old property list). ’’’’’’’’’’’old property list: ’’’’’’’’’’’ CONCR (x tail (atom)) ’’’’’’END PROC add flag; ’’’’’’’’’’’.BOOL PROC flag (SYM CONST atom, flag id): ’’’’. x search flag id (atom, flag id); ’’’’’’’’’’ NOT null (result) ’’’’’’’’’’END PROC flag; ’’’’’’’’’’’’’’’.PROC delete flag (SYM CONST atom, flag id): ’’. x search flag id (atom, flag id); ’’’’’’’’’’. IF NOT (is error COR null (result)) THEN ’’’. x set tail (predecessor, x tail (result)) END PROC delete flag; ’’’’’’’’>PROC x search flag id (SYM CONST atom, flag id): ’’’’’’’’’’’’’ predecessor := atom; ’’’’’’’. result := x tail (predecessor); ’’’’’’’’’’. IF end of property list THEN ’’’’’’’’’’’’’ LEAVE x search flag id ’. SELECT x status (result) OF ’’’’’’’’’’’’’’N CASE property root, property indicator: predecessor := result ’’’’’’’’’’> CASE flag indicator: IF correct flag id found THEN ’’’’’> LEAVE x search flag id ’’’’’’’’’’. ELSE ’’’’’’’’’’’’’’> predecessor := result ’’’’’’’’’’’ FI N OTHERWISE x lisp error ("Eigenschaften erwartet und nicht:" + ’’’’’’’’’’> text (x status (result))); ’’’’’. result := nil; ’’’’’’’’’’’’’’’. LEAVE x search flag id ’’’’’’’ END SELECT ’’’’’’’’’’’’’’’end of property list: ’’’’’’’’ null (result). ’’’’’’’’’’’’’correct flag id found: ’’’’’’’. eq (x head (result), flag id). ’’’’’’’’’’’’’END PROC x search flag id; ’’’N(****** Conversion of non-LISP data to LISP structures and vice versa *****) ’.TEXT PROC text (SYM CONST sym): ’’’’’’’’’’’’’’ IF is text (sym) THEN ’’’’’’ TEXT VAR result := ""; ’’’. SYM VAR actual node :: sym; ’’’’’’’’’’’’’’ INT VAR i; ’’’’’’’’’’’’’’’> FOR i FROM 1 UPTO CONCR (x head (sym)) REP ’’’’’’’’’’’’’’’. actual node := x tail (actual node); ’’’. result CAT actual character ’’’’’’’’’’’’. error stop ("ist kein text"); ’’’’’’’’’’’’actual character: ’’’’’’’’’’’’> IF x status (actual node) <> character data THEN ’’’’’’’’’’’. x lisp error ("Zeichenfolge erwartet"); ’’ LEAVE text WITH result ’’’. code (CONCR (x head (actual node))). ’’’’’’’END PROC text; ’’’’’’’’’’’’’’’.BOOL PROC is text (SYM CONST sym): ’’’’’’’’’’’ x status (sym) = text data ’END PROC is text; ’’’’’’’’’’’’.SYM PROC sym (TEXT CONST text): ’’’’’’’’’’’’’’. SYM VAR result :: x new node (text data, ’’’> length (text), CONCR (nil)), ’. actual character node :: result; ’’’ INT VAR length of text; ’’’’. ignore blanks at end of text;’’’’’’’’’’’’’’’. FOR i FROM 1 UPTO length of text REP ’’’’’’’N x set tail (actual character node, new next character node); ’’’’’’’’’’’’’> actual character node := x tail (actual character node) ’’ignore blanks at end of text: > FOR length of text FROM length (text) DOWNTO 0 REP ’’’’’’’’’. IF (text SUB length of text) <> " " THEN ’. LEAVE ignore blanks at end of text ’’’’’ length of text := 0. ’’’’’’’new next character node: ’’’’’> x new node (character data, code (text SUB i), 1). ’’’’’’’’’END PROC sym; .INT PROC character (SYM CONST sym): ’’’’’’’’’’. IF x status (sym) = character data THEN ’’’’ CONCR (x head (sym)) ’’’’’. error stop ("ist kein Charakter"); ’’’’’’’END PROC character; ’’’’’’’’’’.BOOL PROC is character (SYM CONST sym): ’’’’’’. x status (sym) = character data ’’’’’’’’’’’’END PROC is character; ’’’’’’’.SYM PROC sym character (INT CONST char): ’’’’’> x new node (character data, char MOD 256, 1) ’’’’’’’’’’’’’’’END PROC sym character; ’’’’’’.INT PROC int 1 (SYM CONST sym): ’’’’’’’’’’’’’’. IF x status (sym) = int data THEN ’’’’’’’’’’ CONCR (x head (sym)) ’’’’’. error stop ("ist keine Zahl"); ’’’’’’’’’’’END PROC int 1; ’’’’’’’’’’’’’’.INT PROC int 2 (SYM CONST sym): ’’’’’’’’’’’’’’. IF x status (sym) = int data THEN ’’’’’’’’’’ CONCR (x tail (sym)) ’’’’’. error stop ("ist keine Zahl"); ’’’’’’’’’’’END PROC int 2; ’’’’’’’’’’’’’’.BOOL PROC is int pair (SYM CONST sym): ’’’’’’’ x status (sym) = int data ’’END PROC is int pair; ’’’’’’’’.SYM PROC sym (INT CONST int 1, int 2): ’’’’’’’. x new node (int data, int 1, int 2) ’’’’’’’’END PROC sym; N(********************* internal error routine *****************************) ’.PROC x lisp error (TEXT CONST error message): > error stop (""13"LISP SYSTEM FEHLER: " + error message ) ’’’END PROC x lisp error; ’’’’’’’.END PACKET lisp heap and oblist management; ’’NPACKET name (* Autor: J.Durchholz *) ’N (* Datum: 15.06.1982 *) ’N DEFINES (* Version 1.1.1 *) ’.TEXT PROC name (SYM CONST sym): ’’’’’’’’’’’’’’ IF is named atom (sym) THEN . text (property (sym, pname)) ’’’’’’’’’’’’’ ""15"IST_KEIN_ATOM"14"" ’’END PROC name; ’’’’’’’’’’’’’’’END PACKET name; ’’’’’’’’’’’’’NPACKET lisp storage info (* Autor: J.Durchholz *) ’N (* Datum: 23.08.1982 *) ’N DEFINES (* Version 1.1.1 *) ’ lisp storage info: ’’’’’’’’’PROC lisp storage info: ’’’’’’ INT VAR size, used; ’’’’’’’’ lisp storage (size, used); ’ out (""13""10" "); ’’’’ put (used);  put ("Knoten von"); ’’’’’’’’ put (size); > put line ("Knoten des LISP-Heaps sind belegt!") ’’’’’’’’’’’’END PROC lisp storage info; ’’END PACKET lisp storage info; ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’lisp.2’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’$$$$$$$$ ENDE ZUSATZ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*)’’’.END PACKET dynamo compiler 33 xxx’’’’’’’’’’’’’N(**************************************************************************)’’N(**************************************************************************)’’N(****** ******)’’N(****** ******)’’N(****** DYNAMO - III - ELAN PRECOMPILER ******)’’N(****** ******)’’N(****** ******)’’N(****** AUTOREN : R. Keil, ******)’’N(****** T. Froehlich ******)’’N(****** ******)’’N(****** VERSION : 3.3.7 ******)’’N(****** ******)’’N(****** ******)’’N(****** AENDERUNGEN: ******)’’N(****** 05.10.1983 ******)’’N(****** 06.05.1985 Hua&DC: forget("zzdyn.const") ******)’’N(****** 08.04.1986 Ley : Anpassung an 1.7.5 ******))’N(****** ******)’’N(**************************************************************************)’’N(**************************************************************************)’’N(****** ******) ’N(****** Ausbettung aus BOX ******)’’NPROC error listing (FILE VAR procsource) : (* C.S. 21.07.88 *)’’’’’’’’’’’’. ELSE error listing(source);’’’’’’’’’’’’’’’> error stop ("") (* C.S. 21.07.88 *)> error stop ("") (* C.S. 21.07.88 *)’ + "draw ", ’’’’’’’’’’’. start + " ") OFFFFFFFFFFFF’’’’’’’’’’’’. OTHERWISE : err (start, 3)’’’’’’’’’’’’’’’ draw found :=. CASE 17 : is draw := FALSE;’’’’’’’’’ plot foudn :=> genln (draw ad + " plot (", plot name (i), ");");’’’’’’’’’’N END IF(draw ad + "initialize plot (""", plot buf, """);");’’’’’’^ gen (draw ad + "plot scale (""", id (i), """, ", text (scale pointer (i)));;’’’’’’’’’’’’’’’. text (scale pointer (i)));’’’’’’’’’’’’. err ("plot", 25, plot line no) ELSE’’’’’’’’’’’’> err ("draw", 25, plot line no)) ’’’’’’’’’’’’’’N ELSE genln (draw ad + "initialize plot (""", plot buf, """);");’’’’’’N(*$$$$$$$$$$$$$$$ ZUSATZ Februar 87 C&C geaendert: Ausgabe "dump" $$$$$$$$*)’’. IF is draw THEN "b" ELSE "" END IF’’’’’’’’’’END PROC draw ad;’’’’’’’’’’’’’ last param (s)’’’’’’’’’’’’’’’N forget (target name, quiet); (* ELAN-Prg. lŚschen, C.S. *)’’’’’’’ draw found := FALSE;’’’ is first := TRUE;;’’’N in loop, not found, internal, subscript, ,,,,,,,,,,,,,,,,,,,,,,,’’’ CASE 17 : plot card’’’’. CASE 17 : plot found := TRUE;;;’’’’’’’’ plot card’’’’. genln ("IF " + draw ad + " stop request THE IF plot buf = nt’’’’’’’’’’’’>END PROC graphic;ND NOT is draw OR plot found AND is draw THENN(********************** C O M P I L E R ************************)’’’’ is draw := NOT mode’’’’’’’’’NTYPE TABLE = STRUCT (ROW max tab size TEXT name, init, right part,’’’’’’’’’’’> genln ("UNTIL " + draw ad + "stop request PER;");’’’’’’’’’’’N genln ("IF " + draw ad + " stop request THEN LEAVE target program " +’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’dyn.plot’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ €’’’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’q£a€ė’’.ź„’’’’ģ++„„M’ž’’’’’’dyn.plot’’’’’ģģ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’/’’a€ sys page;’’.’’ᢒC’’’’’’’’’’’’’’’’’’’q¢’FEFINES b ’’’’’’’’’’’ b ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’Q’’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’(’’’’’’’’’’’’’’’’’’’Į’-’’’’’’’’’’’’’’’’’’’ń’8’’’’’’’’’’’’’’’’’’’1‚’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q‚’D’’’’’’’’’’’’’’’’’’’Į‚’>’’’’’’’’’’’’’’’’’’’ƒ’N’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ BOOL VAR plt;’’’’’’’’Qƒ’’’’’’’’’’’’’’’’’’’’qƒ’’’’’’’’’’’’’’’’’’’’‘ƒ’*’’’’’’’’’’’’’’’’’’’Įƒ’ ’’’’’’’’’’’’’’’’’’’ńƒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’„’D’’’’’’’’’’’’’’’’’’’a„’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±„’’’’’’’’’’’’’’’’’’’’ф’’’’’’’’’’’’’’’’’’’’’’ plot values.’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń„’’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’1…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q…’’’’’’’’’’’’’’’’’’’’q…’’’’’’’’’’’’’’’’’’’’‘…’’’’’’’’’’’’’’’’’’’’’’ line;’’’’’’’’’’’’’’’’ vdt;’’’’’’’’’’’’’’’’’ line;’’’’’’’’’’’’’’1£’4IF b stop rė’’±…’’’’’’’’’’’’’’’’’’’’’’ put scales;’’’’’’’’х’ ’’’’’’’’’’’’’’’’’’’’’ put time;’’’’’’’’’’’ gen line;’’’’’’’’’†’&’’’’’’’’’’’’’’’’’’’1†’’’’’’’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’Q†’.’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’”†’ ’’’’’’’’’’’’’’’’’’’ц’’’’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ put time :’’’’’’’’’’ń†’<’’’’’’’’’’’’’’’’’’’1‡’*’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ gen line :’’’’’’’’’’a‡’"’’’’’’’’’’’’’’’’’’’‘‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ act line :’’’’’’’’’’±‡’J’’’’’’’’’’’’’’’’’’’ˆ’B’’’’’’’’’’’’’’’’’’’’’ ELSE line2’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qˆ’’’’’’’’’’’’’’’’’’’’qˆ’M’’’’’’’’’’’’’’’’’’’Įˆ’’’’’’’’’’’’’’’’’’’’ሒ*’’’’’’’’’’’’’’’’’’’‰’3’’’’’’’’’’’’’’’’’’’Q‰’&’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’:ą’’’’’’’’’’’’’’’’’’’’Ą’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!ŗa€ė’’JGä’’’’ääKM’’’’’’lisp.2’’’’’’’’’’’’’’’’’’’’’’’J’’’’’’’’’’’’’’’’’’a€’M’’’’’’’’’’’’’’’’’’’±€’M’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’Q’H’’’’’’’’’’’’’’’’’’’’’ get char, ’’’’’’’’’’’ line nr, ’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’ၒ’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’’’ line ’’’’’’’’’’’’’’1‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q‚’’’’’’’’’’’’’’’’’’’’q‚’’’’’’’’’’’’’’’’’’’’‘‚’’’’’’’’’’’’’’’’’’’’’’ line := 0; ’’’’’’’’±‚’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’т’+’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’!ƒ’6’’’’’’’’’’’’’’’’’’’aƒ’’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’”ƒ’ ’’’’’’’’’’’’’’’’’’’у’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńƒ’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!„’2’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’”„’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’Į„’’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a…’M’’’’’’’’’’’’’’’’’’’±…’M’’’’’’’’’’’’’’’’’’’†’M’’’’’’’’’’’’’’’’’’’Q†’L’’’’’’’’’’’’’’’’’’’”†’L’’’’’’’’’’’’’’’’’’’ń†’’’’’’’’’’’’’’’’’’’’’’ get, ’’’’’’’’’’’’’’’’ get all: ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1‡’)’’’’’’’’’’’’’’’’’’’a‡’’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”‡’’’’’’’’’’’’’’’’’’’’’’ verbose ’’’’’’’’’’’ч’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń‡’’’’’’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’’’ put atom ’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’1ˆ’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ put atom: ’’’’’’’’’’’Qˆ’’’’’’’’’’’’’’’’’’’’qˆ’’’’’’’’’’’’’’’’’’’’‘ˆ’’’’’’’’’’’’’’’’’’’’±ˆ’’’’’’’’’’’’’’’’’’’’ш’’’’’’’’’’’’’’’’’’’’ńˆ’’’’’’’’’’’’’’’’’’’’‰’%’’’’’’’’’’’’’’’’’’’A‰’)’’’’’’’’’’’’’’’’’’’q‰’’’’’’’’’’’’’’’’’’’’‘‰’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’±‰’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’щ’’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’!Š’’’’’’’’’’’’’’’’’’’’AŠ’)’’’’’’’’’’’’’’’’’’’qŠ’’’’’’’’’’’’’’’’’’’’‘Š’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’±Š’#’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’ኒ)’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’’’ put ("("); ’’’’’’’’1‹’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’Q‹’’’’’’’’’’’’’’’’’’’’q‹’&’’’’’’’’’’’’’’’’’’’”‹’ ’’’’’’’’’’’’’’’’’’’ы’!’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’!Œ’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’’’ put (")"). ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŒ’&’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’’’ put atom ’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’”Œ’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ put atom: ’’’’’’’’’’’ĮŒ’’’’’’’’’’’’’’’’’’’’ጒ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’%’’’’’’’’’’’’’’’’’’’±’)’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’!Ž’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’AŽ’’’’’’’’’’’’’’’’’’’’qŽ’’’’’’’’’’’’’’’’’’’’‘Ž’’’’’’’’’’’’’’’’’’’’±Ž’)’’’’’’’’’’’’’’’’’’’įŽ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’!’'’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’Q’-’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’į’!’’’’’’’’’’’’’’’’’’’’&’’’’’’’’’’’’’’’’’’’A’ ’’’’’’’’’’’’’’’’’’’q’!’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’ᐒ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’1‘’’’’’’’’’’’’’’’’’’’’Q‘’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’a‘’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ note atom: ’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’”‘’’’’’’’’’’’’’’’’’’’’Į‘’’’’’’’’’’’’’’’’’’’’į‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’A’’%’’’’’’’’’’’’’’’’’’’q’’)’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’1“’’’’’’’’’’’’’’’’’’’’Q“’’’’’’’’’’’’’’’’’’’’q“’)’’’’’’’’’’’’’’’’’’’”“’’’’’’’’’’’’’’’’’’’’Į“’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’į“’%’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’”’+’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A”’’’’’’’’’’’’’’’’’’’’a”’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’””’ ’’’’’’’’’’’’’’’’’’’є’&’’’’’’’’’’’’’’’’’’’•’ ’’’’’’’’’’’’’’’’’’’1•’!’’’’’’’’’’’’’’’’’’’a•’’’’’’’’’’’’’’’’’’’’•’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’”•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į•’"’’’’’’’’’’’’’’’’’’’–’’’’’’’’’’’’’’’’’’’’1–’#’’’’’’’’’’’’’’’’’’’a–’%’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’‘–’’’’’’’’’’’’’’’’’’’’±–’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į–’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’—’’’’’’’’’’’’’’’’’’’’1—’’’’’’’’’’’’’’’’’’’’Q—’’’’’’’’’’’’’’’’’’’’q—’’’’’’’’’’’’’’’’’’’’‘—’’’’’’’’’’’’’’’’’’’’±—’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ї’(’’’’’’’’’’’’’’’’’’’˜’M’’’’’’’’’’’’’’’’’’’Q˜’M’’’’’’’’’’’’’’’’’’’”˜’M’’’’’’’’’’’’’’’’’’’ń˜’’’’’’’’’’’’’’’’’’’’™’’’’’’’’’’’’’’’’’’’’1™’!’’’’’’’’’’’’’’’’’’’a™’1’’’’’’’’’’’’’’’’’’’”™’,’’’’’’’’’’’’’’’’’’’љ’B’’’’’’’’’’’’’’’’’’’!š’5’’’’’’’’’’’’’’’’’’’aš’(’’’’’’’’’’’’’’’’’’’‘š’@’’’’’’’’’’’’’’’’’’’ᚒ/’’’’’’’’’’’’’’’’’’’!›’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1›’’’’’’’’’’’’’’’’’’’’Q›’’’’’’’’’’’’’’’’’’’’’’ FALSE ’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’q›’’’’’’’’’’’’’’’’’’’’›’<’’’’’’’’’’’’’’’’’’’Į›’"’’’’’’’’’’’’’’’’’’’’’ FALSE ’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’ TRUE ’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ get list: ’’’’’’’’’’’ń›’’’’’’’’’’’’’’’’’’’’œ’!’’’’’’’’’’’’’’’’’’’Aœ’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’’’ s := nil ’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aœ’’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’”œ’’’’’’’’’’’’’’’’’’’’Įœ’#’’’’’’’’’’’’’’’’’’’ńœ’(’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’A’9’’’’’’’’’’’’’’’’’’’’#’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ limit :’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’’’ THEN 53’’’’’’’’’’’”‰’’’’’’’’’’’’’’’’’’’’’’ THEN 1’’’’’’’’’’’’Į‰’’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ up :’’’’’’’’’’’’’’’’ቒG’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ low :’’’’’’’’’’’’’’’1Š’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ x :’’’’’’’’’’’’’’’’’qŠ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Š’J’’’’’’’’’’’’’’’’’’’ኒ"’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’1‹’’’’’’’’’’’’’’’’’’’’Q‹’’’’’’’’’’’’’’’’’’’’q‹’0’’’’’’’’’’’’’’’’’’’’’ END REP;’’’’’’’’’’±‹’%’’’’’’’’’’’’’’’’’’’į‹’.’’’’’’’’’’’’’’’’’’’Œ’6’’’’’’’’’’’’’’’’’’’QŒ’"’’’’’’’’’’’’’’’’’’’’’ j INCR 1’’’’’’’’’Œ’$’’’’’’’’’’’’’’’’’’’±Œ’’’’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’ь’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŒ’:OC b ’’’’’’’’’’’’’’1’7 ’’’’’’’’’’’q’= ’’’’’’’’’±’H’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’!Ž’M’’’’’’’’’’’’’’’’’’’qŽ’F’’’’’’’’’’’’’’’’’’’ĮŽ’L’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’a’M’’’’’’’’’’’’’’’’’’’±’;’’’’’’’’’’’’’’’’’’’ń’D PROC b ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’J’’’’’’’’’’’’’’’’’’’’,’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ѐ’’’’’’’’’’’’’’’’’’’’ń’M’’’’’’’’’’’’’’’’’’’A‘’M’’’’’’’’’’’’’’’’’’’‘‘’3’’’’’’’’’’’’’’’’’’’ё’’’’’’’’’’’’’’’’’’’’ń‘’’’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’a’’G’’’’’’’’’’’’’’’’’’’±’’8’’’’’’’’’’’’’’’’’’’’’ END REP.’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’“’K’’’’’’’’’’’’’’’’’’’a“’J’’’’’’’’’’’’’’’’’’’±“’&’’’’’’’’’’’’’’’’’’’į“’'’’’’’’’’’’’’’’’’’’’”’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A”’’’’’’’’’’’’’’’’’’’’Q”’D’’’’’’’’’’’’’’’’’’’’’ THEN max’’’’’’’’’’””’$’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’є’’’’’’’’’’’’’’’’’’’’į”’D’’’’’’’’’’’’’’’’’’’’’ THEN min’’’’’’’’’’1•’$’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’a•’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’•’'OC b ’’’’’’’’’’’’’’±•’’’’’’’’’’’’’’’’’’’’ѕ’’’’’’’’’’’’’’’’’’’’ń•’#’’’’’’’’’’’’’’’’’’’!–’’’’’’’’’’’’’’’’’’’’A–’’’’’’’’’’’’’’’’’’’’a–’’’’’’’’’’’’’’’’’’’’–’’’’’’’’’’’’’’’’’’’’”–’D PROC b ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į–’(OC b ’’’’’’’’’’’’’’ń–’’’’’’’’’’’’’’’’’’’’—’F’’’’’’’’’’’’’’’’’’’a—’?’’’’’’’’’’’’’’’’’’’±—’’’’’’’’’’’’’’’’’’’’ї’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’’ń—’J’’’’’’’’’’’’’’’’’’’A˜’&’’’’’’’’’’’’’’’’’’’’’ END REP’’’’’’’’’’’’’q˜’D PROC b ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘˜’KOC b ’’’’’’’’’’’’’’ᘒI’’’’’’’’’’’’’’’’’’’1™’’’’’’’’’’’’’’’’’’’’Q™’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’q™’D PROC b ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘™’OC b pl’’’’’’’’’’’’±™’G’’’’’’’’’’’’’’’’’’’š’G’’’’’’’’’’’’’’’’’’’Qš’’’’’’’’’’’’’’’’’’’’qš’B’’’’’’’’’’’’’’’’’’’Įš’’’’’’’’’’’’’’’’’’’’ᚒ’’’’’’’’’’’’’’’’’’’›’’’’’’’’’’’’’’’’’’’’!›’’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A›’’’’’’’’’’’’’’’’’’’’a›’G’’’’’’’’’’’’’’’’’’’±›’2’’’’’’’’’’’’’’’’’’’ń›’’’’’’’’’’’’’’’’’’’’œ’<’’’’’’’’’’’’’’’’’’’Qœ’’’’’’’’’’’’’’’’’’’’qœ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘œ’’’’’’’’’’’’’’’’’’’’±œ’3’’’’’’’’’’’’’’’’’’’ńœ’-’’’’’’’’’’’’’’’’’’’!’2’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’3’’’’’’’’’’’’’’’’’’’Į’-’’’’’’’’’’’’’’’’’’’ń’2’’’’’’’’’’’’’’’’’’’’’ FI.’’’’’’’’’’’’’’’’Į¢’D PROC b ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Až’4’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’”ž’’’’’’’’’’’’’’’’’’’’’’ END PROC add;’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’įž’’’’’’’’’’’’’’’’’’’’Ÿ’,’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ BOOL VAR prt;’’’’’’’’1Ÿ’’’’’’’’’’’’’’’’’’’’QŸ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŸ’&’’’’’’’’’’’’’’’’’’’”Ÿ’’’’’’’’’’’’’’’’’’’’ĮŸ’’’’’’’’’’’’’’’’’’’’្’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’! ’!’’’’’’’’’’’’’’’’’’’Q ’’’’’’’’’’’’’’’’’’’’’’ THEN do lf’’’’’’’’’q ’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’’‘ ’’’’’’’’’’’’’’’’’’’’± ’’’’’’’’’’’’’’’’’’’’’’ PER.’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ do lf :’’’’’’’’’’’’’’’ print line;’’’’’’’’Ń ’’’’’’’’’’’’’’’’’’’’į ’(’’’’’’’’’’’’’’’’’’’’’ THEN vdt;’’’’’’’’’”’’’’’’’’’’’’’’’’’’’’1”’’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’Q”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q”’’’’’’’’’’’’’’’’’’’’‘”’(’’’’’’’’’’’’’’’’’’’Į”’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į”’’’’’’’’’’’’’’’’’’’’’’ IF prt’’’’’’’’’’’’’’¢’4’’’’’’’’’’’’’’’’’’’’’ FI’’’’’’’’’’’’’’’’’’A¢’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q¢’’’’’’’’’’’’/’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’N(* Anpassung an ELAN-Compiler Version 1.7.5 durch I.Ley, 08.04.86 *)’’’’’’’’’’PACKET dynamo plotter > DEFINES initialize plot, new plot line, plot, end of program, b plot scale :’’’’’’’LET maxvalue = 200,’’’’ valuepagelength = 18,’’’’’ max param numb = 10;’’’’’.TYPE PLOTPARAM = STRUCT (TEXT name, id, ’’’’’’. INT scale pointer, ’> REAL lower bound, upper bound, ’’’’’’> BOOL l fixed scale, u fixed scale); ’NROW max param numb PLOTPARAM VAR plotparam;(* Enth. Plotparameter *)’’’’’’’’’’>ROW maxvalue REAL VAR value; (* Ausgabepuffer *)NROW max param numb ROW 5 REAL VAR scale; (* Enth. errechnete Skalierungen *) TEXT VAR headline;’’’’’’’’’’’’REAL VAR pltper, nextplot;’’’’.INT VAR value no, param no, plot line no,’’’’. plot param no, line no;’’’’’’’’’’’’’’INT CONST nil := 0;’’’’’’’’’’’NLET line1 = ".____________.____________.____________.____________.",’’’’’’’’’’N line2 = ". . . . .";’’’’’’’’’’PROC plot one page :’’’’’’’’’’ init plot routine;’’’’’’’’’’’ init plot routine :’’’’’’’’’’ print suppressed output;’’’’ plot line no := nil.’’’’’’’’ plot values : ’’’’’’’’’’’’’’’ INT VAR act value := 1, i;’’ TEXT VAR plot buf;’’’’’’’’’’ plot output (headline);’’’’’. WHILE act value < value no REP’’’’’’’’’’’’’’. FOR i FROM 1 UPTO plot param no REP’’’’’’’’ plot single value’’’’’’’’’. plot output (plot buf + line0 + collision); plot line no INCR 1;’’’’’’’. act value INCR plot param no;’’’’’’’’’’’’’’ act value INCR 1’’’’’’’’’’’> plot buf := text (text (round (value (act value), 2)), 6).’’. (* Erstes Pufferelement enthaelt time *)’’’’. TEXT VAR line0, collision := "";’’’’’’’’’’’’ line0 := act line.’’’’’’’’’’N IF (plot line no MOD 5) = nil (* Prueft, ob gestrichelte oder durch - *)’’’’N THEN line1 (* gezogene Linie gedruckt wird *)’’’’’’’’’’’’ plot single value :’’’’’’’’’’N INT VAR position := int ((x-low)*53.0/(up-low))+1; (*Interpolationsformel*)’ position := limit;’’’’’’’’’’. IF pos ("._ ", line0 SUB position) > nil’’’’> THEN replace (line0, position, plotparam (i).id)’’’’’’’’’’’. ELSE collision CAT plotparam (i).id’’’’’’’’ IF position > 53’’’’’’’’’’’’ ELIF position < 1’’’’’’’’’’’ ELSE position’’’’’’’’’’’’’’N scale (i) (5). ±’’’’’’’’’’’’’’’’’’’’ѝ’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’ń’6’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qž’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įž’(’’’’’’’’’’’’’’’’’’’ńž’’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’1Ÿ’’’’’’’’’’’’’’’’’’’’QŸ’!’’’’’’’’’’’’’’’’’’’Ÿ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ÿ’*’’’’’’’’’’’’’’’’’’’џ’’’’’’’’’’’’’’’’’’’’្!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A ’’’’’’’’’’’’’’’’’’’’a ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’” ’’’’’’’’’’’’’’’’’’’’Į ’$’’’’’’’’’’’’’’’’’’’ń ’’’’’’’’’’’’’’’’’’’’’’ get name ’’’’’’’’”’’’’’’’’’’’’’’’’’’’’1”’’’’’’’’’’’’’’’’’’’’Q”’’’’’’’’’’’’’’’’’’’’’’ get text ’’’’’’’’q”’’’’’’’’’’’’’’’’’’’’‘”’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’±”’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ is letter: ’’’’’’’’’’Ń”’4’’’’’’’’’’’’’’’’’’’¢’H’’’’’’’’’’’’’’’’’’’’’ TRUE ’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’a¢’.’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ get name: ’’’’’’’’’’’‘¢’’’’’’’’’’’’’’’’’’’’±¢’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’Ń¢’$’’’’’’’’’’’’’’’’’’’£’(’’’’’’’’’’’’’’’’’’’1£’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’Q£’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q£’’’’’’’’’’’’’’’’’’’’‘£’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ is digit: ’’’’’’’’’’’Ń£’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¤’’’’’’’’’’’’’’’’’’’’!¤’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A¤’’’’’’’’’’’’’’’’’’’’a¤’6’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ get integer: ’’’’’’’’”¤’’’’’’’’’’’’’’’’’’’’Į¤’’’’’’’’’’’’’’’’’’’’ᤒ$’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’1„’’’’’’’’’’’’’’’’’’’’Q„’’’’’’’’’’’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’‘„’$’’’’’’’’’’’’’’’’’’’Į„’’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’¦’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’!¦’$’’’’’’’’’’’’’’’’’’’Q¦’’’’’’’’’’’’’’’’’’’’q¦’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’‘¦’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±¦’’’’’’’’’’’’’’’’’’’’Ѧ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ get text: ’’’’’’’’’’’ń¦’’’’’’’’’’’’’’’’’’’’§’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’1§’$’’’’’’’’’’’’’’’’’’’a§’’’’’’’’’’’’’’’’’’’’§’&’’’’’’’’’’’’’’’’’’’±§’1’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’ń§’9’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’1Ø’’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QØ’’’’’’’’’’’’’’’’’’’’qØ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ø’’’’’’’’’’’’’’’’’’’’±Ø’!’’’’’’’’’’’’’’’’’’’ᨒ’’’’’’’’’’’’’’’’’’’©’"’’’’’’’’’’’’’’’’’’’1©’’’’’’’’’’’’’’’’’’’’Q©’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’©’#’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±©’’’’’’’’’’’’’’’’’’’’Ń©’"’’’’’’’’’’’’’’’’’’’Ŗ’’’’’’’’’’’’’’’’’’’’!Ŗ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŖ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŖ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ŗ’’’’’’’’’’’’’’’’’’’’±Ŗ’’’’’’’’’’’’’’’’’’’’ŃŖ’,’’’’’’’’’’’’’’’’’’’«’#’’’’’’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ is comment: ’’’’’’’’’1«’’’’’’’’’’’’’’’’’’’’Q«’’’’’’’’’’’’’’’’’’’’’’ TRUE ’’’’’’’’’’’’q«’’’’’’’’’’’’’’’’’’’’‘«’’’’’’’’’’’’’’’’’’’’±«’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’Ń«’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’ TRUE ’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’ń«’’’’’’’’’’’’’’’’’’’’¬’’’’’’’’’’’’’’’’’’’’A¬’*’’’’’’’’’’’’’’’’’’’q¬’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’ TRUE ’’’’’’’’’’ FI ’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’ FALSE ’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¬’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”¬’’’’’’’’’’’’’’’’’’’’Į¬’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ᬒ'’’’’’’’’’’’’’’’’’’’­’’’’’’’’’’’’’’’’’’’’1­’’’’’’’’’’’’’’’’’’’’Q­’’’’’’’’’’’’’’’’’’’’q­’’’’’’’’’’’’’’’’’’’’‘­’’’’’’’’’’’’’’’’’’’’±­’’’’’’’’’’’’’’’’’’’’’’ line; ’’’’’’’’’’’’’Ń­’’’’’’’’’’’’’’’’’’’’ń­’’’’’’’’’’’’’’’’’’’’®’'’’’’’’’’’’’’’’’’’’’A®’6’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’®’&’’’’’’’’’’’’’’’’’’’±®’"’’’’’’’’’’’’’’’’’’’į®’’’’’’’’’’’’’’’’’’’’Æ’’’’’’’’’’’’’’’’’’’’!Æ’’’’’’’’’’’’’’’’’’’’AÆ’!’’’’’’’’’’’’’’’’’’’qÆ’’’’’’’’’’’’’’’’’’’’‘Æ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Æ’#’’’’’’’’’’’’’’’’’’’ᯒ’’’’’’’’’’’’’’’’’’’°’:’’’’’’’’’’’’’’’’’’’A°’)’’’’’’’’’’’’’’’’’’’q°’’’’’’’’’’’’’’’’’’’’”°’’’’’’’’’’’’’’’’’’’’Į°’’’’’’’’’’’’’’’’’’’’į°’’’’’’’’’’’’’’’’’’’’ń°’’’’’’’’’’’’’’’’’’’’±’1’’’’’’’’’’’’’’’’’’’Q±’’’’’’’’’’’’’’’’’’’’q±’0’’’’’’’’’’’’’’’’’’’±±’5’’’’’’’’’’’’’’’’’’’ń±’’’’’’’’’’’’’’’’’’’’²’#’’’’’’’’’’’’’’’’’’’A²’’’’’’’’’’’’’’’’’’’’a²’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘²’(’’’’’’’’’’’’’’’’’’’Į²’’’’’’’’’’’’’’’’’’’’į²’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’!³’N’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’q³’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘³’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±³’M’’’’’’’’’’’’’’’’’’’“’M’’’’’’’’’’’’’’’’’’’Q“’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ sum, ’’’’’’’’’’’’’’”“’’’’’’’’’’’’’’’’’’’’’’ product, ’’’’’’’’’’’’ quotient,’’’’’’’’’’’’ remainder:’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±“’'’’’’’’’’’’’’’’’’’’’į“’’’’’’’’’’’’’’’’’’’’µ’%’’’’’’’’’’’’’’’’’’’1µ’!’’’’’’’’’’’’’’’’’’’aµ’*’’’’’’’’’’’’’’’’’’’‘µ’"’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’Įµ’’’’’’’’’’’’’’’’’’’’ńµ’/’’’’’’’’’’’’’’’’’’’’’ FI ;’’’’’’’’’’’’’’’1¶’’’’’’’’’’’’’’’’’’’’Q¶’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a¶’5’’’’’’’’’’’’’’’’’’’”¶’1’’’’’’’’’’’’’’’’’’’į¶’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’·’*’’’’’’’’’’’’’’’’’’’1·’’’’’’’’’’’’’’’’’’’’Q·’$’’’’’’’’’’’’’’’’’’’·’!’’’’’’’’’’’’’’’’’’’±·’1’’’’’’’’’’’’’’’’’’’ń·’"’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’!ø’’’’’’’’’’’’’’’’’’’’Qø’.’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’ø’’’’’’’’’’’’’’’’’’’’”ø’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įø’1’’’’’’’’’’’’’’’’’’’¹’1’’’’’’’’’’’’’’’’’’’A¹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a¹’1’’’’’’’’’’’’’’’’’’’”¹’1’’’’’’’’’’’’’’’’’’’į¹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŗ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NPACKET character buffer (* Autor : J.Durchholz *) ’N (* Datum : 09.05.1984 *) ’N DEFINES (* Version 1.7.2 *) ’N (* 21.2.83. hey 293, 450,97,361 *)’’’’’’ init char buffer: ’’’’’’’’’’TEXT VAR buffer; ’’’’’’’’’’’’’INT VAR pointer, ’’’’’’’’’’’’’ (* Oberer Grenzwert (der Skalierung) *)’’’’’’’> scale (i) (1). (* Unterer Grenzwert *)’’’’’’’ value (act value + i).’’’’’’N put scales : (* Gibt Skalierung der Variablen aus *)’’’’. INT VAR j := 1, l, scalecounter;’’’’’’’’’’’’ WHILE j <= plot param no REP plot buf := " ";’’’’’’’ FOR l FROM 1 UPTO 4 REP’’’’> plot buf CAT text (text (scale (j) (l)), 13)’’’’’’’’’’’’’’. plot buf CAT text (scale (j) (5));’’’’’’’’’. scalecounter := plotparam (j).scalepointer;> WHILE scalecounter = plotparam (j).scalepointer REP’’’’’’’’. plot buf CAT plotparam (j).id;’’’’’’’’’’’’. UNTIL j > max param numb END REP;’’’’’’’’’’ plot output (plot buf)’’’’’END PROC plot one page;’’’’’’’>PROC b plot scale (TEXT CONST id, INT CONST scale pointer,’’’’> REAL CONST lower bound, upper bound,’’’’’’’> BOOL CONST l fixed scale, u fixed scale) :’N (* Liest Skalierungen vom Zielprogramm ein *)’’’’’’ plot param no INCR 1;’’’’’’’’N plot param (plot param no).id := id; (*Variablenname *)’N plot param (plot param no).scale pointer := scale pointer;(*Zeiger *)’’’’’’’’N plot param (plot param no).lower bound := lower bound; (*Obere Grenze *)’’N plot param (plot param no).upper bound := upper bound; (*Untere Grenze *)’N plot param (plot param no).l fixed scale := l fixed scale;(*Fix-Skalierung*)’> plot param (plot param no).u fixed scale := u fixed scale;’’’END PROC b plot scale;’’’’’’’’PROC gen scales :’’’’’’’’’’’’’N INT VAR act param, i; (* Generiert Skalierungen fuer eine Seite *)’’’’. FOR act param FROM 1 UPTO plot param no REP’’ compute single scale’’’’’’’’ compute single scale :’’’’’’’N REAL VAR max := plotparam(plot param(act param).scale pointer).upper bound,’N min := plotparam(plot param(act param).scale pointer).lower bound;’> IF min > max THEN errorstop ("invalid scale") FI;’’’’’’’’’’’ compute extreme scales;’’’’’ FOR i FROM 1 UPTO 3 REP’’’’’N scale (act param) (i+1) := (scale (act param) (5) - scale (act param) (1))’N * real (i) / 4.0 + scale (act param) (1)’’’’’’’> (* Interpolationsformel *)’’’’’’ compute extreme scales :’’’’’N (* Wenn die Skalierungen nicht gegeben sind, muessen sie berechnet werden.’’’N Zur leichteren Lesbarkeit werden die Skalierungen nach oben bzw. unten’’’’. um jeweils eine Stelle gerundet *)’’’’’’’’. scale (act param) (5) := upper limit;’’’’’’’. scale (act param) (1) := lower limit.’’’’’’’ upper limit :N IF plot param (plot param (act param).scale pointer).u fixed scale’’’’’’’’’’. ELSE round (floor (max) + 0.5, 0)’’’’’’’’’’ lower limit :N IF plot param (plot param (act param).scale pointer).l fixed scale’’’’’’’’’’. ELSE round (floor (min) - 0.5, 0)’’’’’’’’’’END PROC gen scales;’’’’’’’’’’.PROC b initialize plot (TEXT CONST h) :’’’’’’’ headline := h;’’’’’’’’’’ pltper := get pltper;’. plot line no := value pagelength;’’’’’’’’’’’ nextplot := 0.0;’’’’’’’’ value no := nil;’’’’’’’’ line no := nil;’’’’’’’’ plot param no := nil’’’’’’’’’END PROC b initialize plot;’’’.PROC b new plot line (REAL CONST time) :’’’’’’ plt := time >= nextplot;’’’’’N IF plt (* Wird vom Zielprogramm aufgerufen, um *)’’’’’’’’N THEN add (time); (* Zeilenvorschub durchzufuehren *)’’’’’’’’’’’’’’’ line no INCR 1;’’’’’’’’ param no := nil’’’’’’’’N WHILE time >= nextplot REP (* Ist noetig, weil pltper ungleich dt sein *)’’’’. nextplot INCR pltper (* kann *)’’’’’’’’END PROC b new plot line;’’’’’NPROC b end of program : (* Druckt am Schluss evt. noch gepufferte *)’’’N IF plot line no = value page length AND NOT stop request (* Werte aus *)’’’’’ THEN gen scales;’’’’’’’’’’’’ plot one page’’’’’’’’’’END PROC b end of program;’’’’PROC b plot (REAL CONST r) :’’N IF plt (* Wenn genuegend PLOT-Werte gepuffert *)’’’’’’’N THEN get extreme value; (* sind, wird eine neue Seite gedruckt *)’’’’’’’ add (r);’’’’’’’’’’’’’’’N IF param no = plot param no AND line no = value pagelength ’’’’’’’’’’’’ THEN gen scales;’’’’’’ plot one page;’’’ value no := nil;’ line no := nil’’’ get extreme value :’’’’’’’’’’N (* Sucht Maximal bzw. Minimalwert, falls keine festen Skalierungs- *)’’’’’’’> (* grenzen angegeben wurden (im Quellprogramm)*)’’’’’’’’’’’’ param no INCR 1;’’’’’’’’’’’’> INT VAR act pointer := plot param (param no).scalepointer;’’ set lower bound;’’’’’’’’’’’’ set upper bound.’’’’’’’’’’’’ set lower bound :’’’’’’’’’’’’> IF NOT plot param (act pointer).l fixed scale AND’’’’’’’’’’’. r < plot param (act pointer).lower bound’> THEN plot param (act pointer).lower bound := r’’’’’’’’’’’’ set upper bound :’’’’’’’’’’’’> IF NOT plot param (act pointer).u fixed scale AND’’’’’’’’’’’. r > plot param (act pointer).upper bound’> THEN plot param (act pointer).upper bound := r’’’’’’’’’’’’END PROC plot;>PROC add (REAL CONST r) : (* Puffert PLOT-Werte *)’’’’’’’’’’ value no INCR 1;’’’’’’’’’’’’’ value (value no) := r’’’’’’’’END PACKET dynamo plotter;’’’’PACKET dynamo printer’’’’’’’’’. DEFINES initialize print, new line, print :’’TEXT VAR headline;’’’’’’’’’’’’REAL VAR prtper, nextprint;’’’.PROC initialize print (TEXT CONST h) :’’’’’’’’ headline := h;’’’’’’’’’’’’’’’ prtper := get prtper;’’’’’’’’ nextprint := 0.0’’’’’’’’’’’’’END PROC initialize print;’’’’.PROC new line (REAL CONST time) :’’’’’’’’’’’’’ IF time >= nextprint’’’’’’’’’ ELSE prt := FALSE’’’’’’’’’’’ WHILE time >= nextprint REP’’ nextprint INCR prtper’’’’’’’ prt := TRUE;. IF pagefeed necessary OR NOT was print’’’’’’ sys page;’’’’’’’’’’’’’ print headline’’’’’’’’ print (time).’’’’’’’’’’’’’’’ print headline :’’’’’’’’’’’’’. println ("TIME " + headline).’’’’’’END PROC new line;’’’’’’’’’’’’PROC print (REAL CONST r) :’’’> THEN print output (text (text (round (r, 5)), 13))’’’’’’’’’’END PROC printEND PACKET dynamo printer’’’’’N DEFINES b initialize plot, b new plot line, b plot, b end of program,’’’’’’’’END PROC b plot;’’’’’’’’’’’’’’NPACKET dynamo plotter (* Önder.: C.Szymanski, 21.07.88 *)’’’’’’’’’’’> IF b stop request THEN LEAVE plot one page END IF;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ line; INT PROC line nr: ’’’’’’’’’’’’END PROC line nr; ’’’’’’’’’’’’PROC init char buffer: ’’’’’’’ buffer := ""; ’’’’’’’’’’’’’’ pointer := 1; ’’’’’’’’’’’’’’END PROC init char buffer; ’’’.PROC get char (FILE VAR f, TEXT VAR char): ’’’ IF buffer empty THEN ’’’’’’’> try to find nonempty line and put it into buffer; ’’’’’’’’ char := " "; ’’’’’’’’’’’’’ pointer := 1 ’’’’’’’’’’’’’. char := buffer SUB pointer; ’’’’’’’’’’’’’’ pointer INCR 1 ’’’’’’’’’’’buffer empty:  pointer > length (buffer). ’>try to find nonempty line and put it into buffer: ’’’’’’’’’’’’ IF eof (f) THEN ’’’’’’’’’’ char := ""; ’’’’’’’’’’’’ LEAVE get char ’’’’’’’’’ get line (f, buffer); ’’’’ line INCR 1 ’’’’’’’’’’’’’’ UNTIL buffer <> "" PER. ’’’’END PROC get char; ’’’’’’’’’’’END PACKET character buffer; ’NPACKET lisp io (* Autor: J.Durchholz *) ’N (* Datum: 10.09.1982 *) ’N DEFINES (* Version 4.1.3 *) ’N (* Önderung: notebook *)’’N put, note, (* 13.3.86 I. Ley *)’’ verbose lisp output, ’’’’’’’BOOL VAR verbose :: FALSE; ’’’.PROC verbose lisp output (BOOL CONST b): ’’’’’ verbose := b ’’’’’’’’’’’’’’’END PROC verbose lisp output; .BOOL PROC verbose lisp output: ’’’’’’’’’’’’’’’END PROC verbose lisp output; PROC put (SYM CONST sym): ’’’’ IF atom (sym) THEN ’’’’’’’’’ put structure ’’’’’’’’’’’’ IF is named atom (sym) THEN  put (name (sym)) ’’’’’’’’’ ELIF is int pair (sym) THEN  put (int 1 (sym)) ’’’’’’’’ ELIF is text (sym) THEN ’’’’ IF verbose THEN ’’’’’’’’’’. TEXT VAR buffer :: text (sym); ’’’’’’’’’. change all (buffer, """", """"""); ’’’’’ buffer CAT """"; ’’’’’’’ put ("""" + buffer) ’’’’ write (text (sym)) ’’’’’. ELIF is character (sym) THEN ’’’’’’’’’’’’’’’ IF verbose THEN ’’’’’’’’’’ buffer := "'"; ’’’’’’’’’. buffer CAT code (character (sym)); ’’’’’ buffer CAT "'"; ’’’’’’’’ put (buffer) ’’’’’’’’’’’. out (code (character (sym))) ’’’’’’’’’’’. put (""15"UNBEKANNTER_ATOM_TYP"14"") ’’’’’put structure: ’’’’’’’’’’’’’’’ SYM VAR actual node := sym;  put (head (actual node)); . actual node := tail (actual node) ’’’’’’’’. UNTIL atom (actual node) PER; ’’’’’’’’’’’’’’. IF NOT null (actual node) THEN ’’’’’’’’’’’’’ put ("."); ’’’’’’’’’’’’’’’ put (actual node) ’’’’’’’’END PROC put; .PROC put (FILE VAR f, SYM CONST sym): ’’’’’’’’ IF atom (sym) THEN ’’’’’’’’’ put structure ’’’’’’’’’’’’ IF is named atom (sym) THEN  put (f, name (sym)) ’’’’’’ ELIF is int pair (sym) THEN  put (f, int 1 (sym)) ’’’’’ ELIF is text (sym) THEN ’’’’ IF verbose THEN ’’’’’’’’’’. TEXT VAR buffer :: text (sym); ’’’’’’’’’. change all (buffer, """", """"""); ’’’’’ buffer CAT """"; ’’’’’’’ put (f, """" + buffer) ’ put (f, text (sym)) ’’’’. ELIF is character (sym) THEN ’’’’’’’’’’’’’’’ IF verbose THEN ’’’’’’’’’’ buffer := "'"; ’’’’’’’’’. buffer CAT code (character (sym)); ’’’’’ buffer CAT "'"; ’’’’’’’’ put (f, buffer) ’’’’’’’. put (f, code (character (sym))) ’’’’’’’. put ( f, ""15"UNBEKANNTER_ATOM_TYP"14"") ’put structure: ’’’’’’’’’’’’’’’ put (f, "("); ’’’’’’’’’’’’’’ SYM VAR actual node := sym; . put (f, head (actual node)); ’’’’’’’’’’’’’. actual node := tail (actual node) ’’’’’’’’. UNTIL atom (actual node) PER; ’’’’’’’’’’’’’’. IF NOT null (actual node) THEN ’’’’’’’’’’’’’ put (f, "."); ’’’’’’’’’’’’ put (f, actual node) ’’’’’ put (f, ")"). ’’’’’’’’’’’’’’END PROC put;  PROC note (SYM CONST sym): ’’ IF atom (sym) THEN ’’’’’’’’’ note atom  note structure ’’’’’’’’’’’ IF is named atom (sym) THEN  note ( name (sym)) ’’’’’’’ ELIF is int pair (sym) THEN  note (int 1 (sym)) ’’’’’’’ ELIF is text (sym) THEN ’’’’ IF verbose THEN ’’’’’’’’’’. TEXT VAR buffer :: text (sym); ’’’’’’’’’. change all (buffer, """", """"""); ’’’’’ buffer CAT """"; ’’’’’’’ note ( """" + buffer) ’’ note ( text (sym)) ’’’’’. ELIF is character (sym) THEN ’’’’’’’’’’’’’’’ IF verbose THEN ’’’’’’’’’’ buffer := "'"; ’’’’’’’’’. buffer CAT code (character (sym)); ’’’’’ buffer CAT "'"; ’’’’’’’’ note ( buffer) ’’’’’’’’’. note ( code (character (sym))) ’’’’’’’’’. note ( ""15"UNBEKANNTER_ATOM_TYP"14"") ’’’note structure: ’’’’’’’’’’’’’’ note ( "("); ’’’’’’’’’’’’’’’ SYM VAR actual node := sym; . note ( head (actual node)); ’’’’’’’’’’’’’’. actual node := tail (actual node) ’’’’’’’’. UNTIL atom (actual node) PER; ’’’’’’’’’’’’’’. IF NOT null (actual node) THEN ’’’’’’’’’’’’’ note ( "."); ’’’’’’’’’’’’’ note ( actual node) ’’’’’’ note ( ")"). ’’’’’’’’’’’’’’’END PROC note; ’’’’’’’’’’’’’’’.PROC get (FILE VAR f, SYM VAR s): ’’’’’’’’’’’’ initialize scanner (f); ’’’’. IF NOT get s expression (s) THEN ’’’’’’’’’’’. error ("LISP-Ausdruck erwartet") ’’’’’’’’’ scanner postprocessing (f) ’END PROC get; N(**************************** parser for 'get' ****************************) ’LET end of file type = 0, ’’’’ name type = 1, ’’’’’’’’’’’ text type = 2, ’’’’’’’’’’’ character type = 3, ’’’’’’ int type = 4, ’’’’’’’’’’’’ other char type = 5; ’’’’’.BOOL PROC get s expression (SYM VAR s): ’’’’’’N (* The boolean result indicates wether the error has not occurred that *) ’N (* 'get next symbol' was called, but then the symbol was not expected *) ’N (* and thus could not be processed. *) ’ get next symbol; ’’’’’’’’’’’ SELECT symbol type OF ’’’’’’. CASE end of file type: FALSE ’’’’’’’’’’’’’> CASE name type: s := new atom (symbol); TRUE ’’’’’’’’’’’’’. CASE text type: s := sym (symbol); TRUE ’’N CASE character type: s := sym character (code (symbol)); TRUE ’’’’’’’’’’’’> CASE int type: s := sym (int (symbol), -1); TRUE ’’’’’’’’’. CASE other char type: get structure ’’’’’’N OTHERWISE error ("EINLESEFEHLER: unbekannter Symboltyp: " + ’’’’’’’’’’’’’’> text (symbol type)); TRUE ’’’’’’’’’’’’’’’ END SELECT. get structure: ’’’’’’’’’’’’’’’ IF symbol <> "(" THEN ’’’’’’ get list; > IF symbol type <> other char type OR symbol <> ")" THEN ’’. error (">> ) << erwartet"); ’’’’’’’’’’’’ SYM VAR father, son; ’’’’’’’. IF get s expression (son) THEN ’’’’’’’’’’’’’ get list elements; ’’’’’’’get list elements: ’’’’’’’’’’’ father := cons (son, nil); ’ s := father; ’’’’’’’’’’’’’’’. WHILE get s expression (son) REP ’’’’’’’’’’’. set tail (father, cons (son, nil)); ’’’’’’ father := tail (father) ’’> IF symbol type = other char type AND symbol = "." THEN ’’’’’. IF get s expression (son) THEN ’’’’’’’’’’’ set tail (father, son);  get next symbol ’’’’’’’’> error ("LISP-Ausdruck nach dem Punkt erwartet") ’’’’’’’’END PROC get s expression; ’’’N(********************* scanner for 'get x espression' *********************) ’FILE VAR infile; ’’’’’’’’’’’’’.PROC initialize scanner (FILE CONST f): ’’’’’’ infile := f; ’’’’’’’’’’’’’’’ no input errors := TRUE; ’’’ init char buffer; ’’’’’’’’’’. get char (infile, actual char) ’’’’’’’’’’’’’END PROC initialize scanner; ’.PROC scanner postprocessing (FILE VAR f): ’’’’ f := infile .END PROC scanner postprocessinöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööög; ’’’’’’’’’’’’’.TEXT VAR symbol; INT VAR symbol type; ’’’’’’’’PROC get next symbol: ’’’’’’’’ skip blanks; ’’’’’’’’’’’’’’’ IF actual char = "" THEN ’’’ symbol := "DATEIENDE"; ’’’. symbol type := end of file type ’’’’’’’’’’ ELIF is letter THEN ’’’’’’’’ ELIF is digit or sign THEN ’ get integer ’’’’’’’’’’’’’’ ELIF is double quote THEN ’’ ELIF is single quote THEN ’’ get character ’’’’’’’’’’’’ get other char ’’’’’’’’’’’> IF "a" <= actual char AND actual char <= "z" THEN ’’’’’’’’’’N actual char := code (code (actual char) - code ("a") + code ("A")); ’’’’’’. "@" <= actual char AND actual char <= "Z"  symbol type := name type; ’’ symbol := actual char; ’’’’’. get char (infile, actual char); ’’’’’’’’’’. IF is neither letter nor digit THEN ’’’’’’ LEAVE get name ’’’’’’’’’ symbol CAT actual char ’’’is neither letter nor digit: ’> NOT (is letter OR is digit OR is underscore). ’’’’’’’’’’’’’’. "0" <= actual char AND actual char <= "9". ’is underscore: ’’’’’’’’’’’’’’’ actual char = "_". ’’’’’’’’’is digit or sign: ’’’’’’’’’’’’> is digit OR actual char = "+" OR actual char = "-". ’’’’’’’’ symbol type := int type; ’’’ IF actual char = "+" THEN ’’. get char (infile, actual char); ’’’’’’’’’’ skip blanks; ’’’’’’’’’’’’’ symbol := actual char ’’’’ ELIF actual char = "-" THEN  symbol := "-"; ’’’’’’’’’’’. get char (infile, actual char); ’’’’’’’’’’ skip blanks; ’’’’’’’’’’’’’ symbol CAT actual char ’’’ symbol := actual char ’’’’. get char (infile, actual char); ’’’’’’’’’’ IF NOT is digit THEN ’’’’’ LEAVE get integer ’’’’’’ symbol CAT actual char ’’’is double quote: ’’’’’’’’’’’’’ actual char = """". ’’’’’’’’ symbol := ""; ’’’’’’’’’’’’’’ symbol type := text type; ’’. get char (infile, actual char); ’’’’’’’’’’ IF is double quote THEN ’’. get char (infile, actual char); ’’’’’’’’> IF NOT is double quote THEN LEAVE get text ’’’’’’’’’’’’’> ELIF actual char = "" THEN LEAVE get text (*hey*)’’’’’ symbol CAT actual char ’’’is single quote: ’’’’’’’’’’’’’ actual char = "'". ’’’’’’’’’get character: ’’’’’’’’’’’’’’’. symbol type := character type; ’’’’’’’’’’’’’ get char (infile, symbol); ’. get char (infile, actual char); ’’’’’’’’’’’’ IF actual char <> "'" THEN ’. error (">> ' << erwartet") ’’’’’’’’’’’’’’’. get char (infile, actual char) ’’’’’’’’’’’get other char: ’’’’’’’’’’’’’’. symbol type := other char type; ’’’’’’’’’’’’ symbol := actual char; ’’’’’. get char (infile, actual char). ’’’’’’’’’’’’END PROC get next symbol; ’’’’TEXT VAR actual char; ’’’’’’’’PROC skip blanks: ’’’’’’’’’’’’ INT VAR comment depth :: 0; . WHILE is comment OR actual char = " " REP ’’. get char (infile, actual char) ’’’’’’’’’’’ IF actual char = "{" THEN ’’ comment depth INCR 1; ’’’’ ELIF actual char = "}" THEN  IF comment depth = 0 THEN  error (">> { << fehlt")  comment depth DECR 1 ’’’ IF comment depth > 0 THEN . IF actual char = "" THEN ’’’’’’’’’’’’’’’. error ("DATEIENDE im Kommentar"); ’’’’ FALSE END PROC skip blanks; ’’’’’’’’BOOL VAR no input errors; ’’’’FILE VAR errors; ’’’’’’’’’’’’’.PROC error (TEXT CONST error message): ’’’’’’’ out ("FEHLER in Zeile "); ’’ out (text (line nr)); ’’’’’’ out (" bei >> "); ’’’’’’’’’’ out (symbol); ’’’’’’’’’’’’’’ out (" << : "); ’’’’’’’’’’’’ out (error message); ’’’’’’’ IF no input errors THEN ’’’’ no input errors := FALSE; . errors := notefile; modify(errors);’’’’’’’> headline (errors, "Einlesefehler"); output(errors)’’’’’’’’. write (errors, "FEHLER in Zeile "); ’’’’’’’’. write (errors, text (line nr)); ’’’’’’’’’’’’ write (errors, " bei >> ");  write (errors, symbol); ’’’’ write (errors, " << : "); ’’. write (errors, error message); ’’’’’’’’’’’’’ line (errors) ’’’’’’’’’’’’’’END PROC error; ’’’’’’’’’’’’’’.PROC get (SYM VAR sym): (*hey*)’’’’’’’’’’’ disable stop; ’’’’’’’’’’’’’’> FILE VAR in :: sequential file (modify, "LISP INPUT"), ’’’’. out :: notefile; modify (out);’’’’’. headline (out,"LISP OUTPUT");’’’’’’’’’’’’’’’ headline (in, "LISP INPUT"); noteedit (in);’’’’’’’’’’’’’’ input (in);  get (in, sym); ’’’’’’’’’’’’’> WHILE NOT no input errors AND NOT is error REP ’’’’’’’’’’’’’ modify (errors);’’’’’’’’’’> headline (errors, " LISP-Fehlermeldungen"); ’’’’’’’’’’’’’’> headline (in, " Bitte KORREKTEN LISP-Ausdruck"); ’’’’’’’’’ noteedit (in); ’’’’’’’’’’’. headline (errors, "notebook"); ’’’’’’’’’’’ input (in); ’’’’’’’’’’’’’’ get (in, sym) ’’’’’’’’’’’’END PROC get; .PROC get all (FILE VAR f, SYM VAR sym): ’’’’’’ get (f, sym); ’’’’’’’’’’’’’’ skip blanks; ’’’’’’’’’’’’’’’ IF NOT eof (infile) THEN ’’’N error ("Hinter dem letzten Symbol des LISP-Ausdruck stehen noch Zeichen") END PROC get all; ’’’’’’’’’’’’END PACKET lisp io; ’’’’’’’’’’NPACKET lisp integer (* Autor: J.Durchholz *) ’N (* Datum: 30.08.1982 *) ’N DEFINES (* Version 1.1.2 *) ’ difference, .SYM PROC sum (SYM CONST summand list): ’’’’’’’ INT VAR result := 0; ’’’’’’’. SYM VAR list rest := summand list; ’’’’’’’’’. WHILE NOT atom (list rest) REP ’’’’’’’’’’’’’. result INCR int 1 (head (list rest)); ’’’’. list rest := tail (list rest) ’’’’’’’’’’’’. IF NOT null (list rest) THEN ’’’’’’’’’’’’’’’> error stop ("Summandenliste endet falsch") ’’’’’’’’’’’’’’’ sym (result, -1) ’’’’’’’’’’’END PROC sum; >SYM PROC difference (SYM CONST minuend, subtrahend): ’’’’’’’’’> sym (int 1 (minuend) - int 1 (subtrahend), -1) ’’’’’’’’’’’’’END PROC difference; ’’’’’’’’’.SYM PROC product (SYM CONST factor list): ’’’’ INT VAR result := 1; ’’’’’’’. SYM VAR list rest := factor list; ’’’’’’’’’’. WHILE NOT atom (list rest) REP ’’’’’’’’’’’’’> result := result * int 1 (head (list rest)); ’’’’’’’’’’’’’. list rest := tail (list rest) ’’’’’’’’’’’’. IF NOT null (list rest) THEN ’’’’’’’’’’’’’’’. error stop ("Faktorenliste endet falsch")  sym (result, -1) ’’’’’’’’’’’END PROC product; ’’’’’’’’’’’’>SYM PROC quotient (SYM CONST dividend, divisor): ’’’’’’’’’’’’’> sym (int 1 (dividend) DIV int 1 (divisor), -1) ’’’’’’’’’’’’’END PROC quotient; ’’’’’’’’’’’>SYM PROC remainder(SYM CONST dividend, divisor): ’’’’’’’’’’’’’> sym (int 1 (dividend) MOD int 1 (divisor), -1) ’’’’’’’’’’’’’END PROC remainder;’’’’’’’’’’’END PACKET lisp integer; ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö@@’’’’lisp.3’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’UĄ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Ńßa€ė’’žš’’’’ššM’’’’’’lisp.3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’a€’M’’’’’’’’’’’’’’’’’’’±€’M’’’’’’’’’’’’’’’’’’’’M’’’’’’’’’’’’’’’’’’’Q’M’’’’’’’’’’’’’’’’’’’”’L’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‚’@’’’’’’’’’’’’’’’’’’’a‚’%’’’’’’’’’’’’’’’’’’’’’ input (f); ’’’’’’’’‘‚’’’’’’’’’’’’’’’’’’’’±‚’’’’’’’’’’’’’’’’’’’’т’’’’’’’’’’’’’’’’’’’’ń‚’$’’’’’’’’’’’’’’’’’’’!ƒ’’’’’’’’’’’’’’’’’’’’Aƒ’0’’’’’’’’’’’’’’’’’’’ƒ’%’’’’’’’’’’’’’’’’’’’±ƒ’’’’’’’’’’’’’’’’’’’’у’’’’’’’’’’’’’’’’’’’’ńƒ’0’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ PER ’’’’’’’’’’’’’’’1„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q„’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’”„’(’’’’’’’’’’’’’’’’’’’ф’&’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’!…’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q…’’’’’’’’’’’’’’’’’’’’q…’*’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’”…’’’’’’’’’’’’’’’’’’’’Į…’’’’’’’’’’’’’’’’’’’’ń…’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’1†’’’’’’’’’’’’’’’’’’’’Q†’’’’’’’’’’’’’’’’’’’’’’ line (f) ’’’’’’’’q†’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į†’’’’’’’’’’’’’’’’’’’’ᆒ’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’‡’(’’’’’’’’’’’’’’’’’’’1‡’#’’’’’’’’’’’’’’’’’’’a‡’’’’’’’’’’’’’’’’’’’’‡’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±‡’’’’’’’’’’’’’’’’’’’’ч’*’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’ˆ’’’’’’’’’’’’’’’’’’’’!ˆ’’’’’’’’’’’’’’’’’’’’Qˆ’’’’’’’’’’’’’’’’’’’’qˆ’’’’’’’’’’’’’’’’’’’’‘ˆ’’’’’’’’’’’’’’’’’’’’±ˆ’’’’’’’’’’’’’’’’’’’’ш’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‰’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q‰’M’’’’’’’’’’’’’’’’’’’”‰’M’’’’’’’’’’’’’’’’’’’ń‰’M’’’’’’’’’’’’’’’’’’’’’ evalquote,’’’’’’’’’’’ apply, ’’’’’’’’’’’’’’ eval, ’’’’’’’’’’’’’’’ try: ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AŠ’L’’’’’’’’’’’’’’’’’’’‘Š’H’’’’’’’’’’’’’’’’’’’ኒB’’’’’’’’’’’’’’’’’’’1‹’M’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’”‹’’’’’’’’’’’’’’’’’’’’Į‹’’’’’’’’’’’’’’’’’’’’į‹’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’!Œ’’’’’’’’’’’’’’’’’’’’AŒ’’’’’’’’’’’’’’’’’’’’aŒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’”Œ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŒ’’’’’’’’’’’’’’’’’’’’ጒ*’’’’’’’’’’’’’’’’’’’’(’’’’’’’’’’’’’’’’’’’A’(’’’’’’’’’’’’’’’’’’’q’.’’’’’’’’’’’’’’’’’’’”’2’’’’’’’’’’’’’’’’’’’į’(’’’’’’’’’’’’’’’’’’’Ž’#’’’’’’’’’’’’’’’’’’’AŽ’$’’’’’’’’’’’’’’’’’’’qŽ’ ’’’’’’’’’’’’’’’’’’’”Ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ю’0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’Q’3’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’я’’’’’’’’’’’’’’’’’’’’ń’?’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’’’ new head:’’’’’’’’’’’’A’-’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘’;’’’’’’’’’’’’’’’’’’’ѐ’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’‘’+’’’’’’’’’’’’’’’’’’’A‘’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a‘’=’’’’’’’’’’’’’’’’’’’”‘’’’’’’’’’’’’’’’’’’’’Į‘’.’’’’’’’’’’’’’’’’’’’ń‘’3’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’1’’’’’’’’’’’’’’’’’’’’’Q’’"’’’’’’’’’’’’’’’’’’’’’)’’’’’’’’’’’’’’’’’’’±’’L’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!“’'’’’’’’’’’’’’’’’’’’’Q“’!’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’“’&’’’’’’’’’’’’’’’’’’’±“’3’’’’’’’’’’’’’’’’’’’ń“’J’’’’’’’’’’’’’’’’’’’A”’’’’’’’’’’’’’’’’’’’’q”’C’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’Į”’5’’’’’’’’’’’’’’’’’’’•’4’’’’’’’’’’’’’’’’’’’A•’6’’’’’’’’’’’’’’’’’’’•’<’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’Į•’K’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ PER. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’–’M’’’’’’’’’’’’’’’’’’’a–’9’’’’’’’’’’’’’’’’’’’”–’1’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’į–’-’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’—’.’’’’’’’’’’’’’’’’’’’A—’8’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’—’*’’’’’’’’’’’’’’’’’’’±—’’’’’’’’’’’’’’’’’’’’ї’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’ń—’’’’’’’’’’’’’’’’’’’’˜’7’’’’’’’’’’’’’’’’’’’Q˜’*’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’˜’,’’’’’’’’’’’’’’’’’’’±˜’B’’’’’’’’’’’’’’’’’’’™’5’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A™’5’’’’’’’’’’’’’’’’’’’™’!’’’’’’’’’’’’’’’’’’’±™’’’’’’’’’’’’’’’’’’’’љ’B’’’’’’’’’’’’’’’’’’’!š’G’’’’’’’’’’’’’’’’’’’qš’.’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’”š’’’’’’’’’’’’’’’’’’’’Įš’&’’’’’’’’’’’’’’’’’’’ńš’0’’’’’’’’’’’’’’’’’’’1›’(’’’’’’’’’’’’’’’’’’’a›’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘›’J’’’’’’’’’’’’’’’’’’’į›’!’’’’’’’’’’’’’’’’’’’œ’’’’’’’’’’’’’’’’’’’’1œ’/’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’qœ’3’’’’’’’’’’’’’’’’’’’±œ’/’’’’’’’’’’’’’’’’’’’ńœ’!’’’’’’’’’’’’’’’’’’’!’+’’’’’’’’’’’’’’’’’’’Q’.’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±’+’’’’’’’’’’’’’’’’’’’į’%’’’’’’’’’’’’’’’’’’’ž’/’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’Qž’7’’’’’’’’’’’’’’’’’’’‘ž’5’’’’’’’’’’’’’’’’’’’ў’E’’’’’’’’’’’’’’’’’’’!Ÿ’4’’’’’’’’’’’’’’’’’’’aŸ’’’’’’’’’’’’’’’’’’’’‘Ÿ’!’’’’’’’’’’’’’’’’’’’ĮŸ’I’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’ ’;’’’’’’’’’’’’’’’’’’’Q ’"’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’” ’8’’’’’’’’’’’’’’’’’’’į ’’’’’’’’’’’’’’’’’’’’”’)’’’’’’’’’’’’’’’’’’’A”’?’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’‘”’)’’’’’’’’’’’’’’’’’’’Į”’B’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’¢’ ’’’’’’’’’’’’’’’’’’’A¢’8’’’’’’’’’’’’’’’’’’’¢’’’’’’’’’’’’’’’’’’’’”¢’'’’’’’’’’’’’’’’’’’’’Ń¢’3’’’’’’’’’’’’’’’’’’’£’!’’’’’’’’’’’’’’’’’’’A£’;’’’’’’’’’’’’’’’’’’’£’’’’’’’’’’’’’’’’’’’’”£’'’’’’’’’’’’’’’’’’’’’Ń£’7’’’’’’’’’’’’’’’’’’’¤’!’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’A¤’+’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q¤’’’’’’’’’’’’’’’’’’’’‘¤’)’’’’’’’’’’’’’’’’’’’Į¤’’’’’’’’’’’’’’’’’’’’ń¤’)’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!„’!’’’’’’’’’’’’’’’’’’’Q„’*’’’’’’’’’’’’’’’’’’’„’)’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’±„’)’’’’’’’’’’’’’’’’’’’į„’;’’’’’’’’’’’’’’’’’’’!¦’I’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q¦’’’’’’’’’’’’’’’’’’’’‘¦’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’Ѧ’0’’’’’’’’’’’’’’’’’’’§’’’’’’’’’’’’’’’’’’’’1§’-’’’’’’’’’’’’’’’’’’’a§’?’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±§’’’’’’’’’’’’’’’’’’’’ѧ’)’’’’’’’’’’’’’’’’’’’Ø’A’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QØ’8’’’’’’’’’’’’’’’’’’’‘Ø’’’’’’’’’’’’’’’’’’’’±Ø’-’’’’’’’’’’’’’’’’’’’ᨒ2’’’’’’’’’’’’’’’’’’’!©’*’’’’’’’’’’’’’’’’’’’Q©’4’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’‘©’(’’’’’’’’’’’’’’’’’’’Į©’.’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń©’;’’’’’’’’’’’’’’’’’’’1Ŗ’’’’’’’’’’’’’’’’’’’’QŖ’-’’’’’’’’’’’’’’’’’’’Ŗ’.’’’’’’’’’’’’’’’’’’’±Ŗ’*’’’’’’’’’’’’’’’’’’’įŖ’'’’’’’’’’’’’’’’’’’’’«’F’’’’’’’’’’’’’’’’’’’a«’?’’’’’’’’’’’’’’’’’’’±«’’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’į«’(’’’’’’’’’’’’’’’’’’’¬’.’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A¬’’’’’’’’’’’’’’’’’’’’a¬’’’’’’’’’’’’’’’’’’’’¬’=’’’’’’’’’’’’’’’’’’’Į¬’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’­’-’’’’’’’’’’’’’’’’’’’1­’’’’’’’’’’’’’’’’’’’’Q­’-’’’’’’’’’’’’’’’’’’’­’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į­’1’’’’’’’’’’’’’’’’’’’®’&’’’’’’’’’’’’’’’’’’’1®’-’’’’’’’’’’’’’’’’’’’a®’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”®’’’’’’’’’’’’’’’’’’’’Į®’$’’’’’’’’’’’’’’’’’’’ń®’&’’’’’’’’’’’’’’’’’’’!Æ’'’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’QÆ’0’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’‘Æ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Æ’)’’’’’’’’’’’’’’’’’’’ᯒ(’’’’’’’’’’’’’’’’’’’°’%’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A°’’’’’’’’’’’’’’’’’’’’a°’"’’’’’’’’’’’’’’’’’’’‘°’#’’’’’’’’’’’’’’’’’’’Į°’=’’’’’’’’’’’’’’’’’’’±’4’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’A±’)’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q±’ ’’’’’’’’’’’’’’’’’’’”±’’’’’’’’’’’’’’’’’’’’Į±’’’’’’’’’’’’’’’’’’’’į±’#’’’’’’’’’’’’’’’’’’’²’’’’’’’’’’’’’’’’’’’’1²’’’’’’’’’’’’’’’’’’’’Q²’ ’’’’’’’’’’’’’’’’’’’²’!’’’’’’’’’’’’’’’’’’’±²’!’’’’’’’’’’’’’’’’’’’į²’’’’’’’’’’’’’’’’’’’’³’’’’’’’’’’’’’’’’’’’’!³’’’’’’’’’’’’’’’’’’’’A³’’’’’’’’’’’’’’’’’’’’a³’+’’’’’’’’’’’’’’’’’’’‘³’ ’’’’’’’’’’’’’’’’’’’Į³’’’’’’’’’’’’’’’’’’’’į³’’’’’’’’’’’’’’’’’’’’“’’’’’’’’’’’’’’’’’’’’!“’#’’’’’’’’’’’’’’’’’’’Q“’’’’’’’’’’’’’’’’’’’’q“’’’’’’’’’’’’’’’’’’’’‘“’’’’’’’’’’’’’’’’’’’’±“’’’’’’’’’’’’’’’’’’’’Ń“’’’’’’’’’’’’’’’’’’’’ń“’’’’’’’’’’’’’’’’’’’’µ’’’’’’’’’’’’’’’’’’’’1µ’’’’’’’’’’’’’’’’’’’’Qµ’’’’’’’’’’’’’’’’’’’’qµ’’’’’’’’’’’’’’’’’’’’‘µ’’’’’’’’’’’’’’’’’’’’±µ’ ’’’’’’’’’’’’’’’’’’’įµ’!’’’’’’’’’’’’’’’’’’’¶’!’’’’’’’’’’’’’’’’’’’A¶’’’’’’’’’’’’’’’’’’’’a¶’’’’’’’’’’’’’’’’’’’’¶’’’’’’’’’’’’’’’’’’’’”¶’’’’’’’’’’’’’’’’’’’’Ѷ’ ’’’’’’’’’’’’’’’’’’’·’ ’’’’’’’’’’’’’’’’’’’1·’’’’’’’’’’’’’’’’’’’’Q·’’’’’’’’’’’’’’’’’’’’q·’’’’’’’’’’’’’’’’’’’’‘·’’’’’’’’’’’’’’’’’’’’±·’’’’’’’’’’’’’’’’’’’’Ń·’’’’’’’’’’’’’’’’’’’’ń·’’’’’’’’’’’’’’’’’’’’ø’’’’’’’’’’’’’’’’’’’’1ø’’’’’’’’’’’’’’’’’’’’Qø’’’’’’’’’’’’’’’’’’’’qø’’’’’’’’’’’’’’’’’’’’‘ø’’’’’’’’’’’’’’’’’’’’±ø’M’’’’’’’’’’’’’’’’’’’¹’<’’’’’’’’’’’’’’’’’’’A¹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q¹’’’’’’’’’’’’’’’’’’’’q¹’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”¹’’’’’’’’’’’’’’’’’’’’Į¹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į¹’’’’’’’’’’’’’’’’’’’’’’ next atom. ’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŗ’’’’’’’’’’’’’’’’’’’’!ŗ’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qŗ’’’’’’’’’’’’’’’’’’’’qŗ’/’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ŗ’’’’’’’’’’’’’’’’’’’’Ńŗ’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’»’’’’’’’’’’’’’’’’’’’’!»’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q»’’’’’’’’’’’’’’’’’’’’‘»’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±»’’’’’’’’’’’’’’’’’’’’Ń»’ ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ call flag: ’’’’’’’’’’¼’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q¼’’’’’’’’’’’’’’’’’’’’q¼’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”¼’’’’’’’’’’’’’’’’’’’’Ѽ’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’½’’’’’’’’’’’’’’’’’’’’!½’9’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ call apply: ’’’’’’’’’a½’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ call eval: ’’’’’’’’’’‘½’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ call try: ’’’’’’’’’’’±½’&’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į½’’’’’’’’’’’’’’’’’’’’’’ alist. ’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’¾’’’’’’’’’’’’’’’’’’’’!¾’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ call head: ’’’’’’’’’’Q¾’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q¾’’’’’’’’’’’’’’’’’’’’‘¾’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ call tail: ’’’’’’’’’’Į¾’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į¾’’’’’’’’’’’’’’’’’’’’æ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ call cons: ’’’’’’’’’’1æ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ call eq: ’’’’’’’’’’’’Qæ’B’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”æ’’’’’’’’’’’’’’’’’’’’±æ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ńæ’’’’’’’’’’’’’’’’’’’’įæ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ call null: ’’’’’’’’’’Ą’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AĄ’’’’’’’’’’’’’’’’’’’’QĄ’=’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ą’’’’’’’’’’’’’’’’’’’’±Ą’F’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’!Į’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QĮ’’’’’’’’’’’’’’’’’’’’qĮ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Į’’’’’’’’’’’’’’’’’’’’”Į’@’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńĮ’’’’’’’’’’’’’’’’’’’’Ā’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ā’’’’’’’’’’’’’’’’’’’’QĀ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qĀ’’’’’’’’’’’’’’’’’’’’‘Ā’E’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įĀ’’’’’’’’’’’’’’’’’’’’Ć’(’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ć’’’’’’’’’’’’’’’’’’’’QĆ’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ call is int: ’’’’’’’’Ć’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃĆ’’’’’’’’’’’’’’’’’’’’įĆ’#’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ä’’’’’’’’’’’’’’’’’’’’!Ä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ call sum: ’’’’’’’’’’’AÄ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aÄ’’’’’’’’’’’’’’’’’’’’Ä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ä’’’’’’’’’’’’’’’’’’’’±Ä’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃÄ’’’’’’’’’’’’’’’’’’’’ńÄ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Å’’’’’’’’’’’’’’’’’’’’1Å’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ call equal:’’’’’’’’’’QÅ’D’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ call trace:’’’’’’’’’’”Å’’’’’’’’’’’’’’’’’’’’ĮÅ’7’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ę’’’’’’’’’’’’’’’’’’’’!Ę’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AĘ’’’’’’’’’’’’’’’’’’’’aĘ’J’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’arg 1: ’’’’’’’’’’’’’’±Ę’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’arg 2: ’’’’’’’’’’’’’’ŃĘ’"’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’arg 3: ’’’’’’’’’’’’’’Ē’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’arg 4: ’’’’’’’’’’’’’’1Ē’0’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qĒ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘Ē’)’’’’’’’’’’’’’’’’’’’ĮĒ’’’’’’’’’’’’’’’’’’’’įĒ’8’’’’’’’’’’’’’’’’’’’!Č’;’’’’’’’’’’’’’’’’’’’aČ’2’’’’’’’’’’’’’’’’’’’’’ FI . ’’’’’’’’’’’’’’”Č’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮČ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įČ’-’’’’’’’’’’’’’’’’’’’É’’’’’’’’’’’’’’’’’’’’1É’’’’’’’’’’’’’’’’’’’’QÉ’’’’’’’’’’’’’’’’’’’’qÉ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘É’8’’’’’’’’’’’’’’’’’’’ŃÉ’’’’’’’’’’’’’’’’’’’’ńÉ’0’’’’’’’’’’’’’’’’’’’1Ź’(’’’’’’’’’’’’’’’’’’’aŹ’A’’’’’’’’’’’’’’’’’’’’’ FI;’’’’’’’’’’’’’’’’±Ź’’’’’’’’’’’’’’’’’’’’ŃŹ’'’’’’’’’’’’’’’’’’’’’Ė’A’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’QĖ’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’qĖ’:’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ė’<’’’’’’’’’’’’’’’’’’’ńĖ’7’’’’’’’’’’’’’’’’’’’1Ģ’+’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’aĢ’’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ģ’(’’’’’’’’’’’’’’’’’’’±Ģ’)’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įĢ’’’’’’’’’’’’’’’’’’’’Ķ’’’’’’’’’’’’’’’’’’’’!Ķ’’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’AĶ’’’’’’’’’’’’’’’’’’’’aĶ’H’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’±Ķ’ ’’’’’’’’’’’’’’’’’’’įĶ’8’’’’’’’’’’’’’’’’’’’!Ī’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’AĪ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aĪ’0’’’’’’’’’’’’’’’’’’’”Ī’7’’’’’’’’’’’’’’’’’’’įĪ’’’’’’’’’’’’’’’’’’’’Ļ’’’’’’’’’’’’’’’’’’’’!Ļ’?’’’’’’’’’’’’’’’’’’’qĻ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ļ’2’’’’’’’’’’’’’’’’’’’ĮĻ’9’’’’’’’’’’’’’’’’’’’Š’,’’’’’’’’’’’’’’’’’’’1Š’4’’’’’’’’’’’’’’’’’’’qŠ’-’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’”Š’"’’’’’’’’’’’’’’’’’’’ŃŠ’’’’’’’’’’’’’’’’’’’’ńŠ’$’’’’’’’’’’’’’’’’’’’!Ń’<’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’aŃ’*’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’‘Ń’,’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’’’ nil. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŃ’%’’’’’’’’’’’’’’’’’’’ńŃ’’’’’’’’’’’’’’’’’’’’Ņ’;’’’’’’’’’’’’’’’’’’’QŅ’’’’’’’’’’’’’’’’’’’’qŅ’B’’’’’’’’’’’’’’’’’’’ĮŅ’’’’’’’’’’’’’’’’’’’’įŅ’’’’’’’’’’’’’’’’’’’’Ó’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’!Ó’@’’’’’’’’’’’’’’’’’’’qÓ’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’‘Ó’’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’’’±Ó’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ŃÓ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńÓ’8’’’’’’’’’’’’’’’’’’’1Ō’’’’’’’’’’’’’’’’’’’’QŌ’,’’’’’’’’’’’’’’’’’’’’’ REP ’’’’’’’’’’’’’’’Ō’'’’’’’’’’’’’’’’’’’’’±Ō’H’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’Õ’"’’’’’’’’’’’’’’’’’’’1Õ’!’’’’’’’’’’’’’’’’’’’aÕ’L’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’±Õ’6’’’’’’’’’’’’’’’’’’’’’ PER; ’’’’’’’’’’’’’’’’ nil. ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńÕ’’’’’’’’’’’’’’’’’’’’Ö’’’’’’’’’’’’’’’’’’’’1Ö’#’’’’’’’’’’’’’’’’’’’aÖ’/’’’’’’’’’’’’’’’’’’’”Ö’:’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’įÖ’’’’’’’’’’’’’’’’’’’’×’-’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ actual pair: ’’’’’’’’1×’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Q×’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q×’ ’’’’’’’’’’’’’’’’’’’”×’"’’’’’’’’’’’’’’’’’’’’’ TRUE ’’’’’’’’’’’’Ń×’%’’’’’’’’’’’’’’’’’’’’’ FALSE ’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’Ų’/’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’AŲ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aŲ’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±Ų’M’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’. ’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ł’ ’’’’’’’’’’’’’’’’’’’1Ł’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŁ’’’’’’’’’’’’’’’’’’’’qŁ’%’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’”Ł’’’’’’’’’’’’’’’’’’’’ĮŁ’’’’’’’’’’’’’’’’’’’’įŁ’$’’’’’’’’’’’’’’’’’’’Ś’-’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’AŚ’3’’’’’’’’’’’’’’’’’’’Ś’1’’’’’’’’’’’’’’’’’’’ĮŚ’+’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńŚ’’’’’’’’’’’’’’’’’’’’!Ū’!’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŪ’(’’’’’’’’’’’’’’’’’’’Ū’’’’’’’’’’’’’’’’’’’’”Ū’$’’’’’’’’’’’’’’’’’’’ŃŪ’-’’’’’’’’’’’’’’’’’’’’’ FI; ’’’’’’’’’’’’’Ü’3’’’’’’’’’’’’’’’’’’’AÜ’1’’’’’’’’’’’’’’’’’’’Ü’'’’’’’’’’’’’’’’’’’’’±Ü’3’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ńÜ’’’’’’’’’’’’’’’’’’’’Ż’’’’’’’’’’’’’’’’’’’’AŻ’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’qŻ’’’’’’’’’’’’’’’’’’’’‘Ż’$’’’’’’’’’’’’’’’’’’’ĮŻ’4’’’’’’’’’’’’’’’’’’’’’ FI. ’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1Ž’’’’’’’’’’’’’’’’’’’’aŽ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Ž’’’’’’’’’’’’’’’’’’’’”Ž’2’’’’’’’’’’’’’’’’’’’įŽ’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ß’$’’’’’’’’’’’’’’’’’’’Aß’>’’’’’’’’’’’’’’’’’’’ß’.’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’±ß’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NPACKET lisp heap maintenance (* Autor: J.Durchholz *) ’N (* Datum: 09.05.1984 *) ’N DEFINES (* Version 1.7.2 *) ’N (* Testhilfe *) ’N create lisp system, (* hey, 02.3.83 : 121,334,542,732 *) ’’ dump oblist: ’’’’’’’’’’’’’’’NPROC create lisp system (FILE VAR f, DATASPACE CONST new heap): ’’’’’’’’’’’’’’. initialize lisp system (new heap); ’’’’’’’’’ WHILE NOT eof (f) REP ’’’’’’ TEXT VAR name; ’’’’’’’’’’’ get (f, name); ’’’’’’’’’’’. SYM CONST s :: new atom (name); ’’’’’’’’’’ get (f, name); ’’’’’’’’’’’> SYM CONST property name :: new atom (name); ’’’’’’’’’’’’’’. IF NOT null (property name) THEN ’’’’’’’’’ SYM VAR property; ’’’’’’ get (f, property); ’’’’’> add property (s, property name, property) ’’’’’’’’’’’’’’END PROC create lisp system; ’.PROC dump oblist (FILE VAR f): ’’’’’’’’’’’’’’’ begin oblist dump; ’’’’’’’’’. SYM CONST actual atom :: next atom; ’’’’’’. put line (f, name (actual atom)); ’’’’’’’’ dump property list ’’’’’’’. UNTIL null (actual atom) PER. ’’’’’’’’’’’’’’dump property list: ’’’’’’’’’’. begin property list dump (actual atom); ’’’’ SYM VAR id, value; ’’’’’’’. next property (id, value); ’’’’’’’’’’’’’’’ write (f, " "); ’’’’’’’’’ write (f, name (id)); ’’’’ write (f, " "); ’’’’’’’’’’ write (f, name (value)); ’. UNTIL null (id) AND null (value) PER. ’’’’’’END PROC dump oblist; ’’’’’’’’PROC dump oblist: ’’’’’’’’’’’’ begin oblist dump; ’’’’’’’’’. SYM CONST actual atom :: next atom; ’’’’’’. put line (name (actual atom)); ’’’’’’’’’’’ dump property list ’’’’’’’. UNTIL null (actual atom) PER. ’’’’’’’’’’’’’’dump property list: ’’’’’’’’’’. begin property list dump (actual atom); ’’’’ SYM VAR id, value; ’’’’’’’. next property (id, value); ’’’’’’’’’’’’’’’ out (" "); ’’’’’’’’’’’’’’ out (name (id)); ’’’’’’’’’ out (" "); ’’’’’’’’’’’’’’’ put line (name (value)); ’. UNTIL null (id) AND null (value) PER. ’’’’’’END PROC dump oblist; ’’’’’’’’.END PACKET lisp heap maintenance; ’’’’’’’’’’’’NPACKET lisp interpreter (* Autor: J.Durchholz *) ’N (* Datum: 27.12.1982 *) ’N DEFINES (* Version 3.1.7 *) ’N(* SYM-objects used by the interpreter. They all point to constant structure’’N within the heap. As their address may change during garbage collection,’’’’’’N it must be possible to correct the references to them made by the’’’’’’’’’’’’N SYM-objects. That is the reason why they are declared VAR instead of CONST*)’SYM VAR lambda constant, ’’’’’ label constant, ’’’’’’ quote constant, ’’’’’’ function constant, ’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö indefinite constant, ’ apval constant, ’’’’’’ true constant, ’’’’’’’ false constant; ’’’’’’SYM VAR errors; ’’’’’’’’’’’’’’BOOL VAR trace :: FALSE; ’’’’’PROC initialize constants: ’’’. lambda constant := new atom ("LAMBDA"); ’’’’. label constant := new atom ("LABEL"); ’’’’’’. quote constant := new atom ("QUOTE"); ’’’’’’. function constant := new atom ("FUNCTION"); > indefinite constant := new atom ("INDEFINITE"); ’’’’’’’’’’’’. apval constant := new atom ("APVAL"); ’’’’’’. true constant := new atom ("T"); ’’’’’’’’’’’. false constant := new atom ("F"); ’’’’’’’’’’. errors := new atom ("ERRORS") ’’’’’’’’’’’’’’.END PROC initialize constants; ’’’’’’’’’’’’’’’>SYM PROC evalquote (SYM CONST expr): (*hey*)’’’’’’’’’’’’’’ enable stop; ’’’’’’’’’’’’’’’ initialize constants; ’’’’’’> x apply ( head (expr), quote (tail (expr)), nil )’’’’’’’’’’’END PROC evalquote;’’’’’’’’’’’SYM PROC quote (SYM CONST x):’ IF eq (x,nil) THEN nil’’’’’’N ELSE set head (x, new head); set tail (x, quote (tail(x))); x’’’’’’’’’’’’’’’. cons (quote constant, cons (head(x), nil) )’END PROC quote;’’’’’’’’’’’’’’’>SYM PROC apply (SYM CONST function, argument list, alist): ’’’ enable stop; ’’’’’’’’’’’’’’’ initialize constants; ’’’’’’. x apply (function, argument list, alist) ’’’END PROC apply; ’’’’’’’’’’’’’’>SYM PROC x apply (SYM CONST function, argument list, alist): ’ IF trace THEN line;’’’’’’’’’. put ("a p p l y :"); put (function); line;> put ("arguments :"); put (argument list); line;’’’’’’’’’’’ SYM VAR new alist; ’’’’’’’’’. initialize for alist insertion; ’’’’’’’’’’’’. reduce actual fn to lambda expression; ’’’’’N insert parameter evaluated argument pairs in reversed order in new alist; ’’ function body evaluation. ’’.reduce actual fn to lambda expression: ’’’’’’’. SYM VAR actual fn :: function; ’’’’’’’’’’’’’. IF is named atom (actual fn) THEN ’’’’’’’’> get function from property list of actual fn ’’’’’’’’’’’N or from functional alist entry ’’’’. ELIF atom (actual fn) THEN ’’’’’’’’’’’’’’’N error stop ("Eine Funktion darf kein unbenanntes Atom sein") ’’’’’’’’’’’> IF eq (head (actual fn), lambda constant) THEN ’’’’’’’’’> LEAVE reduce actual fn to lambda expression ’’’’’’’’’’> ELIF eq (head (actual fn), label constant) THEN ’’’’’’’’> get function from label expression and update alist ’’N error stop ("Funktion ist weder Atom noch LAMBDA-/LABEL-Ausdruck") ’’’Nget function from property list of actual fn or from functional alist entry: ’> IF property exists (actual fn, function constant) THEN ’’’’’> get function from property list of actual fn ’’’’’’’’’’’’’. get function from functional alist entry ’.get function from property list of actual fn: > actual fn := property (actual fn, function constant). ’’’’’’.get function from functional alist entry: ’’’’ SYM VAR actual alist entry;  begin alist retrieval; ’’’’’ IF end of alist THEN ’’’’’> error stop ("Die Funktion " + name (actual fn) + ’’’’’’’. " ist nicht definiert") ’’’’. search for next functional alist entry; ’’N UNTIL eq (head (actual functional alist entry), actual fn) PER; ’’’’’’’’’’’’> actual fn := tail (actual functional alist entry). ’’’’’’’’’>get function from label expression and update alist: ’’’’’’’’’. actual fn := tail (actual fn); ’’’’’’’’’’’’’ IF atom (actual fn) COR ’’’’N (NOT atom (head (actual fn)) OR atom (tail (actual fn))) COR ’’’’’’’’’’’’N NOT null (tail (tail (actual fn))) THEN ’’’’’’’. error stop ("Ungueltiger LABEL-Ausdruck")  SYM VAR new alist entry; ’’’. prepare new functional alist entry; ’’’’’’’’> set head (new alist entry, head (actual fn)); ’’’’’’’’’’’’’’. actual fn := head (tail (actual fn)); ’’’’’’. set tail (new alist entry, actual fn). ’’’’’Ninsert parameter evaluated argument pairs in reversed order in new alist: ’’’’. actual fn := tail (actual fn); ’’’’’’’’’’’’’ IF atom (actual fn) THEN ’’’> error stop ("Ungueltiger LAMBDA-Ausdruck") ’’’’’’’’’’’’’’’> SYM VAR parameter list rest :: head (actual fn), ’’’’’’’’’’’> argument list rest :: argument list; ’’’’’’’’’’’’’’’. actual fn := tail (actual fn); ’’’’’’’’’’’’’. WHILE NOT null (parameter list rest) REP ’’’. add next parameter argument pair to alist . check wether no arguments are left over. ’’’.add next parameter argument pair to alist: ’’’. IF atom (parameter list rest) THEN ’’’’’’’’’> error stop ("Parameterliste endet falsch") ’’’’’’’’’’’’’’’> SYM VAR param pointer :: head (parameter list rest); ’’’’’’’> parameter list rest := tail (parameter list rest); ’’’’’’’’’N IF is named atom (param pointer) AND NOT null (param pointer) THEN ’’’’’’’’’> add parameter evaluated argument pair to alist; ’’’’’’’’’’. advance argument list rest ’’’’’’’’’’’’’’’. ELIF atom (param pointer) THEN ’’’’’’’’’’’’’N error stop ("Unbenannte Atome und NIL koennen nicht Parameter sein") ’’’’’> IF eq (head (param pointer), indefinite constant) THEN ’’’. check wether is last param; ’’’’’’’’’’’’ advance param pointer; ’> IF eq (head (param pointer), quote constant) THEN ’’’’’’. advance param pointer; ’’’’’’’’’’’’’’’. move param pointer to parameter; ’’’’’N add parameter indefinite quoted argument pair to alist ’’’’’’’’’’’’’’’. move param pointer to parameter; ’’’’’N add parameter indefinite evaluated argument pair to alist ’’’’’’’’’’’’. argument list rest := nil ’’’’’’’’’’’’’’> ELIF eq (head (param pointer), quote constant) THEN ’’’’’’ advance param pointer; ’. move param pointer to parameter; ’’’’’’’> add parameter quoted argument pair to alist; ’’’’’’’’’’’. advance argument list rest ’’’’’’’’’’’’’> ELIF eq (head (param pointer), function constant) THEN ’’’ advance param pointer; ’. move param pointer to parameter; ’’’’’’’> add parameter functional argument pair to alist; ’’’’’’’. advance argument list rest ’’’’’’’’’’’’’. error stop ("Ungueltiger Parameter") ’’’advance param pointer: ’’’’’’’. param pointer := tail (param pointer); ’’’’’. IF atom (param pointer) THEN ’’’’’’’’’’’’’’’. error stop ("Ungueltiger Parameter") ’’’’’.move param pointer to parameter: ’’’’’’’’’’’’’. IF NOT null (tail (param pointer)) THEN ’’’’. error stop ("Ungueltiger Parameter") ’’’’’. param pointer := head (param pointer); ’’’’’> IF NOT atom (param pointer) OR null (param pointer) THEN ’’’N error stop ("Unbenannte Atome und NIL koennen nicht Parameter sein") ’’’’’advance argument list rest: ’’> argument list rest := tail (argument list rest). ’’’’’’’’’’’>add parameter evaluated argument pair to alist: ’’’’’’’’’’’’’’ prepare new alist entry; ’’’. set head (new alist entry, param pointer); ’N set tail (new alist entry, x eval (actual argument, alist)). ’’’’’’’’’’’’’’’check wether is last param: ’’. IF NOT null (parameter list rest) THEN ’’’’’N error stop ("Ein INDEFINITE-Parameter muss der letzte sein") ’’’’’’’’’’’’’>add parameter indefinite quoted argument pair to alist: ’’’’’’ prepare new alist entry; ’’’. set head (new alist entry, param pointer); ’> set tail (new alist entry, argument list rest); ’’’’’’’’’’’’. WHILE NOT atom (argument list rest) REP ’’’’> argument list rest := tail (argument list rest) ’’’’’’’’’’. IF NOT null (argument list rest) THEN ’’’’’’. error stop ("Argumentliste endet falsch") >add parameter ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööindefinite evaluated argument pair to alist: ’’’ prepare new alist entry; ’’’. set head (new alist entry, param pointer); ’. last evaluated argument := new alist entry; . WHILE NOT atom (argument list rest) REP ’’’’. set tail (last evaluated argument, ’’’’’’’N cons (x eval (head (argument list rest), alist), nil)); ’’’’’’’’N last evaluated argument := tail (last evaluated argument); ’’’’’’’’’’’’’’’. advance argument list rest ’’’’’’’’’’’’’’’. IF NOT null (argument list rest) THEN ’’’’’’. error stop ("Argumentliste endet falsch") last evaluated argument: ’’’’’ param pointer. ’’’’’’’’’’’’’>(* The value of param pointer is not used further, so the *) ’>(* variable can be "reused" in this manner. *) ’’’’’’’’’’’’’’’.add parameter quoted argument pair to alist: ’ prepare new alist entry; ’’’. set head (new alist entry, param pointer); ’> set tail (new alist entry, actual argument). ’’’’’’’’’’’’’’’>add parameter functional argument pair to alist: ’’’’’’’’’’’’’. prepare new functional alist entry; ’’’’’’’’. set head (new alist entry, param pointer); ’> set tail (new alist entry, actual argument). ’’’’’’’’’’’’’’’actual argument: ’’’’’’’’’’’’’. IF atom (argument list rest) THEN ’’’’’’’’’’. IF null (argument list rest) THEN ’’’’’’’’. error stop ("Zuwenig Argumente") ’’’’’’’> error stop ("Argumentliste endet falsch") ’’’’’’’’’’’’’’ head (argument list rest). ’.check wether no arguments are left over: ’’’’’. IF NOT null (argument list rest) THEN ’’’’’’. error stop ("Zuviele Argumente") ’’’’’’’’’function body evaluation: ’’’’. IF is int pair (actual fn) THEN ’’’’’’’’’’’’. predefined function evaluation ’’’’’’’’’’’> ELIF atom (actual fn) COR NOT null (tail (actual fn)) THEN ’> error stop ("Ungueltiger LAMBDA-Ausdruck"); nil ’’’’’’’’’’. x eval (head (actual fn), new alist) ’’’’’.predefined function evaluation: ’’’’’’’’’’’’’’ SELECT int 1 (actual fn) OF  CASE 0: call eval cond ’’’. CASE 1: call begin oblist dump ’’’’’’’’’’’ CASE 2: call next atom ’’’ CASE 3: call add property . CASE 4: call alter property ’’’’’’’’’’’’’’. CASE 5: call delete property ’’’’’’’’’’’’’. CASE 6: call property exists ’’’’’’’’’’’’’ CASE 7: call property ’’’’ CASE 8: call add flag ’’’’ CASE 9: call flag ’’’’’’’’ CASE 10: call delete flag . CASE 11: call begin property list dump ’’’. CASE 12: call next property ’’’’’’’’’’’’’’ CASE 13: call apply ’’’’’’ CASE 14: call eval ’’’’’’’ CASE 15: call try ’’’’’’’’. CASE 16: give association list ’’’’’’’’’’’ CASE 17: call error stop ’ CASE 18: call head ’’’’’’’ CASE 19: call set head ’’’ CASE 20: call tail ’’’’’’’ CASE 21: call set tail ’’’ CASE 22: call cons ’’’’’’’ CASE 23: call eq ’’’’’’’’’ CASE 24: call get sym ’’’’ CASE 25: call put sym ’’’’ CASE 26: call null ’’’’’’’ CASE 27: call is atom ’’’’. CASE 28: call is named atom ’’’’’’’’’’’’’’. CASE 29: call get named atom ’’’’’’’’’’’’’. CASE 30: call put named atom ’’’’’’’’’’’’’ CASE 31: call is text ’’’’ CASE 32: call get text ’’’ CASE 33: call put text ’’’. CASE 34: call is character ’’’’’’’’’’’’’’’. CASE 35: call get character ’’’’’’’’’’’’’’. CASE 36: call put character ’’’’’’’’’’’’’’ CASE 37: call is int ’’’’’ CASE 38: call get int ’’’’ CASE 39: call put int ’’’’ CASE 40: call sum ’’’’’’’’ CASE 41: call difference ’ CASE 42: call product ’’’’ CASE 43: call quotient ’’’ CASE 44: call remainder’’’ CASE 45: call equal ’’’’’’ CASE 46: call trace’’’’’’’ CASE 47: call define’’’’’’ CASE 48: call set’’’’’’’’’N OTHERWISE error stop("Es gibt (noch) keine LISP-Funktion mit der Nummer" ’> + text (int 1 (actual fn)) ); nil ’’ END SELECT. call eval cond: ’’’’’’’’’’’’’’. x eval condition (arg 1, alist). ’’’’’’’’’’’call begin oblist dump: ’’’’’’ begin oblist dump; nil. ’’’’call next atom: ’’’’’’’’’’’’’’call add property: ’’’’’’’’’’’. add property (arg 3, arg 2, arg 1); arg 1. ’call alter property: ’’’’’’’’’> alter property (arg 3, arg 2, arg 1); arg 1. ’’’’’’’’’’’’’’’call delete property: ’’’’’’’’. delete property (arg 2, arg 1); nil. ’’’’’’’call property exists: ’’’’’’’’N IF property exists(arg 2,arg 1) THEN true constant ELSE false constant FI. ’call property: ’’’’’’’’’’’’’’’ property (arg 2, arg 1). ’’’call add flag: ’’’’’’’’’’’’’’’. add flag (arg 2, arg 1); nil. ’’’’’’’’’’’’’’N IF flag (arg 2, arg 1) THEN true constant ELSE false constant FI. ’’’’’’’’’’call delete flag: ’’’’’’’’’’’’. delete flag (arg 2, arg 1); nil. ’’’’’’’’’’’.call begin property list dump: ’’’’’’’’’’’’’’’. begin property list dump (arg 1); nil. ’’’’’call next property: ’’’’’’’’’’> SYM VAR s1, s2; next property (s1, s2); cons (s1, s2). ’’’’’. x apply (arg 3, arg 2, arg 1). ’’’’’’’’’’’’’ x eval (arg 2, arg 1). ’’’’’. x try (arg 4, arg 3, arg 2, arg 1). ’’’’’’’’give association list: ’’’’’’’call error stop: ’’’’’’’’’’’’’. error stop (text (arg 1)); nil. ’’’’’’’’’’’’ head (arg 1). ’’’’’’’’’’’’’’call set head: ’’’’’’’’’’’’’’’. set head (arg 2, arg 1); arg 2. ’’’’’’’’’’’’ tail (arg 1). ’’’’’’’’’’’’’’call set tail: ’’’’’’’’’’’’’’’. set tail (arg 2, arg 1); arg 2. ’’’’’’’’’’’’ cons (arg 2, arg 1). ’’’’’’’N IF eq (arg 2, arg 1) THEN true constant ELSE false constant FI. ’’’’’’’’’’’’call get sym:  get (s1); s1. ’’’’’’’’’’’’’’call put sym:  put (arg 1); arg 1. ’’’’’’’’> IF null (arg 1) THEN true constant ELSE false constant FI. ’call is atom: > IF atom (arg 1) THEN true constant ELSE false constant FI. ’call is named atom: ’’’’’’’’’’N IF is named atom (arg 1) THEN true constant ELSE false constant FI. ’’’’’’’’call get named atom: ’’’’’’’’’. TEXT VAR t; get (t); new atom (t). ’’’’’’’’’call put named atom: ’’’’’’’’’ put (name (arg 1)); arg 1. ’call is text: N IF is text (arg 1) THEN true constant ELSE false constant FI. ’’’’’’’’’’’’’’call get text: ’’’’’’’’’’’’’’’ get (t); sym (t). ’’’’’’’’’’call put text: ’’’’’’’’’’’’’’’ put (text (arg 1)); arg 1. ’call is character: ’’’’’’’’’’’N IF is character (arg 1) THEN true constant ELSE false constant FI. ’’’’’’’’’call get character: ’’’’’’’’’’. inchar (t); sym character (code (t)). ’’’’’’call put character: ’’’’’’’’’’. out (code (character (arg 1))); arg 1. ’’’’’N IF is int pair (arg 1) THEN true constant ELSE false constant FI. ’’’’’’’’’’call get int: . INT VAR i; get (i); sym (i, -1). ’’’’’’’’’’’call put int:  put (int 1 (arg 1)); arg 1.  sum (arg 1). ’’’’’’’’’’’’’’’call difference: ’’’’’’’’’’’’’ difference (arg 2, arg 1). ’call product:  product (arg 1). ’’’’’’’’’’’call quotient: ’’’’’’’’’’’’’’’ quotient (arg 2, arg 1). ’’’call remainder:’’’’’’’’’’’’’’’ remainder(arg 2, arg 1). ’’’N IF equal (arg 2, arg 1) THEN true constant ELSE false constant FI.’’’’’’’’’’ trace := NOT trace;’’’’’’’’’> IF trace THEN true constant ELSE false constant FI . ’’’’’’’call define: (*hey*) ’’’’’ define (arg 1) . ’’’’’’’’’’’call set: (*hey*) ’’’’N add property (new atom ( name (arg 2)), apval constant, arg 1); arg 1 . ’’’’ tail (head (new alist)). ’’’. tail (head (tail (new alist))). ’’’’’’’’’’’’. tail (head (tail (tail (new alist)))). ’’’’’> tail (head (tail (tail (tail (new alist))))). ’’’’’’’’’’’’’’END PROC x apply; ’’’’’’’’’’’’.SYM PROC define (SYM CONST x): (*hey*) ’’’’’ IF eq (x, nil) THEN nil ’’> ELSE add property (new atom öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö(name (head (head (x)))), ’’’’’’> function constant, tail (head (x)) ); ’’’> cons (head (head (x)), define (tail (x)) ) ’’’’’’’’’’’’END PROC define; ’’’’’’’’’’’’’SYM VAR old alist :: nil;’’’’’.SYM PROC eval (SYM CONST expression, alist): ’ enable stop; ’’’’’’’’’’’’’’’ initialize constants; ’’’’’’ x eval (expression, alist) ’END PROC eval; ’’’’’’’’’’’’’’’>SYM PROC x eval (SYM CONST expression, alist): (*hey*)’’’’’’ IF trace THEN line;’’’’’’’’’> put ("e v a l :"); put (expression); line;’’’’’’’’’’’’’’. IF NOT equal (alist, old alist) THEN’’’’’’N put ("bindings :"); old alist := alist; put (alist); line FI’’’’’’’’’’’’’ IF atom (expression) THEN ’’. IF is named atom (expression) THEN ’’’’’’’N value from property list of expression or from alist entry ’’’’’’’’’’’’’ expression ’’’’’’’’’’’’’> x apply (head (expression), tail (expression), alist) ’’’’>value from property list of expression or from alist entry: ’’> IF property exists (expression, apval constant) THEN ’’’’’’’. value from property list of expression ’’’ value from alist entry ’’’.value from property list of expression: ’’’’’’. property (expression, apval constant). ’’’’’value from alist entry: ’’’’’’ SYM VAR actual alist entry;  begin alist retrieval; ’’’’’ IF end of alist THEN ’’’’’N error stop ("Das Atom " + name (expression) + " hat keinen Wert") ’’’’’’. search for next alist entry ’’’’’’’’’’’’’’> UNTIL eq (head (actual alist entry), expression) PER; ’’’’’’ tail (actual alist entry). ’END PROC x eval; ’’’’’’’’’’’’’>SYM PROC try (SYM CONST expression list, alist, ’’’’’’’’’’’’’’> error output, break possible): ’’’’’’’ enable stop; ’’’’’’’’’’’’’’’ initialize constants; ’’’’’’N x try (expression list, alist, error output, break possible) ’’’’’’’’’’’’’’’END PROC try; >SYM PROC x try (SYM CONST expression list, alist, ’’’’’’’’’’’’> error output, break possible): ’’’’’. BOOL CONST output :: bool (error output), ’’> halt enabled :: bool (break possible); ’’’’’’’’’’. SYM VAR expr list rest :: expression list; ’. IF null (expr list rest) THEN ’’’’’’’’’’’’ LEAVE x try WITH nil ’’’. ELIF atom (expr list rest) THEN ’’’’’’’’’’> error stop ("Ausdrucksliste fuer 'try' endet falsch") ’’. try evaluation of actual expression ’’’’. expr list rest := tail (expr list rest) ’’.try evaluation of actual expression: ’’’’’’’’’ disable stop; ’’’’’’’’’’’’’’> SYM VAR result :: x eval (head (expr list rest), alist); ’’’ IF is error THEN ’’’’’’’’’’’N IF error message = "halt from terminal" AND halt enabled THEN ’’’’’’’’’’’’ enable stop ’’’’’’’’’’’’ ELIF output THEN ’’’’’’’’’ put error ’’’’’’’’’’’’’’N add property (errors, apval constant, sym (error message)); ’’’’’’’’’’’’’’ clear error ’’’’’’’’’’’’’’ LEAVE x try WITH result ’’ enable stop. ’’’’’’’’’’’’’’’END PROC x try; ’’’’’’’’’’’’’’>SYM PROC x eval condition (SYM CONST pair list, alist): ’’’’’’ enable stop; ’’’’’’’’’’’’’’’. SYM VAR cond pair list rest :: pair list; ’’. IF atom (cond pair list rest) THEN ’’’’’’’N error stop ("Keine 'T'-Bedingung in bedingtem Ausdruck gefunden") ’’’’’’. check wether is correct pair; ’’’’’’’’’’’’. IF true condition found THEN ’’’’’’’’’’’’’N LEAVE x eval condition WITH x eval (head (tail (actual pair)), alist) ’’> cond pair list rest := tail (cond pair list rest) ’’’’’’’’check wether is correct pair:  IF atom (actual pair) COR ’’. atom (tail (actual pair)) COR ’’’’’’’’’’’> NOT null (tail (tail (actual pair))) THEN ’’’’’’’’’’’’’’’> error stop ("Ungueltiges Paar im bedingten Ausdruck") ’’’’true condition found: ’’’’’’’’. bool (x eval (head (actual pair), alist)). ’ head (cond pair list rest). END PROC x eval condition; ’’’.BOOL PROC bool (SYM CONST sym): ’’’’’’’’’’’’’’. IF eq (sym, true constant) THEN ’’’’’’’’’’’’. ELIF eq (sym, false constant) THEN ’’’’’’’’’> error stop ("'T' oder 'F' erwartet"); TRUE ’’’’’’’’’’’’’’’END PROC bool; ’’’’’’’’’’’’’’’N(******* a-list handling refinements used in 'x apply' and 'x eval' *******) ’N(* declared within 'x apply' and 'x eval': 'actual alist entry' *) ’.initialize for alist insertion: ’’’’’’’’’’’’’’ new alist := alist. ’’’’’’’’begin alist retrieval: ’’’’’’’. SYM VAR actual alist pos :: alist. ’’’’’’’’’search for next alist entry: ’ WHILE NOT end of alist REP ’. IF atom (actual alist pos) THEN ’’’’’’’’’’. error stop ("Bindeliste endet falsch") ’> actual alist entry := head (actual alist pos); ’’’’’’’’’’’> actual alist pos := tail (actual alist pos); ’’’’’’’’’’’’’. UNTIL is non functional alist entry PER. ’’’.is non functional alist entry: ’’’’’’’’’’’’’’’. NOT is functional alist entry. ’’’’’’’’’’’’’.search for next functional alist entry: ’’’’’’ WHILE NOT end of alist REP ’. IF atom (actual alist pos) THEN ’’’’’’’’’’. error stop ("Bindeliste endet falsch") ’> actual alist entry := head (actual alist pos); ’’’’’’’’’’’> actual alist pos := tail (actual alist pos); ’’’’’’’’’’’’’. UNTIL is functional alist entry PER; ’’’’’’’> actual alist entry := tail (actual alist entry). ’’’’’’’’’’’is functional alist entry: ’’’. check wether is alist entry; ’’’’’’’’’’’’’’’. null (head (actual alist entry)). ’’’’’’’’’’check wether is alist entry: ’. IF atom (actual alist entry) THEN ’’’’’’’’’’> error stop ("Bindelisteneintrag ist kein Paar") ’’’’’’’’’’end of alist:  null (actual alist pos). ’’’.actual functional alist entry: ’’’’’’’’’’’’’’’ actual alist entry. ’’’’’’’’prepare new alist entry: ’’’’’> new alist := cons (cons (nil, nil), new alist); ’’’’’’’’’’’’. new alist entry := head (new alist). ’’’’’’’.prepare new functional alist entry: ’’’’’’’’’’> new alist := cons (cons (nil, cons (nil, nil)), new alist); . new alist entry := tail (head (new alist)). END PACKET lisp interpreter; ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’lisp.4’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööa€ė’’‘Žü’’’’üü’M’’’’’’lisp.4’’’’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’a€’B’’’’’’’’’’’’’’’’’’’±€’2’’’’’’’’’’’’’’’’’’’ń€’2’’’’’’’’’’’’’’’’’’’1’H’’’’’’’’’’’’’’’’’’’’H’’’’’’’’’’’’’’’’’’’с’H’’’’’’’’’’’’’’’’’’’!‚’H’’’’’’’’’’’’’’’’’’’q‚’H’’’’’’’’’’’’’’’’’’’Į‚’H’’’’’’’’’’’’’’’’’’’ƒ’’’’’’’’’’’’’’’’’’’’’’ lisp heap,’’’’’’’’’1ƒ’’’’’’’’’’’’’’’’’’’’’’ run lisp,’’’’’’’’’’Aƒ’’’’’’’’’’’’’’’’’’’’’’ lisp,’’’’’’’’’’’’’’’’ break lisp:’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’aƒ’!’’’’’’’’’’’’’’’’’’’‘ƒ’'’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Įƒ’.’’’’’’’’’’’’’’’’’’’ńƒ’’’’’’’’’’’’’’’’’’’’„’ ’’’’’’’’’’’’’’’’’’’1„’’’’’’’’’’’’’’’’’’’’Q„’’’’’’’’’’’’’’’’’’’’q„’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘„’:’’’’’’’’’’’’’’’’’’’ф’’’’’’’’’’’’’’’’’’’’į„’’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’1…’’’’’’’’’’’’’’’’’’’’Q…’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’q…’$’’’’’’’’’’’’’’’’’’’”…’%’’’’’’’’’’’’’’’’’’’х’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń…’’’’’’’’’’’’’’’’’’’’’’ insert heap’’’’’’’’†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’1†’$’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’a†’’’’’’’’’’’’’’’’’’’’†’’’’’’’’’’’’’’’’’’’’”†’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Į†’(’’’’’’’’’’’’’’’’’’’ń†’$’’’’’’’’’’’’’’’’’’’!‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A‡’’’’’’’’’’’’’’’’’’’’Q‡’’’’’’’’’’’’’’’’’’’’q‡’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’‘‡’%’’’’’’’’’’’’’’’’’’’Į‡’’’’’’’’’’’’’’’’’’’’ᇒ’’’’’’’’’’’’’’’’’’’ˆ’!’’’’’’’’’’’’’’’’’’’1ˆ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’Qˆ’<’’’’’’’’’’’’’’’’’’’‘ˆ’’’’’’’’’’’’’’’’’’’’”ˆ’3’’’’’’’’’’’’’’’’’’’ሒ’’’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‰’2’’’’’’’’’’’’’’’’’’’a‰’ ’’’’’’’’’’’’’’’’’’’‘‰’’’’’’’’’’’’’’’’’’’’±‰’M’’’’’’’’’’’’’’’’’’’Š’%’’’’’’’’’’’’’’’’’’’1Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’QŠ’’’’’’’’’’’’’’’’’’’’qŠ’%’’’’’’’’’’’’’’’’’’’”Š’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ĮŠ’’’’’’’’’’’’’’’’’’’’ኒ’’’’’’’’’’’’’’’’’’’‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’!‹’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’ PROC lisp:’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’A‹’?’’’’’’’’’’’’’’’’’’’‘‹’!’’’’’’’’’’’’’’’’’’’Į‹’C’’’’’’’’’’’’’’’’’’’Œ’5’’’’’’’’’’’’’’’’’’’QŒ’’’’’’’’’’’’’’’’’’’’’’FI; ’’’’’’’’’’’’’’’’’’’ SYM VAR work;’’’’’’’’qŒ’G’’’’’’’’’’’’’’’’’’’ĮŒ’&’’’’’’’’’’’’’’’’’’’ńŒ’’’’’’’’’’’’’’’’’’’’’’REP ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’a’!’’’’’’’’’’’’’’’’’’’‘’#’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’ FI ’’’’’’’’’’’’’’’’’’PER .’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’ń’:’’’’’’’’’’’’’’’’’’’1Ž’’’’’’’’’’’’’’’’’’’’’’ ELSE ’’’’’’’’’’’’’’QŽ’’’’’’’’’’’’’’’’’’’’qŽ’(’’’’’’’’’’’’’’’’’’’”Ž’’’’’’’’’’’’’’’’’’’’’’ FI .’’’’’’’’’’’’’’’ĮŽ’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ю’’’’’’’’’’’’’’’’’’’’’’ break; ’’’’’’’’’’’’’’ page; ’’’’’’’’’’’’’’’ quit;’’’’’’’’’’’’’’ńŽ’:’’’’’’’’’’’’’’’’’’’1’)’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’я’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’NPACKET lisp (* Autor: J.Durchholz , P. Heyderhoff *)’’’’’’’’’’’’> (* Datum: 09.05.1984 *)’’’’’’’’’’’’> DEFINES (* Version 1.7.2 *)’’’’’’’’’’’’N (* Önderung: notebook *)’’’’’’N (* 13.3.86 I. Ley *)’’’’’’N (* Önderung: start lisp system *)’’’’’’N (* 25.3.86 I. Ley *)’’’’’’N (* Anpassung an ELAN-Compiler Version 1.7.5 *)’’’’’’N (* 8.4.86 I. Ley *)’’’’’’ start lisp system,’’’’’’’’’’ insert lisp, run lisp again,’’’’’’’’’’’’’.SYM VAR run again pointer :: nil;’’’’’’’’’’’’’.DATASPACE VAR insert heap :: nil space;’’’’’’’.PROC start lisp system (DATASPACE CONST heap): enable stop;. initialize lisp system (heap);’’’’’’’’’’’’’’ forget (insert heap);’’’’’’’ insert heap := heap’’’’’’’’’END PROC start lisp system;’’’>PROC start lisp system (DATASPACE CONST heap, FILE VAR f):’’’’ enable stop;. create lisp system (f, heap);’’’’’’’’’’’’’’’ forget (insert heap);’’’’’’’ insert heap := heap’’’’’’’’’END PROC start lisp system;’’’.PROC start lisp system (FILE VAR f):’’’’’’’’’’. create lisp system (f, insert heap)’’’’’’’’’END PROC start lisp system;’’’DATASPACE PROC lisp heap:’’’’’END PROC lisp heap;’’’’’’’’’’’.DATASPACE VAR run heap :: nil space;’’’’’’’’’’PROC insert lisp:’’’’’’’’’’’’’ insert lisp (last param)’’’’END PROC insert lisp;’’’’’’’’’.PROC insert lisp (TEXT CONST file name):’’’’’’. interpret (insert heap, file name)’’’’’’’’’’END PROC insert lisp;’’’’’’’’’PROC run lisp: run lisp (last param)’’’’’’’END PROC run lisp;’’’’’’’’’’’’.PROC run lisp (TEXT CONST file name):’’’’’’’’’ forget (run heap);’’’’’’’’’’ run heap := insert heap;’’’’. interpret (run heap, file name)’’’’’’’’’’’’’END PROC run lisp;’’’’’’’’’’’’>PROC interpret (DATASPACE CONST heap, TEXT CONST file name):’’ enable stop;> FILE VAR f :: sequential file (input, file name);’’’’’’’’’’’ interpret (heap, f)’’’’’’’’’END PROC interpret;’’’’’’’’’’’>PROC interpret (DATASPACE CONST heap, FILE VAR f):’’’’’’’’’’’’. initialize lisp system (heap);’’’’’’’’’’’’’’ get (f, run again pointer);’N add property (new atom ("program"), new atom ("APVAL"), run again pointer);’. put (evalquote (run again pointer))’’’’’’’’’END PROC interpret;’’’’’’’’’’’PROC run lisp again:’’’’’’’’’’. put (evalquote (run again pointer))’’’’’’’’’END PROC run lisp again;’’’’’’PROC get ausdruck:’’’’’’’’’’’’ enable stop; get (ausdruck)’END PROC get ausdruck;’’’’’’’’SYM VAR ausdruck; ’’’’’’’’’’’’N(* HAUPT TESTPROGRAMM FUER LISP Heyderhoff 25.1.83 *)’’’’’’’’’’’’’’’.IF NOT exists ("LISP HEAP") THEN ’’’’’’’’’’’’’N FILE VAR bootstrap :: sequential file (input, "lisp.bootstrap"); ’’’’’’’’’’’> create lisp system (bootstrap, new ("LISP HEAP")); ’’’’’’’’’ verbose lisp output (TRUE);’Ncommand dialogue(FALSE); forget ("LISP INPUT"); command dialogue(TRUE);’’’’’’’.(* bildlaenge(23); *) (* EUMEL 1.65 *)’’’’’’’’disable stop;  get (ausdruck); ’’’’’’’’’’’’ IF is error THEN ’’’’’’’’’’’ handle error ’’’’’’’’’’’’’. work := evalquote (ausdruck);’’’’’’’’’’’’’. IF is error THEN handle error ’’’’’’’’’’’ ELSE note (work)’’’’’’’’’’handle error: > IF text (error message, 18) = "halt from terminal" THEN ’’’’ enable stop ’’’’’’’’’’’’’’ note (error message);’’’’’. put ( error message); pause(20);’’’’’’ clear error; ’’’’’’’’’’’’’END PROC lisp;PROC break lisp:’’’’’’’’’’’’’’> FILE VAR in :: sequential file (modify, "LISP INPUT"), ’’’’. out :: notefile; modify (out);’’’’’. headline (out,"LISP OUTPUT");’’’’’’’’’’’’’’’ headline (in, "LISP INPUT"); noteedit (in);’’’’’’’’’’’’’’END PROC break lisp’’’’’’’’’’’END PACKET lisööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööp;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’P@’’@’’’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’lisp.bootstrap’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’!’a€ė’’xu0’’’’00yM’ž’’’’a€’’’’’’’’’’’’’’’’’’’’’’’’’’’’x’’’’’’’’’’’’’’’’’’q€’’’’’’’’’’’’’’’’’’’’’’NIL ’’’’’’’’’’’’’’’’’”€’’’’’’’’’’’’’’’’’’’’’’T ’’’’’’’’’’’’’’’’’’’р’’’’’’’’’’’’’’’’’’’’’’F ’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’1’$’’’’’’’’’’’’’’’’’’’a’ ’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’±’!’’’’’’’’’’’’’’’’’’’ၒ’’’’’’’’’’’’’’’’’’’‚’!’’’’’’’’’’’’’’’’’’’1‚’’’’’’’’’’’’’’’’’’’’Q‚’!’’’’’’’’’’’’’’’’’’’‚’’’’’’’’’’’’’’’’’’’’”‚’!’’’’’’’’’’’’’’’’’’’т’’’’’’’’’’’’’’’’’’’’ń‚’!’’’’’’’’’’’’’’’’’’’!ƒ’’’’’’’’’’’’’’’’’’’’Aƒ’"’’’’’’’’’’’’’’’’’’’qƒ’’’’’’’’’’’’’’’’’’’’‘ƒ’!’’’’’’’’’’’’’’’’’’’Įƒ’’’’’’’’’’’’’’’’’’’’გ"’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’1„’!’’’’’’’’’’’’’’’’’’’a„’’’’’’’’’’’’’’’’’’’’„’’’’’’’’’’’’’’’’’’’’±„’’’’’’’’’’’’’’’’’’’’ф’!’’’’’’’’’’’’’’’’’’’…’’’’’’’’’’’’’’’’’’’’!…’"’’’’’’’’’’’’’’’’’’’Q…’’’’’’’’’’’’’’’’’’’’q…’"’’’’’’’’’’’’’’’’’’’”…’’’’’’’’’’’’’’’’’’’’Į…’"’’’’’’’’’’’’’’’’’’’ń…’’’’’’’’’’’’’’’’’’’’†’!’’’’’’’’’’’’’’’’’’’A†’’’’’’’’’’’’’’’’’’’’a†’!’’’’’’’’’’’’’’’’’’’‘†’’’’’’’’’’’’’’’’’’’’±†’"’’’’’’’’’’’’’’’’’’’ᆒ’’’’’’’’’’’’’’’’’’’‡’!’’’’’’’’’’’’’’’’’’’1‡’’’’’’’’’’’’’’’’’’’’Q‡’"’’’’’’’’’’’’’’’’’’’‡’’’’’’’’’’’’’’’’’’’’”‡’!’’’’’’’’’’’’’’’’’’’ч’’’’’’’’’’’’’’’’’’’’ń‡’"’’’’’’’’’’’’’’’’’’’!ˆ’’’’’’’’’’’’’’’’’’’’Aˆ’"’’’’’’’’’’’’’’’’’’’qˆ’’’’’’’’’’’’’’’’’’’’‘ˆ’"’’’’’’’’’’’’’’’’’’’Įˆ’’’’’’’’’’’’’’’’’’’’ሒ"’’’’’’’’’’’’’’’’’’’‰’’’’’’’’’’’’’’’’’’’’1‰’"’’’’’’’’’’’’’’’’’’’a‰’’’’’’’’’’’’’’’’’’’’‰’"’’’’’’’’’’’’’’’’’’’±‰’’’’’’’’’’’’’’’’’’’’щ’!’’’’’’’’’’’’’’’’’’’Š’’’’’’’’’’’’’’’’’’’’!Š’!’’’’’’’’’’’’’’’’’’’QŠ’’’’’’’’’’’’’’’’’’’’qŠ’!’’’’’’’’’’’’’’’’’’’”Š’’’’’’’’’’’’’’’’’’’’ĮŠ’"’’’’’’’’’’’’’’’’’’’ńŠ’’’’’’’’’’’’’’’’’’’’‹’!’’’’’’’’’’’’’’’’’’’A‹’’’’’’’’’’’’’’’’’’’’a‹’!’’’’’’’’’’’’’’’’’’’‘‹’’’’’’’’’’’’’’’’’’’’±‹’"’’’’’’’’’’’’’’’’’’’į‹’’’’’’’’’’’’’’’’’’’’Œ’!’’’’’’’’’’’’’’’’’’’1Œ’’’’’’’’’’’’’’’’’’’’QŒ’!’’’’’’’’’’’’’’’’’’’Œ’’’’’’’’’’’’’’’’’’’’”Œ’"’’’’’’’’’’’’’’’’’’’ь’’’’’’’’’’’’’’’’’’’’ńŒ’!’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’’’’’’’A’!’’’’’’’’’’’’’’’’’’’q’’’’’’’’’’’’’’’’’’’’‘’"’’’’’’’’’’’’’’’’’’’Į’’’’’’’’’’’’’’’’’’’’ń’"’’’’’’’’’’’’’’’’’’’!Ž’’’’’’’’’’’’’’’’’’’’AŽ’"’’’’’’’’’’’’’’’’’’’qŽ’’’’’’’’’’’’’’’’’’’’‘Ž’"’’’’’’’’’’’’’’’’’’’ĮŽ’’’’’’’’’’’’’’’’’’’’įŽ’"’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1’"’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’я’"’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’1’"’’’’’’’’’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’"’’’’’’’’’’’’’’’’’’’±’’’’’’’’’’’’’’’’’’’’ѐ’"’’’’’’’’’’’’’’’’’’’‘’’’’’’’’’’’’’’’’’’’’!‘’"’’’’’’’’’’’’’’’’’’’Q‘’’’’’’’’’’’’’’’’’’’’q‘’!’’’’’’’’’’’’’’’’’’’”‘’’’’’’’’’’’’’’’’’’’’’’ (COND ’’’’’’’’’’’’’Į‘’’’’’’’’’’’’’’’’’’’’į‘’/’’’’’’’’’’’’’’’’’’’’’ ) ’’’’’’’’’’’’’’’’’’’) ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’lisp.bootstrap.NIL APVAL ’’’’’’’’’’’’’’’.T APVAL ’’’’’’’’’’’’’’’.F APVAL ’’’’’’’’’’’’’’’.COND FUNCTION ’’’’’’’’’’’’.(LAMBDA ((INDEFINITE QUOTE X)) . 0) ’’’’’’’’’’.BEGINOBLISTDUMP FUNCTION ’’’’’’’’’’’’’’(LAMBDA () . 1) ’’’’’’’’’’’’’’.NEXTATOM FUNCTION ’’’’’’’’’’’’’(LAMBDA () . 2) ’’’’’’’’’’’’’’.ADDPROPERTY FUNCTION ’’’’’’’’’’’’’(LAMBDA (X X X) . 3) ’’’’’’’’’.ALTERPROPERTY FUNCTION ’’’’’’’’’’’’’(LAMBDA (X X X) . 4) ’’’’’’’’’.DELETEPROPERTY FUNCTION ’’’’’’’’’’’’’(LAMBDA (X X) . 5) ’’’’’’’’’’’.PROPERTYEXISTS FUNCTION ’’’’’’’’’’’’’(LAMBDA (X X) . 6) ’’’’’’’’’’’.PROPERTY FUNCTION ’’’’’’’’’’’’(LAMBDA (X X) . 7) ’’’’’’’’’’’.ADDFLAG FUNCTION ’’’’’’’’’’’’’(LAMBDA (X X) . 8) ’’’’’’’’’’’.FLAG FUNCTION ’’’’’’’’’’’’(LAMBDA (X X) . 9) ’’’’’’’’’’’.DELETEFLAG FUNCTION ’’’’’’’’’’’’’(LAMBDA (X X) . 10) ’’’’’’’’’’.BEGINPROPERTYLISTDUMP FUNCTION ’’’’’’’’’’’’’’’(LAMBDA (X) . 11) ’’’’’’’’’’’’.NEXTPROPERTY FUNCTION ’’’’’’’’’’’’’(LAMBDA () . 12) ’’’’’’’’’’’’’.APPLY FUNCTION ’’’’’’’’’’’’(LAMBDA (X X X) . 13) ’’’’’’’’.EVAL FUNCTION ’’’’’’’’’’’’(LAMBDA (X X) . 14) ’’’’’’’’’’.TRY FUNCTION ’’’’’’’’’’’’(LAMBDA (X X X X) . 15) ’’’’’’.ASSOCIATIONLIST FUNCTION ’’’’’’’’’’’’’(LAMBDA () . 16) ’’’’’’’’’’’’’.ERRORSTOP FUNCTION ’’’’’’’’’’’’’(LAMBDA (X) . 17) ’’’’’’’’’’’’.HEAD FUNCTION ’’’’’’’’’’’’(LAMBDA (X) . 18) ’’’’’’’’’’’’.SETHEAD FUNCTION ’’’’’’’’’’’’’(LAMBDA (X X) . 19) ’’’’’’’’’’.TAIL FUNCTION ’’’’’’’’’’’’(LAMBDA (X) . 20) ’’’’’’’’’’’’.SETTAIL FUNCTION ’’’’’’’’’’’’’(LAMBDA (X X) . 21) ’’’’’’’’’’.CONS FUNCTION ’’’’’’’’’’’’(LAMBDA (X X) . 22) ’’’’’’’’’’.EQ FUNCTION ’’’’’’’’’’’’(LAMBDA (X X) . 23) ’’’’’’’’’’.GET FUNCTION ’’’’’’’’’’’’(LAMBDA () . 24) ’’’’’’’’’’’’’.PUT FUNCTION ’’’’’’’’’’’’(LAMBDA (X) . 25) ’’’’’’’’’’’’.NULL FUNCTION ’’’’’’’’’’’’(LAMBDA (X) . 26) ’’’’’’’’’’’’.ATOM FUNCTION ’’’’’’’’’’’’(LAMBDA (X) . 27) ’’’’’’’’’’’’.NAMEDATOM FUNCTION ’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö(LAMBDA (X) . 28) ’’’’’’’’’’’’.GETATOM FUNCTION ’’’’’’’’’’’’’(LAMBDA () . 29) ’’’’’’’’’’’’’.PUTATOM FUNCTION ’’’’’’’’’’’’’(LAMBDA (X) . 30) ’’’’’’’’’’’’.TEXT FUNCTION ’’’’’’’’’’’’(LAMBDA (X) . 31) ’’’’’’’’’’’’.GETTEXT FUNCTION ’’’’’’’’’’’’’(LAMBDA () . 32) ’’’’’’’’’’’’’.PUTTEXT FUNCTION ’’’’’’’’’’’’’(LAMBDA (X) . 33) ’’’’’’’’’’’’.CHARACTER FUNCTION ’’’’’’’’’’’’(LAMBDA (X) . 34) ’’’’’’’’’’’’.GETCHARACTER FUNCTION ’’’’’’’’’’’’’(LAMBDA () . 35) ’’’’’’’’’’’’’.PUTCHARACTER FUNCTION ’’’’’’’’’’’’’(LAMBDA (X) . 36) ’’’’’’’’’’’’.INT FUNCTION ’’’’’’’’’’’’(LAMBDA (X). 37) ’’’’’’’’’’’’’.GETINT FUNCTION ’’’’’’’’’’’’’(LAMBDA () . 38) ’’’’’’’’’’’’’.PUTINT FUNCTION ’’’’’’’’’’’’’(LAMBDA (X) . 39) ’’’’’’’’’’’’.SUM FUNCTION ’’’’’’’’’’’’.(LAMBDA ((INDEFINITE X)) . 40) ’’’’’’’’’’’’’’’.DIFFERENCE FUNCTION ’’’’’’’’’’’’(LAMBDA (X X). 41) ’’’’’’’’’’’.PRODUCT FUNCTION ’’’’’’’’’’’’(LAMBDA ((INDEFINITE X)). 42) .QUOTIENT FUNCTION ’’’’’’’’’’’’(LAMBDA (X X).43) ’’’’’’’’’’’’.REMAINDER FUNCTION ’’’’’’’’’’’’(LAMBDA (X X).44) ’’’’’’’’’’’’.EQUAL FUNCTION ’’’’’’’’’’’’(LAMBDA (X X) . 45) ’’’’’’’’’’.TRACE FUNCTION ’’’’’’’’’’’’(LAMBDA () . 46 ) ’’’’’’’’’’’’.DEFINE FUNCTION ’’’’’’’’’’’’.(LAMBDA ((INDEFINITE X)) . 47 ) ’’’’’’’’’’’’’’.SET FUNCTION ’’’’’’’’’’’’(LAMBDA (X X) . 48 ) ’’’’’’’’’.QUOTE FUNCTION ’’’’’’’’’’’’(LAMBDA ((QUOTE X)) X) ’’’’’’’.LIST FUNCTION ’’’’’’’’’’’’(LAMBDA ((INDEFINITE X)) X) ’’.DO FUNCTION ’’’’’’’’’’’’(LAMBDA ((INDEFINITE X)) NIL) .PUTLIST FUNCTION ’’’’’’’’’’’’’(LAMBDA ((INDEFINITE X)) ’’’’’ ((NULL X) NIL) ’’’’’’’’’’’> (T (DO (PUT (HEAD X)) (PUTLIST (TAIL X)))) ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’@@’’’’ "15"TAB2"14"’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’,’’?ą’’ü’’›ŁĢlęü’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’qa’’’’abs’’’’’’’’’’’’arctan’’’’’’’’’arctand’’’’’’’’cos’’’’’’’’’’’’cosd’’’’’’’’’’’exp’’’’’’’’’’’’floor’’’’’’’’’’frac’’’’’’’’’a’’’’’’’’’’’’’’random’’’’’’’’’ln’’’’’’’’’’’’’log2’’’’’’’’’’’log10’’’’’’’’’’max’’’’’’’’’’’’min’’’’’’’’’’’’power’’’’’’’’’’round’’’’’’’’’’sin’’’’’’’’’’’’sind’’’’’’’’’’’sqrt’’’’’’’’’’’tan’’’’’’’’’’’’tand’’’’’’’’’’’clip’’’’’’’’’’’fifge’’’’’’’’’’switch’’’’’’’’’fifze’’’’’’’’’’noise’’’’’’’’’’normrn’’’’’’’’’pulse’’’’’’’’’’ramp’’’’’’’’’’’sclprd’’’’’’’’’step’’’’’’’’’’’sumv’’’’’’’’’’’sum’’’’’’’’’’’’table’’’’’’’’’’tabhl’’’’’’’’’’delay1’’’’’’’’’in’’’’’’’’’’’’’del’’’’’’’’’’’’delay1’’’’’’’’’lv’’’’’’’’’’’’’delay3’’’’’’’’’in’’’’’’’’’’’’’del’’’’’’’’’’’’dl’’’’’’’’’’’’’lv3’’’’’’’’’’’’rt2’’’’’’’’’’’’lv2’’’’’’’’’’’’rt1’’’’’’’’’’’’lv1’’’’’’’’’’’’delay3’’’’’’’’’delay3p’’’’’’’’in’’’’’’’’’’’’’del’’’’’’’’’’’’ppl’’’’’’’’’’’’delay3p’’’’’’’’lv3’’’’’’’’’’’’rt2’’’’’’’’’’’’lv2’’’’’’’’’’’’rt1’’’’’’’’’’’’lv1’’’’’’’’’’’’dl’’’’’’’’’’’’’ppl’’’’’’’’’’’’dlinf3’’’’’’’’’in’’’’’’’’’’’’’del’’’’’’’’’’’’dlinf3’’’’’’’’’lv2’’’’’’’’’’’’lv1’’’’’’’’’’’’dl’’’’’’’’’’’’’smooth’’’’’’’’’in’’’’’’’’’’’’’del’’’’’’’’’’’’smooth’’’’’’’’’p’’’’’’’’’’’’’’pi’’’’’’’’’’’’’br’’’’’’’’’’’’’brn’’’’’’’’’’’’brn1’’’’’’’’’’’swt1’’’’’’’’’’’brmm’’’’’’’’’’’brmmt’’’’’’’’’’msl’’’’’’’’’’’’ecirn’’’’’’’’’’ecir’’’’’’’’’’’nrem’’’’’’’’’’’nremt’’’’’’’’’’nrfr’’’’’’’’’’’nr’’’’’’’’’’’’’nri’’’’’’’’’’’’nrur’’’’’’’’’’’nrun’’’’’’’’’’’nrun1’’’’’’’’’’swt2’’’’’’’’’’’dr’’’’’’’’’’’’’drn’’’’’’’’’’’’drn1’’’’’’’’’’’swt3’’’’’’’’’’’drmm’’’’’’’’’’’drmmt’’’’’’’’’’drpm’’’’’’’’’’’drpmt’’’’’’’’’’drfm’’’’’’’’’’’drfmt’’’’’’’’’’drcm’’’’’’’’’’’drcmt’’’’’’’’’’cr’’’’’’’’’’’’’la’’’’’’’’’’’’’pdn’’’’’’’’’’’’brcm’’’’’’’’’’’brcmt’’’’’’’’’’brfm’’’’’’’’’’’brfmt’’’’’’’’’’brpm’’’’’’’’’’’brpmt’’’’’’’’’’fr’’’’’’’’’’’’’fc’’’’’’’’’’’’’fc1’’’’’’’’’’’’fn’’’’’’’’’’’’’swt7’’’’’’’’’’’fcm’’’’’’’’’’’’fcmt’’’’’’’’’’’fpci’’’’’’’’’’’fpcit’’’’’’’’’’cira’’’’’’’’’’’ciafn’’’’’’’’’’cir’’’’’’’’’’’’ci’’’’’’’’’’’’’cii’’’’’’’’’’’’cig’’’’’’’’’’’’cign’’’’’’’’’’’cign1’’’’’’’’’’swt4’’’’’’’’’’’cim’’’’’’’’’’’’cimt’’’’’’’’’’’cid’’’’’’’’’’’’cidn’’’’’’’’’’’cidn1’’’’’’’’’’swt5’’’’’’’’’’’fpm’’’’’’’’’’’’fpmt’’’’’’’’’’’polr’’’’’’’’’’’pols’’’’’’’’’’’pol’’’’’’’’’’’’poli’’’’’’’’’’’polg’’’’’’’’’’’poln’’’’’’’’’’’poln1’’’’’’’’’’swt6’’’’’’’’’’’polcm’’’’’’’’’’polcmt’’’’’’’’’pola’’’’’’’’’’’polat’’’’’’’’’’polatt’’’’’’’’’ciaf’’’’’’’’’’’ciaf1’’’’’’’’’’ciaft’’’’’’’’’’cfifr’’’’’’’’’’cfifrt’’’’’’’’’ql’’’’’’’’’’’’’qls’’’’’’’’’’’’qlm’’’’’’’’’’’’qlmt’’’’’’’’’’’qlc’’’’’’’’’’’’qlct’’’’’’’’’’’qlf’’’’’’’’’’’’qlft’’’’’’’’’’’qlp’’’’’’’’’’’’qlpt’’’’’’’’’’’nrmm’’’’’’’’’’’nrmmt’’’’’’’’’’ciqr’’’’’’’’’’’ciqrt’’’’’’’’’’dt’’’’’’’’’’’’’length’’’’’’’’’time’’’’’’’’’’’prtper’’’’’’’’’pltper’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’del*in’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’$dl*in’’’’’’’’’’’’’’’’’’’’’’’$lv3’’’’’’’’’’’’’’’’’’’’’’’’’$lv3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’$dl*in’’’’’’’’’’’’’’’’’’’’’’’$lv3’’’’’’’’’’’’’’’’’’’’’’’’’$lv3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’in’’’’’’’’’’’’’in’’’’’’’’’’’’’in’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’in’’’’’’’’’’’Q ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’į ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’cii ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’poli ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ciaf1 ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’1900 ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’rr’’’’’’’’’’’’’rr’’’’’’’’’’’’’rr’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’r’’’’’’’’’’’’’’rrrr’’’’’’’’’’’rrrr’’’’’’’’’’’rrr’’’’’’’’’’’’rrr’’’’’’’’’’’’r’’’’’’’’’’’’’’rr’’’’’’’’’’’’’rrr’’’’’’’’’’’’rr’’’’’’’’’’’’’trrtr’’’’’’’’’’rr’’’’’’’’’’’’’trr’’’’’’’’’’’’t’’’’’’’’’’’’’’trrrr’’’’’’’’’’trrrr’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ $lv.k/del’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’del/3’’’’’’’’”’’’’’’’’’’’’’’ $lv2.k/$dl.k’Į’’’’’’’’’’’’’’ $lv1.k/$dl.k’į’’’’’’’’’’’’’’ $lv3.k/$dl.k’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ $lv3.k/$dl.k’ ’’’’’’’’’’’’’’ $lv2.k/$dl.k’! ’’’’’’’’’’’’’’ $lv1.k/dl.k’’A ’’’’’’’’’’’’’’del/3’’’’’’’’a ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’#’’’’’’’’’’’± ’’’’’’’’’’’’į ’’’’’’’’’’’’’’del/3’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’1 ’’’’’’’’’’’’’’1.65e9’’’’’’’q ’Q’’’’’’’’’’’’’0.04’’’’’’’’’’’0.04’’’’’’’’’’’1970.0’’’’’’’Ń ’’’’’’’’’’’’ń ’’’’’’’’’’’’ ’’’’’’’’’’’’’’1.0’’’’’’’’’’1 ’&’’’’’’’’’’’a ’’’’’’’’’’’’ ’’’’’’’’’’’’” ’’’’’’’’’’’’Į ’’’’’’’’’’’’’’900.0e9’’’’’’ ’.’’’’’’’’’’’’’1.0’’’’’’’’’’’’1.0’’’’’’’’’’’’1970.0’’’’’’’1 ’Q’’’’’’’’’’’’’0.028’’’’’’’’’’0.028’’’’’’’’’’1970.0’’’’’’’‘ ’’’’’’’’’’’’± ’’’’’’’’’’’’Ń ’’’’’’’’’’’’ń ’’’’’’’’’’’’ ’’’’’’’’’’’’1 ’’’’’’’’’’’’Q ’’’’’’’’’’’’q ’’’’’’’’’’’’‘ ’’’’’’’’’’’’’’135.0e6’’’’’’’’26.5’’’’’’’’’± ’’’’’’’’’’’’Ń ’’’’’’’’’’’’ń ’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’A’’’’’’’’’’’’a’7’’’’’’’’’’’’’1.0’’’’’’’’’’’’1.0’’’’’’’’’’’’1.0’’’’’’’’’’’’1970.0’’’’’’’”’’’’’’’’’’’’Į’’’’’’’’’’’’į’’’’’’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’0.3’’’’’’’’’’’’ (ci.k/p.k) ’’A’’’’’’’’’’’’’’0.4e9’’’’’’’’a’-’’’’’’’’’’’’’0.05’’’’’’’’’’’0.05’’’’’’’’’’’1970.0’’’’’’’‘’’’’’’’’’’’’±’’’’’’’’’’’’Ń’(’’’’’’’’’’’’’0.025’’’’’’’’’’0.025’’’’’’’’’’1970.0’’’’’’’’’’’’’’’’’’’!’’’’’’’’’’’’’’ pol.k/pols ’’’’3.6e9’’’’’’’’A’’’’’’’’’’’’’’0.2e9’’’’’’’’a’/’’’’’’’’’’’’’1.0’’’’’’’’’’’’1.0’’’’’’’’’’’’1970.0’’’’’’’”’’’’’’’’’’’’Į’’’’’’’’’’’’į’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’’1’,’’’’’’’’’’’’’0.2’’’’’’’’’’’’15.0’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’”’&’’’’’’’’’’’’’1.0’’’’’’’’’’Ń’’’’’’’’’’’’ń’’’’’’’’’’’’’’’’’’’’’’’’1’&’’’’’’’’’’’a’’’’’’’’’’’’’’’’’’’’’’’’”’’’’’’’’’’’’Į’’’’’’’’’’’’į’’’’’’’’’’’’’'’’’’’’’’’’’1’ ’’’’’’’’’’’a’’’’’’’’’’’’’’0.1’’’’’’’’’’’’2100.0’’’’’’’’’ time.j+dt’’’’’’4.0’’’’’’’’’’’’4.0’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’                                             ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’  "$&(()  !"#$%&'()*+,-./0123456789:;<=?@ABCDEFGHIJKLMNPQRSTUVWXYZ\]^_`abcdefghiklnostzvw’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ %&'(*+,4./012-7;56@C=>ABG? NWMkIVq‹‘Œt¬’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’%%%%*********44444444444@@@@@@GGG’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’?7’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööˆ‚y†¤m¦`Z¢SØ”Ÿ"Æ—š²J±O a8P^b…›•xK‰}ƒ{Unipgz˜‡Q°cr’e„§X“Ŗ Ž£©\œ[!Š„”]u€lFw~_H®L # ž$Y)T|oj–h™R­dsvf«ED93<:²%’’’’’’’’’’’’initializerandom’’’’’’’’’’’’’’$lv.j+dt*(in.jk-delay1.j)’’’’’$lv3.j+dt*($rt2.jk-delay3.j)’’$lv2.j+dt*($rt1.jk-$rt2.jk)’’’$lv1.j+dt*(in.jk-$rt1.jk)’’’’’$lv3.j+dt*($rt2.jk-delay3p.j)’$lv2.j+dt*($rt1.jk-$rt2.jk)’’’$lv1.j+dt*(in.jk-$rt1.jk)’’’’’$lv3.k+$lv2.k+$lv1.k’’’’’’’’’’.dlinf3.j+dt*($lv2.j-dlinf3.j)/$dl.j’’’’’’’’’’’.$lv2.j+dt*($lv1.j-$lv2.j)/$dl.j’’’’’’’’’’’’’’’$lv1.j+dt*(in.j-$lv1.j)/$dl.j’.smooth.j+dt*(in.j-smooth.j)/del’’’’’’’’’’’’’’’p.j+(dt)*(br.jk-dr.jk) ’’’’’’pi ’’’’^(p.k)*(clip(brn,brn1,swt1,time.k))*(brfm.k)*(brmm.k) *(brcm.k)*(brpm.k) ’’’’’’’’’’’’’tabhl(brmmt,msl.k,0,5,1) ’’’’’1.2/1/.85/.75/.77/.7 ’’’’’’’’ecir.k/(ecirn) ’’’’’’’’’.(cir.k)*(1-ciaf.k)*(nrem.k)/(1-ciafn) ’’’’’’’’table(nremt,nrfr.k,0,1,.25) ’’0/.15/.5/.85/1 ’’’’’’’’’nr.k/nri ’’’’’’’’’’’’nr.j+(dt)*(-nrur.jk)’’’’’’’’’’nri ’’’’’’.(p.k)*(clip(nrun,nrun1,swt2,time.k))*(nrmm.k) ^(p.k)*(clip(drn,drn1,swt3,time.k))*(drmm.k)*(drpm.k) *(drfm.k)*(drcm.k) ’’’’’’’’’’’’’tabhl(drmmt,msl.k,0,5,.5) ’’’’3/1.8/.8/.7/.6/.53/.5/.5/.5/.5table(drpmt,polr.k,0,60,10) ’’.92/1.3/2/3.2/4.8/6.8/9.2 ’’’’tabhl(drfmt,fr.k,0,2,.25) ’’’’30/3/2/1.4/1/.7/.6/.5/.5 ’’’’’table(drcmt,cr.k,0,5,1) ’’’’’’.9/1/1.2/1.5/1.9/3 ’’’’’’’’’(p.k)/(la*pdn) ’’’’’’table(brcmt,cr.k,0,5,1) ’’’’’’1.05/1/.9/.7/.6/.55 <’’’’’tabhl(brfmt,fr.k,0,4,1) ’’’’’’0/1/1.6/1.9/2 table(brpmt,polr.k,0,60,10) ’’1.02/.9/.7/.4/.25/.15/.1 ’’’’’>(fpci.k)*(fcm.k)*(fpm.k)*(clip(fc,fc1,swt7,time.k))/fn ’’’’’’’table(fcmt,cr.k,0,5,1) ’’’’’’’2.4/.6/.4/.3/.2 ’’’’’’’’’’’’’’tabhl(fpcit,cira.k,0,6,1) ’’’’.5/1/1.4/1.7/1.9/2.05/2.2 ’’’’(cir.k)*(ciaf.k)/ciafn ’’’’’’’ci.j+(dt)*(cig.jk-cid.jk) ’’’’.(p.k)*(cim.k)*(clip(cign,cign1,swt4,time.k)) ’tabhl(cimt,msl.k,0,5,1) ’’’’’’.1/1/1.8/2.4/2.8/3 ’’’’’’’’’’’.(ci.k)*(clip(cidn,cidn1,swt5,time.k)) ’’’’’’table(fpmt,polr.k,0,60,10)’’’’1.02/.9/.65/.35/.2/.1/.05 ’’’’pol.j+(dt)*(polg.jk-pola.jk) ’>(p.k)*(clip(poln,poln1,swt6,time.k))*(polcm.k) ’’’’’’’’’’’’’’’tabhl(polcmt,cir.k,0,5,1) ’’’’.05/1/3/5.4/7.4/8’’’’’’’’’’’’’pol.k/polat.k table(polatt,polr.k,0,60,10) ’.6/2.5/8/11.5/15.5/20 ’’’’’’’’.ciaf.j+(dt/ciaft)*((cfifr.j*ciqr.j)-ciaf.j) ’’tabhl(cfifrt,fr.k,0,2,.5)’’’’’1/.6/.3/.15/.1 ’’’’’’’’’’’’’’.(qls)*(qlm.k)*(qlc.k)*(qlf.k)*(qlp.k) ’’’’’’’’tabhl(qlmt,msl.k,0,5,1) ’’’’’’.2/1/1.7/2.3/2.7/2.9 ’’’’’’’’’table(qlct,cr.k,0,5,.5) ’’’’’’.2/1.3/1/.75/.55/.45/.38/.3/.25/.22/.2 ’’’’’’’’tabhl(qlft,fr.k,0,4,1) ’’’’’’’0/1/1.8/2.4/2.7’’’’’’’’’’’’’’’table(qlpt,polr.k,0,60,10) ’’’1.04/.85/.6/.3/.15/.05/.02 ’’’tabhl(nrmmt,msl.k,0,10,1) ’’’’.0/1/1.8/2.4/2.9/3.3/3.6/3.8/3.9/3.95/4 ’’’’’’’.tabhl(ciqrt,qlm.k/qlf.k,0,2,.5) ’’’’’’’’’’’’’’.7/.8/1/1.5/2 ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ż’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’`@’’@’’’’’’’’’’’’’’25.02.91’’’’’’’’’’’’’’’’’’’’’’’’’’’******* DYNAMO *******’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ł’’’’’’’’’’’’’’’’’’’’’’’ų’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘„a€ė’’ C’’’’CC!M’’’’a€’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’€’"stallations’’±€’"===========’’’’ ’’’’’’’’’’’’’’ဒ.NAMO Compil ’’’’ ’’’’’’’’’’’’ ’’’H Version 1. ’’a’Jt. Zum Inst ’’±’ABLIC ein, l ’’‚’Hsertierungs’’Q‚’Enoamo-Compi’’”‚’Jchiv. Ansch’’ń‚’Jrden Sie ef’’Aƒ’Dnutzen woll’’‘ƒ’Kmpiler wie ’’გnutzt werde’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’ ’’’’’’’’’’’’’’„’gin ("DYN’’’’ ’’’’’’’’’’’’’’!„’serve ("dyn’’’’ ’’’’’’’’’’’’’’A„’"tch ("dyn’’’’ ’’’’’’’’’’’’’’q„’n ("dyn’’’’ ’’’’’’’’’’’’ ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’******* DYNAMO *******’’’’’’’’.Installationsanleitung fŪr DYNAMO ’’’’’’’’’’’’.================================= ’’’’’’’’’’’’.DYNAMO Compiler 3.3+ (ab EUMEL version 1.8.2) NAb Version 1.8.2 ist eine Dynamo-Version verfŪgbar, die auch grafikfŁhiggist.’Nist. Zum Installieren des Systems richten Sie bitte eine Task DYNAMO unterPUB’NPUBLIC ein, legen Sie die Diskette in das Laufwerk, holen Sie dieInsertierung’NInsertierungsdatei von der Diskette und starten Sie die Installation desDynoa’NDynoamo-Compilers. Der Inserter holt sich alle benŚtigten Dateien vom Archiv.’NArchiv. Anschlieūend wird der Compiler insertiert. Am Ende der Generierungwer’Nwerden Sie gefragt, ob Sie den Compiler mit Grafik (.Z. nur CGA) oder ohneben’Nbenutzen wollen. Nach der Meldung "dynamo system generiert" kann der Compiler’NCompiler wie Ūblich und nach der Beschreibung im EUMEL-Handbuch "Werkzeuge" b’benutzt werden. ’’’’’’’’’’’’’’begin ("DYNAMO") ’’’’’’’’’’’reserve ("dynamo",archive) ’’’.fetch ("dyn.inserter", archive) ’’’’’’’’’’’’run ("dyn.inserter") ’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö