Formele Talen 2010-2011
Hoorcollege
week 44,46-49: maandag 13:30-15:15 in zaal M143.
week 44-50: donderdag 15:30-17:15 in zaal M143.
docent: Wan Fokkink.
Werkcollege
week 44,47-50: woensdag 13:30-15:15 in zaal C623.
week 46: dinsdag 15:30-17:15 in zaal P337 (JFLAP practicum).
week 44-49: vrijdag 9:00-10:45 in zaal M639.
docenten: Tom Sterkenburg (woensdag) en Michel Degenhardt (vrijdag).
Boek
Peter Linz, An Introduction to Formal Languages and Automata, Jones and Bartlett, 2006 (3e of 4e editie)
Extra stof
H 8 (LL parseren) en 9.4, 9.5, 9.6 (LR parseren) uit Dick Grune en Ceriel J.H. Jacobs, Parsing Techniques - A Practical Guide, 1995, oorspronkelijk gepubliceerd door Ellis Horwood, 1990
H 3.4 (van contextvrije grammatica naar pushdown automaat) en 7.2 (Bounded Tiling Probleem en Stelling van Cook) uit Harry R. Lewis and Christos H. Papadimitriou, Elements of the Theory of Computation, Prentice Hall, 1998 (2e editie)
H 12.4 (stelling van Rice) en 17.3,17.4 (PSpace-completeness) uit Thomas A. Sudkamp, Languages and Machines, Addison Wesley, 2006 (3e editie)
H 10.1, 10.2, 10.3, 10.5, 10.7 (quantum computing) uit Sanjeev Arora en Boaz Barak, Computational Complexity: A Modern Approach, Cambridge University Press, 2007
H 4.1 (BB84 quantum cryptography protocol) uit Dagmar Bruss et al., Quantum Cryptography: A Survey, ACM Computing Surveys, 39(2), 2007
Tentamen
Bij het tentamen mogen kopieen van de slides (zie hieronder) worden gebruikt, zonder handgeschreven aantekeningen.
Het tekstboek van Linz en de handouts mogen bij het tentamen niet worden gebruikt!
Inleveropgaven
Hier zullen tijden de loop van het college twee collecties inleveropgaven worden geplaatst.
Beide inleveropgaven kunnen 0.25 bonuspunt opleveren voor het tentamen.
Slides van het hoorcollege
Slides in kleur
Slides in zwart-wit
Stof hoorcollege
- 1.1 (vanaf blz 10, "Proof Techniques"), 1.2, 2.1, 2.2, 2.3: Talen als verzamelingen, grammatica's, deterministische eindige automaten, nondeterministische eindige automaten, equivalentie van deterministische en nondeterministische eindige automaten
- 3.1, 3.2, 4.1, 3.3: Reguliere expressies, equivalentie van reguliere expressies en eindige automaten, string matching, lexicale analyse, rechts-lineaire grammatica's
- 2.4, 4.3, 4.2, 5.1, 5.2: Minimale dfa's, pompstelling voor reguliere talen, elementaire eigenschappen van reguliere talen, contextvrije talen, afleidingsbomen, ambiguiteit
- 6.1, 6.2, 6.3, <8 uit Grune en Jacobs>: Vereenvoudigen van contextvrije grammatica's, Chomsky normaalvorm, CYK parseer-algoritme, LL parseren
- <9.4, 9.5, 9.6 uit Grune en Jacobs>: LR(0) parseren, SLR(1) parseren, LR(1) parseren, LALR(1) parseren
- 7.1, 7.3, <3.4 uit Lewis en Papadimitriou>, 7.2: nondeterministische pushdown automaten, deterministische pushdown automaten, equivalentie van contextvrije grammatica's en nondeterministische pushdown automaten
- 8.1, 8.2, 9.1, 9.3, 10.2, 10.3: Pompstelling voor contextvrije talen, elementaire eigenschappen van contextvrije talen, deterministische Turing machines, Church-Turing these, Turing machines met meerdere tapes, nondeterministische Turing machines
- 10.4, 11.1, 11.2, 11.3, 10.5, 11.1, 11.4: Universele Turing machine, recursief opsombare talen, onbeperkte grammatica's, context-sensitieve grammatica's, lineaire begrensde automaten, recursieve talen, Chomsky hierarchie
- 12.1, 12.2, <12.4 uit Sudkamp>, 12.3: Onbeslisbaarheid, halting probleem, stelling van Rice, Post correspondence probleem, onbeslisbare problemen voor contextvrije talen
- Hoofdstuk 14, <7.2 uit Lewis en Papadimitriou>: Complexiteitsklassen P en NP, polynomiale-tijd reductie, NP-compleetheid, bounded tiling probleem, satisfiability probleem
- <17.3, 17.4 uit Sudkamp>: PSpace, stelling van Savitch, PSpace-compleetheid, EXP en NEXP
- <10.1, 10.2, 10.3 uit Arora en Barak>: Qubits, verstrengeling, quantum-operaties, pariteit-spel, quantum-circuits
- <10.5, 10.7 uit Arora en Barak>, <4.1 uit Bruss et al.>: Superdense coding, algoritme van Simon, complexiteitsklassen BQP en BPP, quantum-cryptografie, BB84 protocol
Opgaven werkcollege (4e editie)
- 1.2: 2,4,8,10,11(a,b,c),13,14(a,b,e,f,h)
2.1: 1,2(d),3,7(b),9(b,f),11
2.2: 12
2.3: 2,3,6,12
- 3.1: 5,7,13,16(a,b)
3.2: 1,2,4(b,d),9,10(a,c),13(a)
4.2: 5,12
3.3: 1,3,6,12
4.1: 17,20,26 (``regular'' moet ``right-linear'' zijn, 2x)
- 2.4: 1,4,6
4.3: 1,3,4(e,f)
5.1: 2,7(b,e),8(b,h),21,22
5.2: 3,5,9,14
- JFLAP practicum opdracht
- 6.1: 6,7,9,15,16
6.2: 3,4
6.3: 1,2,3
opgaven 1 t/m 4 van de extra exercise sheet
- 7.1: 3(a),4(c,g),5,11
7.2: 5,6,15
7.3: 3,5,8
- 8.1: 2,3,5,8(c)
8.2: 1,11,22,23
7.3: 16,18
- 1e collectie inleveropgaven
9.1: 4,5,7(d,e),8
- 11.1: 3,6,7,8,10
11.2: 6,7
11.3: 1(b,d),3
10.5: 4(c,d)
- 12.1: 3,7,9
12.3: 1,3
14.2: 5
14.3: 2,3
opgave 7.2.2(c) uit Lewis en Papadimitriou
- 2e collectie inleveropgaven
- Voorbeeldtentamen
Opgaven werkcollege (3e editie)
- 1.2: 2,4,7,9,10(a,b,c),12,13(a,b,e,f,h)
2.1: 1,2(d),3,7(b),9(b,f),11
2.2: 11
2.3: 2,3,6,12
- 3.1: 4,6,12,14(a,b)
3.2: 1,2,4(b,d),9,10(a,c),12(a)
4.2: 5,12
3.3: 1,3,5,11
4.1: 17,20,26 (``regular'' moet ``right-linear'' zijn, 2x)
- 2.4: 1,4,6
4.3: 1,3,4(e,f)
5.1: 2,7(b,e),8(b,h),20,21
5.2: 3,5,9,14
- JFLAP practicum opdracht
- 6.1: 6,7,9 (``Exercise 7'' moet ``Exercise 6'' zijn),14,15
6.2: 3,4
6.3: 1,2,3
opgaven 1 t/m 4 van de extra exercise sheet
- 7.1: 3(a),4(c,g),5,11
7.2: 5,6,15
7.3: 3,5,8
- 8.1: 2,3,5,8(c)
8.2: 1,11,22,23
7.3: 16,18
- 1e collectie inleveropgaven
9.1: 4,5,7(d,e),8
- 11.1: 3,6,7,8,10
11.2: 6,7
11.3: 1(b,d),3
10.5: 4(c,d)
- 12.1: 3,7,9
12.3: 1,3
14.2: 6
14.3: 2,3
opgave 7.2.2(c) uit Lewis en Papadimitriou
- 2e collectie inleveropgaven
- Voorbeeldtentamen
Oude tentamens
tentamen 2006
tentamen 2007
tentamen 2008
Nuttige links
JFLAP
Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby, ...), by Russ Cox
Wikipedia encyclopedia: Formal languages