PSS Gedächtnisprotokoll Klausur WS 0506: Unterschied zwischen den Versionen
| Zeile 2: | Zeile 2: | ||
---- | ---- | ||
| − | + | <pre> | |
1. forme die grammatik in ll1 um und zeige das sie ll1 ist. | 1. forme die grammatik in ll1 um und zeige das sie ll1 ist. | ||
zeige das die ausgangsgrammatik nicht ll1 ist | zeige das die ausgangsgrammatik nicht ll1 ist | ||
| Zeile 55: | Zeile 55: | ||
??? even? | ??? even? | ||
ergebnis war korrekt, aber das sah vllt. auch etwas anders aus.. | ergebnis war korrekt, aber das sah vllt. auch etwas anders aus.. | ||
| + | </pre> | ||
Version vom 13. Februar 2006, 18:57 Uhr
Hier fehlen noch ein paar Informationen, mein Gedächtnis ist da etwas lückenhaft!
1. forme die grammatik in ll1 um und zeige das sie ll1 ist.
zeige das die ausgangsgrammatik nicht ll1 ist
S -> E#
E -> ide
| ide ( A )
A -> P
|
P -> P , E
| E
2. schreibe einen recursive decent-/combinator-parser ohne fehlerbehandlung für die grammatik:
S -> T#
T -> < T T' >
T' -> ide
|
in der sprache war: <<1 2 4> <1 4 5> 3>
das ganze repräsentierte einen n-ären baum
DATA absy ==
node(val:seq[absy])
lead(val:token)
DATA token ==
Open
Close
space
id(val:???)
3. SECD
(\x. x(2))(\y. dup(y))
ergebnis 4
dup ist triviale operation
4. codeerzeugung
int f(x:int, y:int){
if(x==0)
return y
else
return f(x-1, x*y)
}
erzeuge pseudocode für eine stackartige maschine
erläutere den stackframe (überlappung und sowas)
5. unifikation
length: string -> nat
even?: nat -> bool
h: string -> ???
h(s) == ???
eval
eval s
eval length
??? even?
ergebnis war korrekt, aber das sah vllt. auch etwas anders aus..