160 likes | 324 Views
Tentamen vraag 1. Complement van reguliere grammatica is ook weer regulier Complement van reguliere taal is ook weer regulier Complement van contextvrije taal is ook weer contextvrij. nonsens complement neem je van talen, niet van grammatica’s.
E N D
Tentamen vraag 1 • Complement van reguliere grammaticais ook weer regulier • Complement van reguliere taalis ook weer regulier • Complement van contextvrije taalis ook weer contextvrij nonsenscomplement neem je van talen,niet van grammatica’s waar maak de DFA compleetmet een extra sink-state,en complementeer eind-states onwaar contextvrijheid wel geslotenonder vereniging en concatenatie,maar niet onderdoorsnede en complement
Tentamen vraag 2 onwaar andere volgorde van herschrijvengeeft andere derivation, maardat maakt de grammatica nogniet ambigu. • In een niet-ambigue grammaticaheeft elke zin precies 1 derivation • In een ambigue grammaticazijn er zinnen met >1 leftmost derivation • In een niet-ambigue grammaticazijn er geen zinnen met >1 leftrecursivederivation waar definitie “ambigu” nonsensleftrecursive zeg je van regels,niet van derivations
Tentamen vraag 3 Zij G een CF-grammatica (T, N, R, S) • L(G) = { w | T* * w , w S } • L(G) = { w | S * w , w T* } • L(G) = { w | Sw R , w T* } nonsenslinks van * moet een string nonsensS is geen verzameling waar dit is de definitie van L(G) onwaar, i.h.a.het herschrijven mag meer dan één stap kosten
Tentamen vraag 4 succeed n = • const n <$> epsilon • n <$> epsilon • (\x n) <$> failp waarconst n is de functie die zijnvolgende parameter negeert nonsenstyperingsfout: n is een waarde,geen nabewerkingsfunctie onwaarsucceed levert altijd lijst met 1 elementfailp levert altijd de lege lijst
Tentamen vraag 5a • Geef het type van <|> :: <*> :: <$> :: Parser a b Parser a b Parser a b Parser a (bc) Parser a b Parser a c (bc) Parser a b Parser a c
Tentamen vraag 5b p :: Parser Char a q :: Parser Char b r = f <$> p <*> q • Kan f 1, 2 of 3 parameters hebben? • 1: • 2: • 3: f :: a c f <$> p :: Parser Char c Kan nietdit past niet als linkerparameter van <*> f :: a b c r :: Parser Char c Goeddit is het normale gebruik van <$> f :: a b c d r :: Parser Char (cd) Goedpartiële parametrisatie van f
Tentamen vraag 5c many1 :: Parser a b Parser a [b] • Schrijf • 1: • 2: • 3: many1 p = p many p (:) many p = succeed [] p many p (:) many1 p = p p many1 p (:[]) (:) many1 p = p (succeed [] many1 p) (:)
Tentamen vraag 5d:Java Boolean-Expressies dataExpr = ConBool | VarString | Fun String [Int] | AndExprExpr | OrExprExpr | NotExpr Waar | Onwaar Prioriteitenhoeven niet hier Expr :&:Expr Expr:||:Expr :&:Char ExprExpr Geval “expressie tussen haakjes”hoeft niet apart in de abstracte syntax Overal éénconstructor
Tentamen vraag 5eParser voor Java Booleans Getallen expr = term term symbol ‘+’ expr term = factor factor symbol ‘*’ term factor = constante variabele parenthesized expr … … … …
Tentamen vraag 5eParser voor Java Booleans expr = term term token “||” expr term = factor factor token “&&” term factor = symbol ‘!’ factor ident ident parth (listOf integer) token “False” token “True” parenthesized expr … … … … … … … (\x_y Or x y) (\x_y And x y) (\_y Not y) (\y Var y) Fun const Waar const (Con True)
Opgave 6a • Maak reguliere grammatica voor L(C) L(D) S a P S b Q P Q a T b T T a W T W W a X W b Y X a U U U a U Y a b S b Q P Q a S a P T b T S b Q T a W P T W Q a W a X W b Y X a U U U a U Y a b T T
Opgave 6b • Maak hiervan een DFA S a P T b T S b Q T a W P TT W Q a TW a X W b Y X a U U U a U Y a b T T a X T b Y X a U a Z Z Y a V V b Z
b a a b a a b a b a a a b Opgave 6b • Nu is de grammatica “Zeer Regulier”... S a T W a X S b Q W b Y Q a TX a U T b T X a Z T a W U a U T a X U a Z T b Y Y a V V b Z U S Q T Y W U U V Z
b a a b a a b a TY UW b a a a b Opgave 6c • Maak de automaat Deterministisch S Q T Y W U V Z
b a a b b a b b a a a a a a b a b a Opgave 6c • Maak de automaat Deterministisch S Q T a TY UW Y W U UVW UZ V Z YZ
b a a b b b a a a a b a b a Opgave 6c • Maak de automaat Deterministisch S Q T a TY UW Y UVW UZ V Z YZ