<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stageing.freitagsrunde.org//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=84.59.133.13</id>
	<title>FreitagsrundenWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stageing.freitagsrunde.org//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=84.59.133.13"/>
	<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//Spezial:Beitr%C3%A4ge/84.59.133.13"/>
	<updated>2026-11-02T14:46:01Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.6</generator>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Benutzer:Grey/pss&amp;diff=6133</id>
		<title>Benutzer:Grey/pss</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Benutzer:Grey/pss&amp;diff=6133"/>
		<updated>2005-12-02T16:22:43Z</updated>

		<summary type="html">&lt;p&gt;84.59.133.13: /* Milstone 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Milstone 1 =&lt;br /&gt;
* EBNF in BNF Grammatik umwandeln:&lt;br /&gt;
== EBNF ==&lt;br /&gt;
Gegeben ist folgende EBNF Syntax von microOPAL:&lt;br /&gt;
&lt;br /&gt;
 Prog -&amp;gt; Def Def * #&lt;br /&gt;
 Def  -&amp;gt; DEF Lhs == Expr&lt;br /&gt;
 Lhs  -&amp;gt; MAIN : Type | id ( [id : Type (, id : Type)*]) : Type&lt;br /&gt;
 Type -&amp;gt; nat | bool&lt;br /&gt;
 Expr -&amp;gt; number | true | false | id [ ( [Expr (, Expr)*] ) ] | IF Expr THEN Expr [ELSE Expr] FI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== BNF ==&lt;br /&gt;
Erste Umformung inklusive semantischer Aktionen:&lt;br /&gt;
&lt;br /&gt;
  1)Prog  	-&amp;gt;  Def Def&#039; #  		&amp;lt;1&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  2)Def  	-&amp;gt;  &amp;lt;u&amp;gt;DEF&amp;lt;/u&amp;gt; Lhs &amp;lt;u&amp;gt;==&amp;lt;/u&amp;gt; Expr		&amp;lt;2&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  3)Def&#039;  	-&amp;gt;  Def Def&#039;&lt;br /&gt;
  3b) 	       	|   e&amp;lt;br&amp;gt;&lt;br /&gt;
  4)Lhs   	-&amp;gt;  &amp;lt;u&amp;gt;MAIN&amp;lt;/u&amp;gt; &amp;lt;u&amp;gt;:&amp;lt;/u&amp;gt; Type			&amp;lt;3&amp;gt;&lt;br /&gt;
  5)		|   &amp;lt;u&amp;gt;id&amp;lt;/u&amp;gt; &amp;lt;u&amp;gt;(&amp;lt;/u&amp;gt; Lhs&#039; &amp;lt;u&amp;gt;)&amp;lt;/u&amp;gt; &amp;lt;u&amp;gt;:&amp;lt;/u&amp;gt; Type		&amp;lt;4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  6)Lhs&#039;  	-&amp;gt;  &amp;lt;u&amp;gt;id&amp;lt;/u&amp;gt; &amp;lt;u&amp;gt;:&amp;lt;/u&amp;gt; Type Lhs´´		&amp;lt;5&amp;gt;&lt;br /&gt;
  7)		|   e&amp;lt;br&amp;gt;&lt;br /&gt;
  8)Lhs´´	-&amp;gt;  &amp;lt;u&amp;gt;,&amp;lt;/u&amp;gt; Lhs&#039;&lt;br /&gt;
  9)		|   e&amp;lt;br&amp;gt;&lt;br /&gt;
 10)Type  	-&amp;gt;  &amp;lt;u&amp;gt;nat&amp;lt;/u&amp;gt;&lt;br /&gt;
 11)       	|   &amp;lt;u&amp;gt;bool&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 12)Expr    	-&amp;gt;  &amp;lt;u&amp;gt;number&amp;lt;/u&amp;gt;&lt;br /&gt;
 13)       	|   &amp;lt;u&amp;gt;true&amp;lt;/u&amp;gt;&lt;br /&gt;
 14)       	|   &amp;lt;u&amp;gt;false&amp;lt;/u&amp;gt;&lt;br /&gt;
 15)     	|   &amp;lt;u&amp;gt;id&amp;lt;/u&amp;gt; Expr&#039;			&amp;lt;6&amp;gt;&lt;br /&gt;
 16)		|   &amp;lt;u&amp;gt;IF&amp;lt;/u&amp;gt; Expr &amp;lt;u&amp;gt;THEN&amp;lt;/u&amp;gt; Expr fi&#039; &amp;lt;u&amp;gt;FI&amp;lt;/u&amp;gt;	&amp;lt;7&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 17)Expr&#039; 	-&amp;gt;  &amp;lt;u&amp;gt;(&amp;lt;/u&amp;gt; Expr´´ &amp;lt;u&amp;gt;)&amp;lt;/u&amp;gt;&lt;br /&gt;
 18)		|   e&amp;lt;br&amp;gt;&lt;br /&gt;
 19)Expr´´	-&amp;gt;  Expr Expr´´´		&amp;lt;8&amp;gt;&lt;br /&gt;
 20)       	|   e&amp;lt;br&amp;gt;&lt;br /&gt;
 21)Expr´´´ 	-&amp;gt;  &amp;lt;u&amp;gt;,&amp;lt;/u&amp;gt; Expr&lt;br /&gt;
 22)		|   e&amp;lt;br&amp;gt;&lt;br /&gt;
 23)fi&#039;     	-&amp;gt;  &amp;lt;u&amp;gt;ELSE&amp;lt;/u&amp;gt; Expr&lt;br /&gt;
       		|   e&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directormengen ==&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; rules=&amp;quot;all&amp;quot; style=&amp;quot;margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#F9F9F9; font-size:95%; empty-cells:show;&amp;quot;&lt;br /&gt;
! {{Highlight1}} |Produktion&lt;br /&gt;
! {{Highlight1}} |Directormenge&lt;br /&gt;
! {{Highlight1}} |disjunkt?&lt;br /&gt;
|-&lt;br /&gt;
|1)&lt;br /&gt;
|uninteressant&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|2)&lt;br /&gt;
|uninteressant&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|3) &amp;lt;br&amp;gt;3b)		&lt;br /&gt;
|{&amp;lt;u&amp;gt;DEF&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{#, &amp;lt;u&amp;gt;DEF&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|4) &amp;lt;br&amp;gt;5)&lt;br /&gt;
|{&amp;lt;u&amp;gt;MAIN&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;id&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|6) &amp;lt;br&amp;gt;7)&lt;br /&gt;
|{&amp;lt;u&amp;gt;id&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;)&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|8) &amp;lt;br&amp;gt; 9)&lt;br /&gt;
|{&amp;lt;u&amp;gt;,&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;)&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|10) &amp;lt;br&amp;gt; 11)&lt;br /&gt;
|{&amp;lt;u&amp;gt;nat&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;bool&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|12) &amp;lt;br&amp;gt;13) &amp;lt;br&amp;gt;14) &amp;lt;br&amp;gt;15) &amp;lt;br&amp;gt;16)&lt;br /&gt;
|{&amp;lt;u&amp;gt;number&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;true&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;false&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;id&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;IF&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|17) &amp;lt;br&amp;gt;18)&lt;br /&gt;
|{&amp;lt;u&amp;gt;(&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;THEN&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;ELSE&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;FI&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;,&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;)&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|19) &amp;lt;br&amp;gt;20)&lt;br /&gt;
|{&amp;lt;u&amp;gt;number&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;true&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;false&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;id&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;IF&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;,&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;)&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|21) &amp;lt;br&amp;gt;22)&lt;br /&gt;
|{&amp;lt;u&amp;gt;,&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt; {&amp;lt;u&amp;gt;)&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|23) &amp;lt;br&amp;gt;24)&lt;br /&gt;
|{&amp;lt;u&amp;gt;ELSE&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;FI&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abstrakter Syntaxbaum ==&lt;br /&gt;
http://www.freitagsrunde.org/~grey/pss/absy.jpg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
=== Absy.impl ===&lt;br /&gt;
 IMPLEMENTATION Absy&lt;br /&gt;
  &lt;br /&gt;
 DATA absy == 	Prog( defseq:seq[absy])&lt;br /&gt;
 		Def(id:denotation, seq[id:denotation, typ: type], typ:type) &lt;br /&gt;
 	 	Funcall(id: denotation, parref: seq[absy])&lt;br /&gt;
 		ParRef(id:denotation)&lt;br /&gt;
 		Cond(ifCond:absy, thenCond:absy)&lt;br /&gt;
 		CondElse(ifElse:absy, thenElse:absy, elseElse: absy)&lt;br /&gt;
 		NatConst(number:nat)&lt;br /&gt;
 		BoolConst(boolean:bool)&lt;br /&gt;
 &lt;br /&gt;
 DATA type == 	TNat(n:nat)&lt;br /&gt;
 		TBool(b:bool)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 -- Ausgabefunktion vom Absy&lt;br /&gt;
 -- DEF `(Absy) ==  &lt;br /&gt;
 DEF `(Prog(defseq)) == &amp;quot;Prog(&amp;quot; ++ (printSeqAbsy(defseq)) ++ &amp;quot;)&amp;quot;&lt;br /&gt;
 DEF `(Def(id,seqIdTyp,typ)) == &amp;quot;Def &amp;quot; ++ id ++ &amp;quot;(&amp;quot; ++ (printSeqType(seqIdTyp)) ++ &amp;quot;) :&amp;quot; ++ (printType(typ))&lt;br /&gt;
 DEF `(Funcall(id,parref)) == &amp;quot;Funcall:&amp;quot; ++ id ++ &amp;quot;(&amp;quot; ++ (printSeqAbsy(parref)) ++ &amp;quot;)&amp;quot;&lt;br /&gt;
 DEF `(ParRef(id)) == &amp;quot;ParRef:&amp;quot; ++ id &lt;br /&gt;
 DEF `(Cond(ifCond,thenCond)) == &amp;quot;Cond(&amp;quot; ++ &amp;quot;IF &amp;quot; ++ (`(ifCond)) ++ &amp;quot; THEN &amp;quot; ++ (`(thenCond)) ++ &amp;quot;)&amp;quot;&lt;br /&gt;
 DEF `(CondElse(ifCondE,thenCondE, elseCondE)) == &amp;quot;Cond(&amp;quot; ++ &amp;quot;IF &amp;quot; ++ (`(ifCondE)) ++ &amp;quot; THEN &amp;quot; ++ (`(thenCondE)) ++ &amp;quot; ELSE &amp;quot; ++ (`(elseCondE)) ++ &amp;quot;)&amp;quot;&lt;br /&gt;
 DEF `(NatConst(natC)) == `(natC)&lt;br /&gt;
 DEF `(BoolConst(boolC)) == `(boolC)&lt;br /&gt;
 &lt;br /&gt;
 DEF printSeqAbsy(&amp;lt;&amp;gt;) == &amp;quot;&amp;lt;&amp;gt;&amp;quot;&lt;br /&gt;
 DEF printSeqAbsy(a::R) == `(a) ++ &amp;quot;;&amp;quot; ++ printSeqAbsy(R) &lt;br /&gt;
 &lt;br /&gt;
 DEF printType(TNat) == &amp;quot;nat&amp;quot;&lt;br /&gt;
 DEF printType(TBool) == &amp;quot;bool&amp;quot;	&lt;br /&gt;
 	&lt;br /&gt;
 DEF printSeqType(&amp;lt;&amp;gt;) == &amp;quot;&amp;lt;&amp;gt;&amp;quot;&lt;br /&gt;
 DEF printSeqType((id,typ)::R) == id ++ &amp;quot;:&amp;quot; ++ printType(typ) ++ &amp;quot;, &amp;quot; ++ printSeqType(R)&lt;br /&gt;
&lt;br /&gt;
=== Absy.sign ===&lt;br /&gt;
 /* %&lt;br /&gt;
 Die abstrakte Syntax. NOT YET IMPLEMENTED.&lt;br /&gt;
 */&lt;br /&gt;
  &lt;br /&gt;
 SIGNATURE Absy&lt;br /&gt;
  &lt;br /&gt;
 SORT absy 	&lt;br /&gt;
 &lt;br /&gt;
 -- Augabefunktion &lt;br /&gt;
 FUN ` : absy -&amp;gt; denotation&lt;br /&gt;
 &lt;br /&gt;
 -- Ausgabefunktionen für Typen inerhalb von Absy&lt;br /&gt;
 FUN printSeqAbsy : seq[absy] -&amp;gt; denotation&lt;br /&gt;
 FUN printType : type -&amp;gt; denotation&lt;br /&gt;
 FUN printSeqType : seq[denotation, type] -&amp;gt; denotation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GREY-PSS]]&lt;/div&gt;</summary>
		<author><name>84.59.133.13</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Benutzer:Grey/pss&amp;diff=6132</id>
		<title>Benutzer:Grey/pss</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Benutzer:Grey/pss&amp;diff=6132"/>
		<updated>2005-12-02T16:21:19Z</updated>

		<summary type="html">&lt;p&gt;84.59.133.13: /* Abstrakter Syntaxbaum */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Milstone 1 =&lt;br /&gt;
* EBNF in BNF Grammatik umwandeln:&lt;br /&gt;
&lt;br /&gt;
== EBNF ==&lt;br /&gt;
Gegeben ist folgende EBNF Syntax von microOPAL:&lt;br /&gt;
&lt;br /&gt;
 Prog -&amp;gt; Def Def * #&lt;br /&gt;
 Def  -&amp;gt; DEF Lhs == Expr&lt;br /&gt;
 Lhs  -&amp;gt; MAIN : Type | id ( [id : Type (, id : Type)*]) : Type&lt;br /&gt;
 Type -&amp;gt; nat | bool&lt;br /&gt;
 Expr -&amp;gt; number | true | false | id [ ( [Expr (, Expr)*] ) ] | IF Expr THEN Expr [ELSE Expr] FI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== BNF ==&lt;br /&gt;
Erste Umformung inklusive semantischer Aktionen:&lt;br /&gt;
&lt;br /&gt;
  1)Prog  	-&amp;gt;  Def Def&#039; #  		&amp;lt;1&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  2)Def  	-&amp;gt;  &amp;lt;u&amp;gt;DEF&amp;lt;/u&amp;gt; Lhs &amp;lt;u&amp;gt;==&amp;lt;/u&amp;gt; Expr		&amp;lt;2&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  3)Def&#039;  	-&amp;gt;  Def Def&#039;&lt;br /&gt;
  3b) 	       	|   e&amp;lt;br&amp;gt;&lt;br /&gt;
  4)Lhs   	-&amp;gt;  &amp;lt;u&amp;gt;MAIN&amp;lt;/u&amp;gt; &amp;lt;u&amp;gt;:&amp;lt;/u&amp;gt; Type			&amp;lt;3&amp;gt;&lt;br /&gt;
  5)		|   &amp;lt;u&amp;gt;id&amp;lt;/u&amp;gt; &amp;lt;u&amp;gt;(&amp;lt;/u&amp;gt; Lhs&#039; &amp;lt;u&amp;gt;)&amp;lt;/u&amp;gt; &amp;lt;u&amp;gt;:&amp;lt;/u&amp;gt; Type		&amp;lt;4&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  6)Lhs&#039;  	-&amp;gt;  &amp;lt;u&amp;gt;id&amp;lt;/u&amp;gt; &amp;lt;u&amp;gt;:&amp;lt;/u&amp;gt; Type Lhs´´		&amp;lt;5&amp;gt;&lt;br /&gt;
  7)		|   e&amp;lt;br&amp;gt;&lt;br /&gt;
  8)Lhs´´	-&amp;gt;  &amp;lt;u&amp;gt;,&amp;lt;/u&amp;gt; Lhs&#039;&lt;br /&gt;
  9)		|   e&amp;lt;br&amp;gt;&lt;br /&gt;
 10)Type  	-&amp;gt;  &amp;lt;u&amp;gt;nat&amp;lt;/u&amp;gt;&lt;br /&gt;
 11)       	|   &amp;lt;u&amp;gt;bool&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 12)Expr    	-&amp;gt;  &amp;lt;u&amp;gt;number&amp;lt;/u&amp;gt;&lt;br /&gt;
 13)       	|   &amp;lt;u&amp;gt;true&amp;lt;/u&amp;gt;&lt;br /&gt;
 14)       	|   &amp;lt;u&amp;gt;false&amp;lt;/u&amp;gt;&lt;br /&gt;
 15)     	|   &amp;lt;u&amp;gt;id&amp;lt;/u&amp;gt; Expr&#039;			&amp;lt;6&amp;gt;&lt;br /&gt;
 16)		|   &amp;lt;u&amp;gt;IF&amp;lt;/u&amp;gt; Expr &amp;lt;u&amp;gt;THEN&amp;lt;/u&amp;gt; Expr fi&#039; &amp;lt;u&amp;gt;FI&amp;lt;/u&amp;gt;	&amp;lt;7&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 17)Expr&#039; 	-&amp;gt;  &amp;lt;u&amp;gt;(&amp;lt;/u&amp;gt; Expr´´ &amp;lt;u&amp;gt;)&amp;lt;/u&amp;gt;&lt;br /&gt;
 18)		|   e&amp;lt;br&amp;gt;&lt;br /&gt;
 19)Expr´´	-&amp;gt;  Expr Expr´´´		&amp;lt;8&amp;gt;&lt;br /&gt;
 20)       	|   e&amp;lt;br&amp;gt;&lt;br /&gt;
 21)Expr´´´ 	-&amp;gt;  &amp;lt;u&amp;gt;,&amp;lt;/u&amp;gt; Expr&lt;br /&gt;
 22)		|   e&amp;lt;br&amp;gt;&lt;br /&gt;
 23)fi&#039;     	-&amp;gt;  &amp;lt;u&amp;gt;ELSE&amp;lt;/u&amp;gt; Expr&lt;br /&gt;
       		|   e&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Directormengen ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; rules=&amp;quot;all&amp;quot; style=&amp;quot;margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#F9F9F9; font-size:95%; empty-cells:show;&amp;quot;&lt;br /&gt;
! {{Highlight1}} |Produktion&lt;br /&gt;
! {{Highlight1}} |Directormenge&lt;br /&gt;
! {{Highlight1}} |disjunkt?&lt;br /&gt;
|-&lt;br /&gt;
|1)&lt;br /&gt;
|uninteressant&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|2)&lt;br /&gt;
|uninteressant&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|3) &amp;lt;br&amp;gt;3b)		&lt;br /&gt;
|{&amp;lt;u&amp;gt;DEF&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{#, &amp;lt;u&amp;gt;DEF&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|4) &amp;lt;br&amp;gt;5)&lt;br /&gt;
|{&amp;lt;u&amp;gt;MAIN&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;id&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|6) &amp;lt;br&amp;gt;7)&lt;br /&gt;
|{&amp;lt;u&amp;gt;id&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;)&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|8) &amp;lt;br&amp;gt; 9)&lt;br /&gt;
|{&amp;lt;u&amp;gt;,&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;)&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|10) &amp;lt;br&amp;gt; 11)&lt;br /&gt;
|{&amp;lt;u&amp;gt;nat&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;bool&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|12) &amp;lt;br&amp;gt;13) &amp;lt;br&amp;gt;14) &amp;lt;br&amp;gt;15) &amp;lt;br&amp;gt;16)&lt;br /&gt;
|{&amp;lt;u&amp;gt;number&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;true&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;false&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;id&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;IF&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|17) &amp;lt;br&amp;gt;18)&lt;br /&gt;
|{&amp;lt;u&amp;gt;(&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;THEN&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;ELSE&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;FI&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;,&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;)&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|19) &amp;lt;br&amp;gt;20)&lt;br /&gt;
|{&amp;lt;u&amp;gt;number&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;true&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;false&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;id&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;IF&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;,&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;)&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|21) &amp;lt;br&amp;gt;22)&lt;br /&gt;
|{&amp;lt;u&amp;gt;,&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt; {&amp;lt;u&amp;gt;)&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|-&lt;br /&gt;
|23) &amp;lt;br&amp;gt;24)&lt;br /&gt;
|{&amp;lt;u&amp;gt;ELSE&amp;lt;/u&amp;gt;} &amp;lt;br&amp;gt;{&amp;lt;u&amp;gt;FI&amp;lt;/u&amp;gt;}&lt;br /&gt;
|ja&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abstrakter Syntaxbaum ==&lt;br /&gt;
http://www.freitagsrunde.org/~grey/pss/absy.jpg&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
=== Absy.impl ===&lt;br /&gt;
 IMPLEMENTATION Absy&lt;br /&gt;
  &lt;br /&gt;
 DATA absy == 	Prog( defseq:seq[absy])&lt;br /&gt;
 		Def(id:denotation, seq[id:denotation, typ: type], typ:type) &lt;br /&gt;
 	 	Funcall(id: denotation, parref: seq[absy])&lt;br /&gt;
 		ParRef(id:denotation)&lt;br /&gt;
 		Cond(ifCond:absy, thenCond:absy)&lt;br /&gt;
 		CondElse(ifElse:absy, thenElse:absy, elseElse: absy)&lt;br /&gt;
 		NatConst(number:nat)&lt;br /&gt;
 		BoolConst(boolean:bool)&lt;br /&gt;
 &lt;br /&gt;
 DATA type == 	TNat(n:nat)&lt;br /&gt;
 		TBool(b:bool)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 -- Ausgabefunktion vom Absy&lt;br /&gt;
 -- DEF `(Absy) ==  &lt;br /&gt;
 DEF `(Prog(defseq)) == &amp;quot;Prog(&amp;quot; ++ (printSeqAbsy(defseq)) ++ &amp;quot;)&amp;quot;&lt;br /&gt;
 DEF `(Def(id,seqIdTyp,typ)) == &amp;quot;Def &amp;quot; ++ id ++ &amp;quot;(&amp;quot; ++ (printSeqType(seqIdTyp)) ++ &amp;quot;) :&amp;quot; ++ (printType(typ))&lt;br /&gt;
 DEF `(Funcall(id,parref)) == &amp;quot;Funcall:&amp;quot; ++ id ++ &amp;quot;(&amp;quot; ++ (printSeqAbsy(parref)) ++ &amp;quot;)&amp;quot;&lt;br /&gt;
 DEF `(ParRef(id)) == &amp;quot;ParRef:&amp;quot; ++ id &lt;br /&gt;
 DEF `(Cond(ifCond,thenCond)) == &amp;quot;Cond(&amp;quot; ++ &amp;quot;IF &amp;quot; ++ (`(ifCond)) ++ &amp;quot; THEN &amp;quot; ++ (`(thenCond)) ++ &amp;quot;)&amp;quot;&lt;br /&gt;
 DEF `(CondElse(ifCondE,thenCondE, elseCondE)) == &amp;quot;Cond(&amp;quot; ++ &amp;quot;IF &amp;quot; ++ (`(ifCondE)) ++ &amp;quot; THEN &amp;quot; ++ (`(thenCondE)) ++ &amp;quot; ELSE &amp;quot; ++ (`(elseCondE)) ++ &amp;quot;)&amp;quot;&lt;br /&gt;
 DEF `(NatConst(natC)) == `(natC)&lt;br /&gt;
 DEF `(BoolConst(boolC)) == `(boolC)&lt;br /&gt;
 &lt;br /&gt;
 DEF printSeqAbsy(&amp;lt;&amp;gt;) == &amp;quot;&amp;lt;&amp;gt;&amp;quot;&lt;br /&gt;
 DEF printSeqAbsy(a::R) == `(a) ++ &amp;quot;;&amp;quot; ++ printSeqAbsy(R) &lt;br /&gt;
 &lt;br /&gt;
 DEF printType(TNat) == &amp;quot;nat&amp;quot;&lt;br /&gt;
 DEF printType(TBool) == &amp;quot;bool&amp;quot;	&lt;br /&gt;
 	&lt;br /&gt;
 DEF printSeqType(&amp;lt;&amp;gt;) == &amp;quot;&amp;lt;&amp;gt;&amp;quot;&lt;br /&gt;
 DEF printSeqType((id,typ)::R) == id ++ &amp;quot;:&amp;quot; ++ printType(typ) ++ &amp;quot;, &amp;quot; ++ printSeqType(R)&lt;br /&gt;
&lt;br /&gt;
=== Absy.sign ===&lt;br /&gt;
 /* %&lt;br /&gt;
 Die abstrakte Syntax. NOT YET IMPLEMENTED.&lt;br /&gt;
 */&lt;br /&gt;
  &lt;br /&gt;
 SIGNATURE Absy&lt;br /&gt;
  &lt;br /&gt;
 SORT absy 	&lt;br /&gt;
 &lt;br /&gt;
 -- Augabefunktion &lt;br /&gt;
 FUN ` : absy -&amp;gt; denotation&lt;br /&gt;
 &lt;br /&gt;
 -- Ausgabefunktionen für Typen inerhalb von Absy&lt;br /&gt;
 FUN printSeqAbsy : seq[absy] -&amp;gt; denotation&lt;br /&gt;
 FUN printType : type -&amp;gt; denotation&lt;br /&gt;
 FUN printSeqType : seq[denotation, type] -&amp;gt; denotation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GREY-PSS]]&lt;/div&gt;</summary>
		<author><name>84.59.133.13</name></author>
	</entry>
</feed>