Mercurial > 14ss.theoinf
comparison notes/tex/grammars.tex @ 25:44fd483bde00
week seven sheet and notes
author | Markus Kaiser <markus.kaiser@in.tum.de> |
---|---|
date | Sun, 01 Jun 2014 00:29:52 +0200 |
parents | 322b0166cc24 |
children | f7bcd68a0c12 |
comparison
equal
deleted
inserted
replaced
24:322b0166cc24 | 25:44fd483bde00 |
---|---|
654 \end{tikzpicture} | 654 \end{tikzpicture} |
655 \end{example} | 655 \end{example} |
656 \end{frame} | 656 \end{frame} |
657 } | 657 } |
658 | 658 |
659 \defineUnit{dpda}{% | |
660 \begin{frame} | |
661 \frametitle{Kellerautomaten} | |
662 \setbeamercovered{dynamic} | |
663 | |
664 \begin{definition}[Kellerautomat] | |
665 Ein \structure{PDA} (Push-Down-Automaton) ist ein Tupel $P = (Q, \Sigma, \Gamma, \delta, q_0, Z_0, F)$ aus einer/einem | |
666 \begin{itemize} | |
667 \item \structure{Zustandsmenge} $Q$, \structure{Eingabealphabet} $\Sigma$, \structure{Kelleralphabet} $\Gamma$ | |
668 \item \structure{Übergangsfunktion} $\delta : Q \times \left( \Sigma \cup \{\epsilon\} \right) \times \Gamma \to P(Q \times \Gamma^*)$ | |
669 \item \structure{Startzustand} $q_0 \in Q$, \structure{Kellerinitialisierung} $Z_0 \in \Gamma$ | |
670 \item Menge von \structure{Endzuständen} $F \subseteq Q$ | |
671 \end{itemize} | |
672 \end{definition} | |
673 | |
674 \vfill | |
675 | |
676 \begin{definition}[Deterministischer Kellerautomat] | |
677 Ein PDA heißt \structure{deterministisch (DPDA)} wenn \alert{für alle} Zustände $q \in Q$, Buchstaben $a \in \Sigma$ und Kellerbuchstaben $X \in \Gamma$ gilt | |
678 \begin{align} | |
679 \abs{\delta(q, a, Z)} + \abs{\delta(q, \epsilon, Z)} \leq 1 | |
680 \end{align} | |
681 \end{definition} | |
682 \end{frame} | |
683 | |
684 \begin{frame} | |
685 \frametitle{Präfixbedingung} | |
686 | |
687 \begin{definition}[Präfixbedingung] | |
688 Eine Sprache $L$ erfüllt die \structure{Präfixbedingung}, wenn kein Wort der Sprache echtes Präfix eines anderen Wortes der Sprache ist.\\ | |
689 \begin{align} | |
690 \forall w \in L\ \alert{\forall s \in \Sigma^+}.\ ws \alert{\not\in} L | |
691 \end{align} | |
692 \end{definition} | |
693 | |
694 \vfill | |
695 | |
696 \begin{theorem}[] | |
697 \structure{Deterministisch kontextfreie Sprachen} werden genau dann von einem \structure{DPDA mit leerem Keller} akzeptiert, wenn sie die \alert{Präfixbedingung erfüllen}. | |
698 \end{theorem} | |
699 \end{frame} | |
700 } | |
701 | |
702 \defineUnit{lrgrammars}{% | |
703 \begin{frame} | |
704 \frametitle{Parsing} | |
705 | |
706 \begin{definition}[Parsing] | |
707 Beim \structure{Parsing} wird einem Wort ein Ableitungsbaum in einer Grammatik zugeordnet, indem \structure{bottom-up} die Produktionen (\structure{Reduktionen}) \alert{rückwärts} angewandt werden.\\ | |
708 Es wird immer die linkestmögliche Reduktion angewandt. | |
709 \end{definition} | |
710 \begin{definition}[Lookahead] | |
711 Ein \structure{Lookahead} der Länge $k$ legt fest, dass eine Reduktion nur dann angewandt werden darf, wenn die folgenden $k$ Zeichen im Wort mit dem Lookahead übereinstimmen. | |
712 \end{definition} | |
713 | |
714 \vfill | |
715 | |
716 \begin{example} | |
717 \begin{columns}[T] | |
718 \begin{column}{.4\textwidth} | |
719 \vspace{-1em} | |
720 \begin{align} | |
721 S &\to Ac \mid Bbc\\ | |
722 A &\to ab\\ | |
723 B &\to a | |
724 \end{align} | |
725 \end{column} | |
726 \begin{column}{.4\textwidth} | |
727 \begin{tabu}to \textwidth{X|X} | |
728 Produktion & Lookahead \\ \tabucline{} | |
729 $A \to ab$ & $c$ \\ | |
730 $B \to a$ & $d$ | |
731 \end{tabu} | |
732 \end{column} | |
733 \end{columns} | |
734 \vspace{.5em} | |
735 Gegeben das Wort \structure{abc}.\\ | |
736 Dann darf \alert{$B \to A$} nicht angewandt werden, \alert{$A \to ab$} jedoch schon. | |
737 \end{example} | |
738 \end{frame} | |
739 | |
740 \begin{frame}[c] | |
741 \frametitle{LR($k$)-Grammatik} | |
742 \begin{definition}[LR($k$)-Grammatik] | |
743 Eine CFG ist eine \structure{LR($k$)-Grammatik}, wenn Lookaheads der Länge $k$ genügen, um jedem Wort eine eindeutige Ableitung zuzuordnen. | |
744 \end{definition} | |
745 | |
746 \vspace{2em} | |
747 | |
748 \begin{theorem}[] | |
749 Die LR($0$)-Grammatiken sind eine \structure{echte Teilmenge} der LR($1$)-Grammatiken. Diese entspechen genau den \structure{deterministisch kontextfreien Sprachen}. | |
750 \begin{align} | |
751 LR(0) \subset LR(1) = LR(k \geq 1) = DCFL | |
752 \end{align} | |
753 \end{theorem} | |
754 \end{frame} | |
755 } | |
756 | |
659 \defineUnit{kontextfreiesprachen}{% | 757 \defineUnit{kontextfreiesprachen}{% |
660 \begin{frame} | 758 \begin{frame} |
661 \frametitle{Kontextfreie Sprachen} | 759 \frametitle{Kontextfreie Sprachen} |
662 \setbeamercovered{dynamic} | 760 \setbeamercovered{dynamic} |
663 | 761 |