slides/slides03.tex
changeset 967 ce5de01b9632
parent 941 66adcae6c762
child 972 ebb4a40d9bae
equal deleted inserted replaced
966:4189cb63e5db 967:ce5de01b9632
    32   \end{tabular}}
    32   \end{tabular}}
    33 
    33 
    34   \normalsize
    34   \normalsize
    35   \begin{center}
    35   \begin{center}
    36   \begin{tabular}{ll}
    36   \begin{tabular}{ll}
    37   Email:  & christian.urban at kcl.ac.uk\\
    37     Email:  & christian.urban at kcl.ac.uk\\
    38 Office Hour: & Thurdays 15 -- 16\\  
    38     Office Hour: & Friday 12 -- 14\\  
    39   Location: & N7.07 (North Wing, Bush House)\\
    39   Location: & N7.07 (North Wing, Bush House)\\
    40   Slides \& Progs: & KEATS\\
    40   Slides \& Progs: & KEATS\\
    41   Pollev: & \texttt{\alert{https://pollev.com/cfltutoratki576}}\\  
    41   Pollev: & \texttt{\alert{https://pollev.com/cfltutoratki576}}\\  
    42   \end{tabular}
    42   \end{tabular}
    43   \end{center}
    43   \end{center}
    58     \end{tikzpicture}
    58     \end{tikzpicture}
    59   \end{center}
    59   \end{center}
    60 
    60 
    61 \end{frame}
    61 \end{frame}
    62 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
    62 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
       
    63 
       
    64 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
       
    65 {
       
    66 \setbeamercolor{background canvas}{bg=cream}
       
    67 \begin{frame}[c]
       
    68 \frametitle{For Installation Problems}
       
    69 
       
    70 \begin{itemize}
       
    71 \item Harry Dilnot (harry.dilnot@kcl.ac.uk) \\
       
    72   \;\;Windows expert
       
    73 \item Oliver Iliffe (oliver.iliffe@kcl.ac.uk) 
       
    74 \end{itemize}
       
    75   
       
    76 \end{frame}
       
    77 }
       
    78 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
    79 
       
    80 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
    81 \begin{frame}[c]
       
    82 
       
    83 \begin{mybox3}{From Pollev last week}\it    
       
    84 Is the equivalence of two regexes belong in the P or NP class of problems?
       
    85 \end{mybox3}  
       
    86 
       
    87 \end{frame}
       
    88 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
    89 
       
    90 
       
    91 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
    92 \begin{frame}[c]
       
    93 
       
    94 \begin{mybox3}{From Pollev last week}\it    
       
    95   If state machines are not efficient, then how/why do many lexer
       
    96   packages like the logos crate in rust compile down a lexer
       
    97   definition down to a jump table driven state machine?
       
    98   \textcolor{gray}{Could we
       
    99   achieve quicker lexing with things like SIMD instructions?}
       
   100 \end{mybox3}  
       
   101 \end{frame}
       
   102 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   103 
       
   104 
       
   105 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   106 \begin{frame}[c]
       
   107 \frametitle{\boldmath$(abcdef)^{\{n\}}$ in Rust and Scala}
       
   108   
       
   109 \begin{textblock}{14}(1,3)
       
   110 \begin{tikzpicture}
       
   111 \begin{axis}[
       
   112     xlabel={copies of $[abcdef]$}, 
       
   113     x label style={at={(0.45,-0.16)}},
       
   114     ylabel={time in secs},
       
   115     enlargelimits=false, 
       
   116     ytick={0,10,...,60},
       
   117     ymax=65,
       
   118     xmax=50000,
       
   119     xtick={0,10000,...,40000},
       
   120     scaled ticks=false,
       
   121     axis lines=left,
       
   122     width=10cm,
       
   123     height=6cm,
       
   124     legend entries={Rust, Scala V3},
       
   125     legend style={font=\small,at={(1.15,0.48)},anchor=north},
       
   126     legend cell align=left]
       
   127     \addplot[blue,mark=*, mark options={fill=white}] table {re-rust2.data};
       
   128     \only<2>{\addplot[red,mark=*, mark options={fill=white}] table {re-scala2.data};}
       
   129 \end{axis}
       
   130 \end{tikzpicture}
       
   131 \end{textblock}
       
   132 
       
   133 \end{frame}
       
   134 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   135 
       
   136 
       
   137 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   138 \begin{frame}[c]
       
   139 
       
   140 \begin{mybox3}{From Pollev last week}\it    
       
   141   For a regular expression $r = r_1 \cdot r_2$, to prove that
       
   142   $der\;c\;r = (der\;c\;r) \cdot r^{\{n-1\}}$, is there a
       
   143   way to prove it in the general case instead
       
   144   of how you do the calculations for each $n$ in the videos?
       
   145 \end{mybox3}  
       
   146 
       
   147 \end{frame}
       
   148 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   149 
       
   150 
    63 
   151 
    64 {
   152 {
    65 \setbeamercolor{background canvas}{bg=cream}
   153 \setbeamercolor{background canvas}{bg=cream}
    66 \begin{frame}<1-10>[c]
   154 \begin{frame}<1-10>[c]
    67 \end{frame}
   155 \end{frame}
  1668 % \end{tikzpicture}\\
  1756 % \end{tikzpicture}\\
  1669 % minimal automaton
  1757 % minimal automaton
  1670 % \end{center}
  1758 % \end{center}
  1671 
  1759 
  1672 % \end{frame}
  1760 % \end{frame}
  1673 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1761 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1762 
       
  1763 
  1674 
  1764 
  1675 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1765 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1676 \begin{frame}[c]
  1766 \begin{frame}[c]
  1677 \frametitle{Regular Languages}
  1767 \frametitle{Regular Languages}
  1678 
  1768 
  1758 \end{center}
  1848 \end{center}
  1759 
  1849 
  1760 \end{frame}}
  1850 \end{frame}}
  1761 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1851 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1762 
  1852 
       
  1853 
       
  1854 
  1763 \begin{frame}<1-3>[c]
  1855 \begin{frame}<1-3>[c]
  1764 \end{frame}  
  1856 \end{frame}  
  1765 
  1857 
  1766 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1858 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1767 {
  1859 {
  1793 \end{frame}
  1885 \end{frame}
  1794 }
  1886 }
  1795 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1887 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1796 
  1888 
  1797 
  1889 
       
  1890 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1891 \begin{frame}[c]
       
  1892 \frametitle{\mbox{CW1: Regexes and \boldmath$L$-function}}
       
  1893 
       
  1894 Given 
       
  1895 \begin{center}
       
  1896 \begin{tabular}{@ {}l@ {\hspace{20mm}}l@ {\hspace{2mm}}l@ {\hspace{2mm}}l}
       
  1897 \bl{$r^+$}        & \bl{$L(r^+)$}         & \bl{$\dn$}  & \bl{$\bigcup_{1\le i}.\;L(r)^i$}\\
       
  1898 \bl{$r^?$}        & \bl{$L(r^?)$}         & \bl{$\dn$}  & \bl{$L(r) \cup \{[]\}$}\\  
       
  1899 \bl{$r_1 \,\&\, r_2$} &  \bl{$L(r_1 \& r_2)$} &  \bl{$\dn$} & \bl{$L(r_1) \cap L(r_2)$} \\
       
  1900 \bl{$r^{\{n\}}$}   & \bl{$L(r^{\{n\}})$}   & \bl{$\dn$}  & \bl{$L(r)^n$}\\
       
  1901 \bl{$r^{\{..m\}}$}   & \bl{$L(r^{\{..m\}})$}   & \bl{$\dn$}  & \bl{$\bigcup_{0\le i \le m}.\;L(r)^i$}\\
       
  1902 \bl{$r^{\{n..\}}$}   & \bl{$L(r^{\{n..\}})$}   & \bl{$\dn$}  & \bl{$\bigcup_{n\le i}.\;L(r)^i$}\\
       
  1903 \bl{$r^{\{n..m\}}$}   & \bl{$L(r^{\{n..m\}})$}   & \bl{$\dn$}  & \bl{$\bigcup_{n\le i \le m}.\;L(r)^i$}\\      
       
  1904 \bl{$\sim{}r$}   & \bl{$L(\sim{}r)$}   & \bl{$\dn$}  & \bl{$\Sigma^* - L(r)$}\\      
       
  1905 \end{tabular}
       
  1906 \end{center}
       
  1907 
       
  1908 \end{frame}
       
  1909 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
  1910 
       
  1911 
       
  1912 
       
  1913 
       
  1914 
       
  1915 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1916 \begin{frame}[c]
       
  1917 \frametitle{Nullable}
       
  1918 
       
  1919 \begin{center}
       
  1920 \begin{tabular}{@ {}l@ {\hspace{2mm}}c@ {\hspace{2mm}}l@ {}}
       
  1921 \bl{$nullable(r^+)$}    & \bl{$\dn$} & \bl{$nullable(r)$}\\
       
  1922 \bl{$nullable(r^?)$}       & \bl{$\dn$} & \bl{\textit{true}}\\
       
  1923 \bl{$nullable(r_1 \,\&\, r_2)$}  & \bl{$\dn$} & \bl{$nullable(r_1) \wedge nullable(r_2)$}\\
       
  1924 \bl{$nullable(r^{\{n\}})$}     & \bl{$\dn$} & \bl{\textit{if} $n = 0$ \textit{then} \textit{true} \textit{else} $nullable(r)$} \\ 
       
  1925 \bl{$nullable(r^{\{..m\}})$} & \bl{$\dn$} & \bl{\textit{true}} \\
       
  1926 \bl{$nullable (r^{\{n..\}})$}           & \bl{$\dn$} & \bl{\textit{if} $n = 0$ \textit{then} \textit{true} \textit{else} $nullable(r)$}\\
       
  1927 \bl{$nullable (r^{\{n..m\}})$}           & \bl{$\dn$} & \bl{\textit{if} $n = 0$ \textit{then} \textit{true} \textit{else} $nullable(r)$}\\  
       
  1928 \bl{$nullable (\sim{}r)$}           & \bl{$\dn$} & \bl{$!\,nullable(r)$}\\
       
  1929 \end{tabular}
       
  1930 \end{center}
       
  1931 
       
  1932 \end{frame}
       
  1933 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
  1934 
       
  1935 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1936 \begin{frame}[c]
       
  1937 \frametitle{Derivative}
       
  1938 
       
  1939 \begin{center}
       
  1940 \begin{tabular}{@ {}l@ {\hspace{2mm}}c@ {\hspace{2mm}}l@ {}}
       
  1941 \bl{$der\,c\,(r^+)$}    & \bl{$\dn$} & \bl{$(der\,c\,r)\cdot r^*$}\\
       
  1942 \bl{$der\,c\,(r^?)$}       & \bl{$\dn$} & \bl{$der\,c\,r$}\\
       
  1943 \bl{$der\,c\,(r_1 \,\&\, r_2)$}  & \bl{$\dn$} & \bl{$(der\,c\,r_1) \;\&\; (der\,c\,r_2)$}\\
       
  1944 \bl{$der\,c\,(r^{\{n\}})$}     & \bl{$\dn$} & \bl{\textit{if} $n = 0$ \textit{then} $\ZERO$ \textit{else} $(der\,c\,r)\cdot r^{\{n - 1\}}$} \\ 
       
  1945 \bl{$der\,c\,(r^{\{..m\}})$} & \bl{$\dn$} &  \bl{\textit{if} $m = 0$ \textit{then} $\ZERO$ \textit{else} $(der\,c\,r)\cdot r^{\{..m - 1\}}$}\\
       
  1946 \bl{$der\,c\,(r^{\{n..\}})$}           & \bl{$\dn$} & \bl{\textit{if} $n = 0$ \textit{then} $(der\,c\,r)\cdot r^*$ \textit{else} $(der\,c\,r)\cdot r^{\{n - 1..\}}$}\\
       
  1947   \bl{$der\,c\,(r^{\{n..m\}})$}           & \bl{$\dn$} & \bl{\textit{if} $n = 0 \wedge m = 0$ \textit{then} $\ZERO$ \textit{else}}\\
       
  1948                         &            & \bl{\textit{if} $ n = 0$ \textit{then} $(der\,c\,r)\cdot r^{\{..m-1\}}$
       
  1949                                        \textit{else} $(der\,c\,r)\cdot r^{\{n-1..m-1\}}$}\\  
       
  1950 \bl{$der\,c\,(\sim{}r)$}           & \bl{$\dn$} & \bl{$\sim\,(der\,c\,r)$}\\
       
  1951 \end{tabular}
       
  1952 \end{center}
       
  1953 
       
  1954 \end{frame}
       
  1955 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
  1956 
       
  1957 
  1798 
  1958 
  1799 \begin{frame}<1-15>[c]
  1959 \begin{frame}<1-15>[c]
  1800 
  1960 
  1801 \end{frame}
  1961 \end{frame}
  1802 
  1962 
  1803 \begin{frame}[t]
  1963 % \begin{frame}[t]
  1804 \begin{mybox3}{}
  1964 % \begin{mybox3}{}
  1805   I always thought dfa's needed a transition for each state for each
  1965 %   I always thought dfa's needed a transition for each state for each
  1806   character, and if not it would be an nfa not a dfa. Is there an
  1966 %   character, and if not it would be an nfa not a dfa. Is there an
  1807   example that disproves this?
  1967 %   example that disproves this?
  1808 \end{mybox3}
  1968 % \end{mybox3}
  1809 \end{frame}
  1969 % \end{frame}
  1810 
  1970 
  1811 \begin{frame}<1-12>[c]
  1971 % \begin{frame}<1-12>[c]
  1812 \end{frame}
  1972 % \end{frame}
  1813 
  1973 
  1814 \begin{frame}[t]
  1974 % \begin{frame}[t]
  1815 \begin{mybox3}{}
  1975 % \begin{mybox3}{}
  1816   Do the regular expression matchers in Python and Java 8 have more
  1976 %   Do the regular expression matchers in Python and Java 8 have more
  1817   features than the one implemented in this module? Or is there
  1977 %   features than the one implemented in this module? Or is there
  1818   another reason for their inefficiency?
  1978 %   another reason for their inefficiency?
  1819 \end{mybox3}
  1979 % \end{mybox3}
  1820 \end{frame}
  1980 % \end{frame}
  1821 
  1981 
  1822 
  1982 
  1823 \begin{frame}[c]
  1983 % \begin{frame}[c]
  1824   \begin{itemize}
  1984 %   \begin{itemize}
  1825   \item CW / censored some msgs 
  1985 %   \item CW / censored some msgs 
  1826   \item power law / proof
  1986 %   \item power law / proof
  1827   \item CW feedback
  1987 %   \item CW feedback
  1828   \item too polished CW submissions
  1988 %   \item too polished CW submissions
  1829   \item no open book  
  1989 %   \item no open book  
  1830   \end{itemize}  
  1990 %   \end{itemize}  
  1831 \end{frame}
  1991 % \end{frame}
  1832 
  1992 
  1833 
  1993 
  1834 \end{document}
  1994 \end{document}
  1835 
  1995 
  1836 %%% Local Variables:  
  1996 %%% Local Variables: