slides01.tex
author Christian Urban <urbanc@in.tum.de>
Tue, 25 Jun 2019 23:59:10 +0100
changeset 20 0c63fb382473
parent 16 c51178fa85fe
permissions -rw-r--r--
another superflous file
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15
Chengsong
parents:
diff changeset
     1
\documentclass[dvipsnames,14pt,t,xelatex]{beamer}
Chengsong
parents:
diff changeset
     2
\usepackage{./slides}
Chengsong
parents:
diff changeset
     3
\usepackage{./graph}
Chengsong
parents:
diff changeset
     4
\usepackage{./langs}
Chengsong
parents:
diff changeset
     5
\usepackage{./data}
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
     6
\usepackage{changepage}
15
Chengsong
parents:
diff changeset
     7
\hfuzz=220pt 
Chengsong
parents:
diff changeset
     8
Chengsong
parents:
diff changeset
     9
\lstset{language=Scala,
Chengsong
parents:
diff changeset
    10
        style=mystyle,
Chengsong
parents:
diff changeset
    11
        numbersep=0pt,
Chengsong
parents:
diff changeset
    12
        numbers=none,
Chengsong
parents:
diff changeset
    13
        xleftmargin=0mm}
Chengsong
parents:
diff changeset
    14
Chengsong
parents:
diff changeset
    15
\newcommand{\bl}[1]{\textcolor{blue}{#1}}     
Chengsong
parents:
diff changeset
    16
 
Chengsong
parents:
diff changeset
    17
% beamer stuff 
Chengsong
parents:
diff changeset
    18
\renewcommand{\slidecaption}{CFL 01, King's College London}
Chengsong
parents:
diff changeset
    19
Chengsong
parents:
diff changeset
    20
Chengsong
parents:
diff changeset
    21
\begin{filecontents}{re-python2.data}
Chengsong
parents:
diff changeset
    22
1 0.033
Chengsong
parents:
diff changeset
    23
5 0.036
Chengsong
parents:
diff changeset
    24
10 0.034
Chengsong
parents:
diff changeset
    25
15 0.036
Chengsong
parents:
diff changeset
    26
18 0.059
Chengsong
parents:
diff changeset
    27
19 0.084 
Chengsong
parents:
diff changeset
    28
20 0.141
Chengsong
parents:
diff changeset
    29
21 0.248
Chengsong
parents:
diff changeset
    30
22 0.485
Chengsong
parents:
diff changeset
    31
23 0.878
Chengsong
parents:
diff changeset
    32
24 1.71
Chengsong
parents:
diff changeset
    33
25 3.40
Chengsong
parents:
diff changeset
    34
26 7.08
Chengsong
parents:
diff changeset
    35
27 14.12
Chengsong
parents:
diff changeset
    36
28 26.69
Chengsong
parents:
diff changeset
    37
\end{filecontents}
Chengsong
parents:
diff changeset
    38
Chengsong
parents:
diff changeset
    39
\begin{filecontents}{re-java.data}
Chengsong
parents:
diff changeset
    40
5  0.00298
Chengsong
parents:
diff changeset
    41
10  0.00418
Chengsong
parents:
diff changeset
    42
15  0.00996
Chengsong
parents:
diff changeset
    43
16  0.01710
Chengsong
parents:
diff changeset
    44
17  0.03492
Chengsong
parents:
diff changeset
    45
18  0.03303
Chengsong
parents:
diff changeset
    46
19  0.05084
Chengsong
parents:
diff changeset
    47
20  0.10177
Chengsong
parents:
diff changeset
    48
21  0.19960
Chengsong
parents:
diff changeset
    49
22  0.41159
Chengsong
parents:
diff changeset
    50
23  0.82234
Chengsong
parents:
diff changeset
    51
24  1.70251
Chengsong
parents:
diff changeset
    52
25  3.36112
Chengsong
parents:
diff changeset
    53
26  6.63998
Chengsong
parents:
diff changeset
    54
27  13.35120
Chengsong
parents:
diff changeset
    55
28  29.81185
Chengsong
parents:
diff changeset
    56
\end{filecontents} 
Chengsong
parents:
diff changeset
    57
Chengsong
parents:
diff changeset
    58
\begin{filecontents}{re-java9.data}
Chengsong
parents:
diff changeset
    59
1000  0.01410
Chengsong
parents:
diff changeset
    60
2000  0.04882
Chengsong
parents:
diff changeset
    61
3000  0.10609
Chengsong
parents:
diff changeset
    62
4000  0.17456
Chengsong
parents:
diff changeset
    63
5000  0.27530
Chengsong
parents:
diff changeset
    64
6000  0.41116
Chengsong
parents:
diff changeset
    65
7000  0.53741
Chengsong
parents:
diff changeset
    66
8000  0.70261
Chengsong
parents:
diff changeset
    67
9000  0.93981
Chengsong
parents:
diff changeset
    68
10000 0.97419
Chengsong
parents:
diff changeset
    69
11000 1.28697
Chengsong
parents:
diff changeset
    70
12000 1.51387
Chengsong
parents:
diff changeset
    71
14000 2.07079
Chengsong
parents:
diff changeset
    72
16000 2.69846
Chengsong
parents:
diff changeset
    73
20000 4.41823
Chengsong
parents:
diff changeset
    74
24000 6.46077
Chengsong
parents:
diff changeset
    75
26000 7.64373
Chengsong
parents:
diff changeset
    76
30000 9.99446
Chengsong
parents:
diff changeset
    77
34000 12.966885
Chengsong
parents:
diff changeset
    78
38000 16.281621
Chengsong
parents:
diff changeset
    79
42000 19.180228
Chengsong
parents:
diff changeset
    80
46000 21.984721
Chengsong
parents:
diff changeset
    81
50000 26.950203
Chengsong
parents:
diff changeset
    82
60000 43.0327746
Chengsong
parents:
diff changeset
    83
\end{filecontents}
Chengsong
parents:
diff changeset
    84
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
    85
\begin{filecontents}{re-usize.data}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
    86
1  16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
    87
2  33
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
    88
3  63
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
    89
4  108
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
    90
5  181
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
    91
6  297
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
    92
7  484
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
    93
8  785
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
    94
9  1271
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
    95
10  2056
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
    96
11  3325
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
    97
12  5377
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
    98
13  8696
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
    99
14  14065
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   100
15  22751
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   101
16  36804
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   102
17  59541
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   103
18  96329
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   104
19  155852
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   105
20  252161
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   106
21  407991
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   107
22  660128
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   108
23  1068093
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   109
24  1728193
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   110
25  2796256
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   111
26  4524417
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   112
27  7320639
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   113
\end{filecontents}
15
Chengsong
parents:
diff changeset
   114
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   115
\begin{filecontents}{re-ssize.data}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   116
1  12
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   117
2  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   118
3  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   119
4  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   120
5  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   121
6  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   122
7  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   123
8  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   124
9  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   125
10  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   126
11  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   127
12  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   128
13  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   129
14  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   130
15  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   131
16  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   132
17  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   133
18  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   134
19  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   135
20  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   136
21  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   137
22  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   138
23  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   139
24  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   140
25  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   141
26  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   142
27  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   143
28  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   144
29  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   145
30  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   146
31  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   147
32  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   148
33  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   149
34  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   150
35  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   151
36  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   152
37  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   153
38  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   154
39  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   155
40  19
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   156
\end{filecontents}
15
Chengsong
parents:
diff changeset
   157
Chengsong
parents:
diff changeset
   158
\begin{document}
Chengsong
parents:
diff changeset
   159
Chengsong
parents:
diff changeset
   160
Chengsong
parents:
diff changeset
   161
Chengsong
parents:
diff changeset
   162
Chengsong
parents:
diff changeset
   163
Chengsong
parents:
diff changeset
   164
Chengsong
parents:
diff changeset
   165
Chengsong
parents:
diff changeset
   166
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Chengsong
parents:
diff changeset
   167
\begin{frame}[t]
Chengsong
parents:
diff changeset
   168
\frametitle{%  
Chengsong
parents:
diff changeset
   169
  \begin{tabular}{@ {}c@ {}}
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   170
  \\[-1mm]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   171
  \LARGE Fast Regular Expression  \\[-1mm] 
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   172
  \LARGE Matching Using Derivatives\\[-3mm] 
15
Chengsong
parents:
diff changeset
   173
  \end{tabular}}
Chengsong
parents:
diff changeset
   174
Chengsong
parents:
diff changeset
   175
  \begin{center}
Chengsong
parents:
diff changeset
   176
  %\includegraphics[scale=0.3]{pics/ante1.jpg}\hspace{5mm}
Chengsong
parents:
diff changeset
   177
  %\includegraphics[scale=0.31]{pics/ante2.jpg}\\
Chengsong
parents:
diff changeset
   178
  %\footnotesize\textcolor{gray}{Antikythera automaton, 100 BC (Archimedes?)}
Chengsong
parents:
diff changeset
   179
  \end{center}
Chengsong
parents:
diff changeset
   180
Chengsong
parents:
diff changeset
   181
  \normalsize
Chengsong
parents:
diff changeset
   182
  \begin{center}
Chengsong
parents:
diff changeset
   183
  \begin{tabular}{ll}
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   184
  %Email:  & christian.urban at kcl.ac.uk\\
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   185
  %Office: & N\liningnums{7.07} (North Wing, Bush House)\\
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   186
  %Slides: & KEATS
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   187
  Student: & Chengsong Tan\\
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   188
  Supervisor: & Christian Urban \\
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   189
  Date: & 2019/5/10
15
Chengsong
parents:
diff changeset
   190
  \end{tabular}
Chengsong
parents:
diff changeset
   191
  \end{center}
Chengsong
parents:
diff changeset
   192
Chengsong
parents:
diff changeset
   193
\end{frame}
Chengsong
parents:
diff changeset
   194
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Chengsong
parents:
diff changeset
   195
Chengsong
parents:
diff changeset
   196
\begin{frame}[t]
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   197
\frametitle{Regular Expressions}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   198
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   199
Their inductive definition:\\
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   200
\hspace{10pt}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   201
\vspace{100pt}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   202
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   203
\begin{textblock}{6}(1.5,3.5)
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   204
  \begin{tabular}{@ {}rrl@ {\hspace{13mm}}l}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   205
  \bl{$r$} & \bl{$::=$}  & \bl{$\ZERO$}  & nothing\\
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   206
         & \bl{$\mid$} & \bl{$\ONE$}       & empty string / \pcode{""} / $[]$\\
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   207
         & \bl{$\mid$} & \bl{$c$}                         & character\\
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   208
         & \bl{$\mid$} & \bl{$r_1 + r_2$}  & alternative / choice\\
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   209
         & \bl{$\mid$} & \bl{$r_1 \cdot r_2$} & sequence\\
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   210
         & \bl{$\mid$} & \bl{$r^*$}            & star (zero or more)\\
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   211
  \end{tabular}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   212
  \end{textblock}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   213
  
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   214
 \begin{itemize}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   215
\item { Formalized by Stephen Coles Kleene in 1950s} 
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   216
\item {\bf What could be possibly interesting?} 
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   217
 \end{itemize} 
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   218
\end{frame}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   219
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   220
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   221
\iffalse
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   222
\begin{frame}[t]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   223
\frametitle{Regular Expressions}
15
Chengsong
parents:
diff changeset
   224
Chengsong
parents:
diff changeset
   225
John Regehr {\small(Univ.~Utah, LLVM compiler hacker)}\smallskip\\
Chengsong
parents:
diff changeset
   226
Chengsong
parents:
diff changeset
   227
\begin{bubble}[10.5cm]
Chengsong
parents:
diff changeset
   228
  \bf ``\ldots{}It’s effectively a perpetual
Chengsong
parents:
diff changeset
   229
  employment act for solid compiler hackers.''
Chengsong
parents:
diff changeset
   230
\end{bubble}
Chengsong
parents:
diff changeset
   231
Chengsong
parents:
diff changeset
   232
\onslide<1->{
Chengsong
parents:
diff changeset
   233
\only<2>{
Chengsong
parents:
diff changeset
   234
\begin{itemize}
Chengsong
parents:
diff changeset
   235
\item {\bf Hardware is getting weirder
Chengsong
parents:
diff changeset
   236
  rather than getting clocked faster}
Chengsong
parents:
diff changeset
   237
Chengsong
parents:
diff changeset
   238
\begin{itemize}
Chengsong
parents:
diff changeset
   239
\item  Almost all processors are
Chengsong
parents:
diff changeset
   240
  multicores nowadays and it looks like there is increasing asymmetry in
Chengsong
parents:
diff changeset
   241
  resources across cores. Processors come with vector units, crypto
Chengsong
parents:
diff changeset
   242
  accelerators etc. We have DSPs, GPUs,
Chengsong
parents:
diff changeset
   243
  ARM big.little, and Xeon Phi. This is only scratching the
Chengsong
parents:
diff changeset
   244
  surface.
Chengsong
parents:
diff changeset
   245
\end{itemize}  
Chengsong
parents:
diff changeset
   246
\end{itemize}}
Chengsong
parents:
diff changeset
   247
\only<3>{
Chengsong
parents:
diff changeset
   248
\begin{itemize}
Chengsong
parents:
diff changeset
   249
\item {\bf We’re getting tired of low-level languages and
Chengsong
parents:
diff changeset
   250
    their associated security disasters}
Chengsong
parents:
diff changeset
   251
  
Chengsong
parents:
diff changeset
   252
\begin{itemize}
Chengsong
parents:
diff changeset
   253
\item 
Chengsong
parents:
diff changeset
   254
  We want to write new code, to
Chengsong
parents:
diff changeset
   255
  whatever extent possible, in safer, higher-level
Chengsong
parents:
diff changeset
   256
  languages. Compilers are caught right in the middle of these
Chengsong
parents:
diff changeset
   257
  opposing trends: one of their main jobs is to help bridge the large
Chengsong
parents:
diff changeset
   258
  and growing gap between increasingly high-level languages and
Chengsong
parents:
diff changeset
   259
  increasingly wacky platforms.
Chengsong
parents:
diff changeset
   260
\end{itemize}  
Chengsong
parents:
diff changeset
   261
\end{itemize}}}
Chengsong
parents:
diff changeset
   262
Chengsong
parents:
diff changeset
   263
\end{frame}
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   264
\fi
15
Chengsong
parents:
diff changeset
   265
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Chengsong
parents:
diff changeset
   266
Chengsong
parents:
diff changeset
   267
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   268
\iffalse
15
Chengsong
parents:
diff changeset
   269
\begin{frame}[c]
Chengsong
parents:
diff changeset
   270
\frametitle{Why Bother?}
Chengsong
parents:
diff changeset
   271
Chengsong
parents:
diff changeset
   272
\begin{columns}[t]
Chengsong
parents:
diff changeset
   273
\begin{column}{.5\textwidth}
Chengsong
parents:
diff changeset
   274
Ruby, Python, Java 8\medskip\\
Chengsong
parents:
diff changeset
   275
\begin{tikzpicture}\footnotesize
Chengsong
parents:
diff changeset
   276
\begin{axis}[
Chengsong
parents:
diff changeset
   277
    xlabel={$n$},
Chengsong
parents:
diff changeset
   278
    x label style={at={(1.05,0.0)}},
Chengsong
parents:
diff changeset
   279
    ylabel={time in secs},
Chengsong
parents:
diff changeset
   280
    enlargelimits=false,
Chengsong
parents:
diff changeset
   281
    xtick={0,5,...,30},
Chengsong
parents:
diff changeset
   282
    xmax=33,
Chengsong
parents:
diff changeset
   283
    ymax=35,
Chengsong
parents:
diff changeset
   284
    ytick={0,5,...,30},
Chengsong
parents:
diff changeset
   285
    scaled ticks=false,
Chengsong
parents:
diff changeset
   286
    axis lines=left,
Chengsong
parents:
diff changeset
   287
    width=5.5cm,
Chengsong
parents:
diff changeset
   288
    height=4cm, 
Chengsong
parents:
diff changeset
   289
    legend entries={Python,Ruby},  
Chengsong
parents:
diff changeset
   290
    legend pos=north west,
Chengsong
parents:
diff changeset
   291
    legend cell align=left]
Chengsong
parents:
diff changeset
   292
\addplot[blue,mark=*, mark options={fill=white}] table {re-python.data};
Chengsong
parents:
diff changeset
   293
\addplot[brown,mark=triangle*, mark options={fill=white}] table {re-ruby.data};
Chengsong
parents:
diff changeset
   294
\end{axis}
Chengsong
parents:
diff changeset
   295
\end{tikzpicture}
Chengsong
parents:
diff changeset
   296
\begin{tikzpicture}\footnotesize
Chengsong
parents:
diff changeset
   297
\begin{axis}[
Chengsong
parents:
diff changeset
   298
    xlabel={$n$},
Chengsong
parents:
diff changeset
   299
    x label style={at={(1.05,0.0)}},
Chengsong
parents:
diff changeset
   300
    ylabel={time in secs},
Chengsong
parents:
diff changeset
   301
    enlargelimits=false,
Chengsong
parents:
diff changeset
   302
    xtick={0,5,...,30},
Chengsong
parents:
diff changeset
   303
    xmax=33,
Chengsong
parents:
diff changeset
   304
    ymax=35,
Chengsong
parents:
diff changeset
   305
    ytick={0,5,...,30},
Chengsong
parents:
diff changeset
   306
    scaled ticks=false,
Chengsong
parents:
diff changeset
   307
    axis lines=left,
Chengsong
parents:
diff changeset
   308
    width=5.5cm,
Chengsong
parents:
diff changeset
   309
    height=4cm, 
Chengsong
parents:
diff changeset
   310
    legend entries={Python, Java 8},  
Chengsong
parents:
diff changeset
   311
    legend pos=north west,
Chengsong
parents:
diff changeset
   312
    legend cell align=left]
Chengsong
parents:
diff changeset
   313
\addplot[blue,mark=*, mark options={fill=white}] table {re-python2.data};   
Chengsong
parents:
diff changeset
   314
\addplot[cyan,mark=*, mark options={fill=white}] table {re-java.data};
Chengsong
parents:
diff changeset
   315
\end{axis}
Chengsong
parents:
diff changeset
   316
\end{tikzpicture}
Chengsong
parents:
diff changeset
   317
Chengsong
parents:
diff changeset
   318
\end{column}
Chengsong
parents:
diff changeset
   319
\begin{column}{.5\textwidth}
Chengsong
parents:
diff changeset
   320
Us (after next lecture)\medskip\\
Chengsong
parents:
diff changeset
   321
\begin{tikzpicture}\footnotesize
Chengsong
parents:
diff changeset
   322
\begin{axis}[
Chengsong
parents:
diff changeset
   323
    xlabel={$n$},
Chengsong
parents:
diff changeset
   324
    x label style={at={(1.07,0.0)}},
Chengsong
parents:
diff changeset
   325
    ylabel={time in secs},
Chengsong
parents:
diff changeset
   326
    enlargelimits=false,
Chengsong
parents:
diff changeset
   327
    xtick={0,5000,...,10000},
Chengsong
parents:
diff changeset
   328
    xmax=11000,
Chengsong
parents:
diff changeset
   329
    ymax=35,
Chengsong
parents:
diff changeset
   330
    ytick={0,5,...,30},
Chengsong
parents:
diff changeset
   331
    scaled ticks=false,
Chengsong
parents:
diff changeset
   332
    axis lines=left,
Chengsong
parents:
diff changeset
   333
    width=5.5cm,
Chengsong
parents:
diff changeset
   334
    height=4cm]
Chengsong
parents:
diff changeset
   335
\addplot[green,mark=square*,mark options={fill=white}] table {re2.data};
Chengsong
parents:
diff changeset
   336
\addplot[black,mark=square*,mark options={fill=white}] table {re3.data};
Chengsong
parents:
diff changeset
   337
\end{axis}
Chengsong
parents:
diff changeset
   338
\end{tikzpicture}
Chengsong
parents:
diff changeset
   339
\begin{tikzpicture}\footnotesize
Chengsong
parents:
diff changeset
   340
\begin{axis}[
Chengsong
parents:
diff changeset
   341
    xlabel={$n$},
Chengsong
parents:
diff changeset
   342
    x label style={at={(1.07,0.0)}},
Chengsong
parents:
diff changeset
   343
    ylabel={time in secs},
Chengsong
parents:
diff changeset
   344
    enlargelimits=false,
Chengsong
parents:
diff changeset
   345
    ymax=35,
Chengsong
parents:
diff changeset
   346
    ytick={0,5,...,30},
Chengsong
parents:
diff changeset
   347
    scaled ticks=false,
Chengsong
parents:
diff changeset
   348
    axis lines=left,
Chengsong
parents:
diff changeset
   349
    width=5.5cm,
Chengsong
parents:
diff changeset
   350
    height=4cm]
Chengsong
parents:
diff changeset
   351
\addplot[black,mark=square*,mark options={fill=white}] table {re3a.data};
Chengsong
parents:
diff changeset
   352
\end{axis}
Chengsong
parents:
diff changeset
   353
\end{tikzpicture}
Chengsong
parents:
diff changeset
   354
\end{column}
Chengsong
parents:
diff changeset
   355
\end{columns}\bigskip
Chengsong
parents:
diff changeset
   356
Chengsong
parents:
diff changeset
   357
\small\centering
Chengsong
parents:
diff changeset
   358
matching \texttt{[a?]\{n\}[a]\{n\}} and \texttt{(a*)*b}
Chengsong
parents:
diff changeset
   359
against $\underbrace{\texttt{a}...\texttt{a}}_n$
Chengsong
parents:
diff changeset
   360
\end{frame} 
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   361
\fi
15
Chengsong
parents:
diff changeset
   362
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   363
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   364
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   365
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   366
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   367
\begin{frame}[c]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   368
\frametitle{Catastrophic Backtracking}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   369
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   370
\begin{columns}
15
Chengsong
parents:
diff changeset
   371
\begin{column}{.5\textwidth}
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   372
15
Chengsong
parents:
diff changeset
   373
\begin{tikzpicture}
Chengsong
parents:
diff changeset
   374
\begin{axis}[
Chengsong
parents:
diff changeset
   375
    xlabel={$n$},
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   376
    x label style={at={(1.07,0.0)}},
15
Chengsong
parents:
diff changeset
   377
    ylabel={time in secs},
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   378
    %y label style={at={(0.06,0.5)}},
15
Chengsong
parents:
diff changeset
   379
    enlargelimits=false,
Chengsong
parents:
diff changeset
   380
    xtick={0,5,...,30},
Chengsong
parents:
diff changeset
   381
    xmax=33,
Chengsong
parents:
diff changeset
   382
    ymax=45,
Chengsong
parents:
diff changeset
   383
    ytick={0,10,...,40},
Chengsong
parents:
diff changeset
   384
    scaled ticks=false,
Chengsong
parents:
diff changeset
   385
    axis lines=left,
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   386
    width=5cm,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   387
    height=4cm, 
15
Chengsong
parents:
diff changeset
   388
    legend entries={Python, Java 8},  
Chengsong
parents:
diff changeset
   389
    legend pos=north west]
Chengsong
parents:
diff changeset
   390
\addplot[blue,mark=*, mark options={fill=white}] table {re-python2.data};
Chengsong
parents:
diff changeset
   391
\addplot[cyan,mark=*, mark options={fill=white}] table {re-java.data};
Chengsong
parents:
diff changeset
   392
\end{axis}
Chengsong
parents:
diff changeset
   393
\end{tikzpicture}
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   394
15
Chengsong
parents:
diff changeset
   395
\begin{tikzpicture}
Chengsong
parents:
diff changeset
   396
\begin{axis}[
Chengsong
parents:
diff changeset
   397
    xlabel={$n$},
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   398
    x label style={at={(1.07,0.0)}},
15
Chengsong
parents:
diff changeset
   399
    ylabel={time in secs},
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   400
    %y label style={at={(0.06,0.5)}},
15
Chengsong
parents:
diff changeset
   401
    %enlargelimits=false,
Chengsong
parents:
diff changeset
   402
    %xtick={0,5000,...,30000},
Chengsong
parents:
diff changeset
   403
    xmax=65000,
Chengsong
parents:
diff changeset
   404
    ymax=45,
Chengsong
parents:
diff changeset
   405
    ytick={0,10,...,40},
Chengsong
parents:
diff changeset
   406
    scaled ticks=false,
Chengsong
parents:
diff changeset
   407
    axis lines=left,
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   408
    width=5cm,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   409
    height=4cm, 
15
Chengsong
parents:
diff changeset
   410
    legend entries={Java 9},  
Chengsong
parents:
diff changeset
   411
    legend pos=north west]
Chengsong
parents:
diff changeset
   412
\addplot[cyan,mark=*, mark options={fill=white}] table {re-java9.data};
Chengsong
parents:
diff changeset
   413
\end{axis}
Chengsong
parents:
diff changeset
   414
\end{tikzpicture}
Chengsong
parents:
diff changeset
   415
\end{column}
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   416
\end{columns}\bigskip
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   417
\center
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   418
matching  \texttt{(a*)*b}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   419
against $\underbrace{\texttt{a}...\texttt{a}}_n$
15
Chengsong
parents:
diff changeset
   420
\end{frame}
Chengsong
parents:
diff changeset
   421
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
Chengsong
parents:
diff changeset
   422
Chengsong
parents:
diff changeset
   423
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   424
\begin{frame}[fragile]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   425
\frametitle{Impact}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   426
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   427
\begin{itemize}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   428
\item Network Traffic Analysis
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   429
\begin{itemize}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   430
\item Snort:  > 5 million downloads
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   431
\item Bro:  > 10000 downloads
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   432
\item thousands of regexes
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   433
\item \alert{R}egular \alert{e}xpression \alert{D}enial \alert{o}f \alert{S}ervice (ReDoS)\medskip
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   434
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   435
\end{itemize}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   436
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   437
\begin{verbatim}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   438
 Jan 2 00:53:19 talisker sshd: Received disconnect from 110.53.183.227: [preauth]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   439
 Jan 2 00:58:31 talisker sshd: Received disconnect from 110.53.183.252: [preauth]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   440
 Jan 2 01:01:28 talisker sshd: Received disconnect from 221.194.47.236: [preauth]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   441
 Jan 2 01:03:59 talisker sshd: Received disconnect from 110.53.183.228: [preauth]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   442
 Jan 2 01:06:53 talisker sshd: Received disconnect from 221.194.47.245: [preauth]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   443
 ...
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   444
\end{verbatim}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   445
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   446
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   447
\item Compilers: lexical analysis
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   448
\end{itemize}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   449
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   450
\end{frame}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   451
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   452
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   453
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   454
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15
Chengsong
parents:
diff changeset
   455
\begin{frame}[c]
Chengsong
parents:
diff changeset
   456
\frametitle{Evil Regular Expressions}
Chengsong
parents:
diff changeset
   457
Chengsong
parents:
diff changeset
   458
\begin{itemize}
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   459
%\item \alert{R}egular \alert{e}xpression \alert{D}enial \alert{o}f \alert{S}ervice (ReDoS)\medskip
15
Chengsong
parents:
diff changeset
   460
\item Evil regular expressions\medskip
Chengsong
parents:
diff changeset
   461
\begin{itemize}
Chengsong
parents:
diff changeset
   462
\item \bl{$(a^{?\{n\}}) \cdot a^{\{n\}}$}
Chengsong
parents:
diff changeset
   463
\item \bl{$(a^*)^*\cdot b$}
Chengsong
parents:
diff changeset
   464
\item \bl{$([a$\,-\,$z]^+)^*$}
Chengsong
parents:
diff changeset
   465
\item \bl{$(a + a \cdot a)^*$}
Chengsong
parents:
diff changeset
   466
\item \bl{$(a + a^?)^*$}
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   467
\item \bl{$\^(.*?,)\{11\}P$}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   468
\item \bl{$<html>.*?<head>.*?<title>.*?</title>.*?</head>.*?<body[^>]*>.*?</body>.*?</html>$}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   469
\end{itemize}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   470
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   471
\item Pearl Compatible Regular Expression(PCRE) \bl{$(r) \backslash 1$}
15
Chengsong
parents:
diff changeset
   472
\end{itemize}
Chengsong
parents:
diff changeset
   473
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   474
\end{frame}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   475
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   476
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   477
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   478
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   479
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   480
\begin{frame}[c]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   481
\frametitle{A Concrete Example}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   482
\begin{adjustwidth*}{}{-1.2cm} 
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   483
\resizebox{13cm}{4cm}{
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   484
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   485
    \begin{tikzpicture}[shorten >=1pt,node distance=2cm,on grid,auto] 
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   486
    \node[state,initial] (q_0) {$0$};
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   487
    \node[state] (q_1) [right = of q_0] {$1$};    
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   488
    \node[state] (q_2) [right=of q_1] {$2$};
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   489
    \node (q_dots1) [right = of q_2] {$\cdots$};
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   490
    \node [state] (q_n) [right = of q_dots1] {$n$};
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   491
    \node [state] (q_n1) [right = of q_n] {$n+1$};
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   492
    \node[state] (q_n2) [right=of q_n1] {$n+2$};
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   493
    \node[state,accepting] (q_n3) [right=of q_n2] {$n+3$};    
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   494
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   495
    \path[->]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   496
    (q_0) edge [loop above] node {$*$} (q_0)
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   497
    (q_0) edge node {$a$} (q_1)    
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   498
    (q_1) edge node {$*$} (q_2)     
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   499
    (q_2) edge node {$*$} (q_dots1)   
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   500
    (q_dots1) edge node{$*$} (q_n)
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   501
    (q_n) edge node{$*$} (q_n1)
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   502
    (q_n1) edge node{$*$} (q_n2)
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   503
    (q_n2) edge node{$*$} (q_n3);
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   504
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   505
\draw [decorate,decoration={brace,amplitude=10pt,mirror,raise=10pt},yshift=0pt]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   506
(q_2.south west) -- (q_n1.south east) node [black,midway,yshift = -2cm] {\footnotesize n states};
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   507
%\draw [decorate,decoration={brace,amplitude=10pt,mirror,raise=4pt},yshift=0pt]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   508
%(3.5,0.65) -- (3.5,6.5) node [black,midway,xshift=0.8cm] {\footnotesize
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   509
%$P_2$};
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   510
\end{tikzpicture}   
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   511
}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   512
\end{adjustwidth*}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   513
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   514
\begin{itemize}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   515
\item
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   516
NFA accepting Regex $.*a.{n}bc$
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   517
\item
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   518
Matching the string aaaaaaaaaaaaaaa.....abc
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   519
\end{itemize}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   520
\end{frame}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   521
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   522
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   523
\begin{frame}[c]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   524
\frametitle{Brzozowski Derivative}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   525
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   526
\begin{itemize}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   527
\item Brzozowski invented in his 1964 Phd thesis
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   528
\item Intuition: Chopping off the first character
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   529
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   530
\begin{center}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   531
\bl{$A \backslash c \dn \{ s \;|\;  c\!::\!s \in A\}$ } 
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   532
\end{center}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   533
\item
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   534
For \bl{$A = \{\textit{foo}, \textit{bar}, \textit{frak}\}$} then
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   535
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   536
\begin{center}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   537
\bl{\begin{tabular}{l@{\hspace{2mm}}c@{\hspace{2mm}}l}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   538
$A \backslash f $ & $=$ & $\{\textit{oo}, \textit{rak}\}$\\
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   539
$A \backslash b $ & $=$ &  $\{\textit{ar}\}$\\  
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   540
$A \backslash a $ & $=$ & $\{\}$\pause
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   541
\end{tabular}}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   542
\end{center}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   543
\item
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   544
\begin{tabular}{rp{4cm}}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   545
\bl {$r \,matches \,s=c_1c_2...c_n$}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   546
\bl{$\Leftrightarrow$}  \bl{$c_1c_2...c_n \in L(r)$}   \bl{$\Leftrightarrow$}\\
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   547
  \bl{$c_2...c_n \in L(r) \backslash c_1$}\\
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   548
\bl{$\Leftrightarrow$}  \bl{$\cdots$}\\
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   549
\bl{$\Leftrightarrow$}  \bl{$[] \in ((L(r)\backslash c_1) \backslash c_2)\cdots\backslash c_n$}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   550
\end{tabular}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   551
15
Chengsong
parents:
diff changeset
   552
\end{itemize}
Chengsong
parents:
diff changeset
   553
Chengsong
parents:
diff changeset
   554
\end{frame}
Chengsong
parents:
diff changeset
   555
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   556
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   557
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   558
\begin{frame}[c]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   559
\frametitle{Previous Example}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   560
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   561
\begin{center}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   562
\begin{tikzpicture}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   563
  \begin{axis}[
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   564
    xlabel={$n$},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   565
    x label style={at={(1.09,-0.15)}},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   566
    ylabel={time in secs},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   567
    scaled x ticks=false,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   568
    enlargelimits=false,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   569
    xtick distance=10000,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   570
    xmax=44000, 
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   571
    ytick={0,10,...,30}, 
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   572
    ymax=35, 
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   573
    axis lines=left,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   574
    width=7cm,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   575
    height=3.5cm, 
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   576
    legend entries={Java \liningnums{9}+},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   577
    legend pos=north west,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   578
    legend cell align=left]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   579
\addplot[blue,mark=square*,mark options={fill=white}] table {re-java9.data};
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   580
\end{axis}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   581
\end{tikzpicture}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   582
\end{center}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   583
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   584
\begin{center}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   585
\begin{tikzpicture}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   586
  \begin{axis}[
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   587
    xlabel={$n$},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   588
    x label style={at={(1.09,0.0)}},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   589
    ylabel={time in secs},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   590
    scaled x ticks=false,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   591
    xtick distance=2000000,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   592
    enlargelimits=false,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   593
    xmax=6400000, 
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   594
    ytick={0,10,...,30},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   595
    ymax=35,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   596
    axis lines=left,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   597
    width=7cm,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   598
    height=3.5cm, 
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   599
    legend entries={Simple Scala},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   600
    legend pos=north west,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   601
    legend cell align=left]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   602
%\addplot[green,mark=square*,mark options={fill=white}] table {re2a.data};
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   603
\addplot[black,mark=square*,mark options={fill=white}] table {re3a.data};
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   604
\end{axis}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   605
\end{tikzpicture}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   606
\end{center}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   607
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   608
Regex: \bl{$(a^*)^* \cdot b$} \space\space\space\space\space\space
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   609
Strings of the form \bl{$\underbrace{\,a\ldots a\,}_{n}$}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   610
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   611
\end{frame}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   612
15
Chengsong
parents:
diff changeset
   613
Chengsong
parents:
diff changeset
   614
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   615
\begin{frame}[t]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   616
\frametitle{Optimization}
15
Chengsong
parents:
diff changeset
   617
Chengsong
parents:
diff changeset
   618
\begin{center}
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   619
\begin{tikzpicture}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   620
\begin{semilogyaxis}[
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   621
    xlabel={$n$},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   622
    x label style={at={(1.05,0.0)}},   
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   623
    ylabel={regex size},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   624
    enlargelimits=false,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   625
    xtick={1,4,...,30},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   626
    xmax=33,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   627
    %ytick={0, 10,...,100},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   628
    scaled ticks=false,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   629
    axis lines=left,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   630
    width=9cm,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   631
    height=4.5cm, 
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   632
    legend entries={Simple Scala},  
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   633
    legend pos=  south east,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   634
    legend cell align=left  
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   635
]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   636
\addplot[black,mark=square*, mark options={fill=white}] table {re-usize.data};
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   637
%\addplot[brown,mark=pentagon*, mark options={fill=white}] table {re-ssize.data};  
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   638
%\addplot[red,mark=triangle*,mark options={fill=white}] table {re1.data};  
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   639
%\addplot[green,mark=square*,mark options={fill=white}] table {re2.data};
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   640
\end{semilogyaxis}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   641
\end{tikzpicture}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   642
\end{center}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   643
Regex: \bl{$(a+aa)^* \cdot b$} \space\space\space\space\space\space
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   644
Strings of the form \bl{$\underbrace{\,a\ldots a\,}_{n}$}\\
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   645
\begin{itemize}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   646
\item
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   647
Solution: Simplification%(Sulzmann \& Lu)
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   648
\begin{itemize}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   649
\item $r+(r+s) = r+r+s = r+s$
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   650
\item $1 \cdot r= r$
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   651
\end{itemize}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   652
\end{itemize}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   653
\end{frame}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   654
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   655
\begin{frame}[t]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   656
\frametitle{Optimization}
15
Chengsong
parents:
diff changeset
   657
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   658
Regex: \bl{$(a+aa)^* \cdot b$} \space\space\space\space\space\space
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   659
Strings of the form \bl{$\underbrace{\,a\ldots a\,}_{n}$}
15
Chengsong
parents:
diff changeset
   660
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   661
\begin{center}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   662
\begin{tikzpicture}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   663
\begin{axis}[
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   664
    xlabel={$n$},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   665
    x label style={at={(1.05,0.0)}},   
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   666
    ylabel={regex size},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   667
    enlargelimits=false,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   668
    xtick={1,4,...,30},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   669
    xmax=33,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   670
    %ytick={0, 10,...,100},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   671
    scaled ticks=false,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   672
    axis lines=left,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   673
    width=9cm,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   674
    height=4.5cm, 
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   675
    legend entries={Simplification Applied},  
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   676
    legend pos=  south east,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   677
    legend cell align=left  
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   678
]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   679
%\addplot[black,mark=square*, mark options={fill=white}] table {re-usize.data};
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   680
\addplot[black,mark=triangle*, mark options={fill=white}] table {re-ssize.data};  
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   681
%\addplot[red,mark=triangle*,mark options={fill=white}] table {re1.data};  
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   682
%\addplot[green,mark=square*,mark options={fill=white}] table {re2.data};
15
Chengsong
parents:
diff changeset
   683
\end{axis}
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   684
\end{tikzpicture}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   685
\end{center}
15
Chengsong
parents:
diff changeset
   686
\begin{itemize}
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   687
\item
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   688
Lexer? Not just matcher
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   689
\begin{itemize}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   690
\item
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   691
Bit-Coded Regular Expression Parsing (Lasse Nielsen, Fritz Henglein 2011)
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   692
\item
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   693
Bit-Coded Regular Expression Parsing with Simplification (Sulzmann and Lu 2014)
15
Chengsong
parents:
diff changeset
   694
\end{itemize}
Chengsong
parents:
diff changeset
   695
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   696
\end{itemize}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   697
\end{frame}
15
Chengsong
parents:
diff changeset
   698
Chengsong
parents:
diff changeset
   699
Chengsong
parents:
diff changeset
   700
Chengsong
parents:
diff changeset
   701
Chengsong
parents:
diff changeset
   702
Chengsong
parents:
diff changeset
   703
Chengsong
parents:
diff changeset
   704
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Chengsong
parents:
diff changeset
   705
Chengsong
parents:
diff changeset
   706
\begin{frame}[t]
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   707
\frametitle{Ongoing Work}
15
Chengsong
parents:
diff changeset
   708
Chengsong
parents:
diff changeset
   709
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   710
\begin{tikzpicture}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   711
\begin{semilogyaxis}[
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   712
    xlabel={$n$},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   713
    x label style={at={(1.05,0.0)}},   
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   714
    ylabel={regex size},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   715
    enlargelimits=false,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   716
    xtick={1,4,...,30},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   717
    xmax=33,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   718
    %ytick={0, 10,...,100},
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   719
    scaled ticks=false,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   720
    axis lines=left,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   721
    width=9cm,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   722
    height=4.5cm, 
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   723
    legend entries={Naive, Simp},  
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   724
    legend pos= north west,
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   725
    legend cell align=left  
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   726
]
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   727
\addplot[black,mark=square*, mark options={fill=white}] table {re-usize.data};
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   728
\addplot[black,mark=triangle*, mark options={fill=white}] table {re-ssize.data};  
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   729
%\addplot[red,mark=triangle*,mark options={fill=white}] table {re1.data};  
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   730
%\addplot[green,mark=square*,mark options={fill=white}] table {re2.data};
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   731
\end{semilogyaxis}
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   732
\end{tikzpicture}
15
Chengsong
parents:
diff changeset
   733
Chengsong
parents:
diff changeset
   734
\begin{itemize}
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   735
\item
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   736
Correctness of Sulzmann \& Lu's algorithm
15
Chengsong
parents:
diff changeset
   737
16
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   738
\item
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   739
Size Bound $O(n^2t^2)$ of Dervatives (1995 Antimirov "Partial Derivative")
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   740
\item
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   741
More radical simplifications.
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   742
\item
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   743
Extend the algorithm to back-references.
c51178fa85fe new version of slides
Chengsong
parents: 15
diff changeset
   744
\end{itemize}
15
Chengsong
parents:
diff changeset
   745
\end{frame}
Chengsong
parents:
diff changeset
   746
Chengsong
parents:
diff changeset
   747
Chengsong
parents:
diff changeset
   748
Chengsong
parents:
diff changeset
   749
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Chengsong
parents:
diff changeset
   750
Chengsong
parents:
diff changeset
   751
Chengsong
parents:
diff changeset
   752
Chengsong
parents:
diff changeset
   753
Chengsong
parents:
diff changeset
   754
Chengsong
parents:
diff changeset
   755
Chengsong
parents:
diff changeset
   756
Chengsong
parents:
diff changeset
   757
Chengsong
parents:
diff changeset
   758
Chengsong
parents:
diff changeset
   759
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Chengsong
parents:
diff changeset
   760
\begin{frame}[c]
Chengsong
parents:
diff changeset
   761
\frametitle{\begin{tabular}{c}\\[3cm]\alert{Questions?}\end{tabular}}
Chengsong
parents:
diff changeset
   762
Chengsong
parents:
diff changeset
   763
\mbox{}
Chengsong
parents:
diff changeset
   764
\end{frame}
Chengsong
parents:
diff changeset
   765
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
Chengsong
parents:
diff changeset
   766
\end{document}
Chengsong
parents:
diff changeset
   767
Chengsong
parents:
diff changeset
   768
%%% Local Variables:  
Chengsong
parents:
diff changeset
   769
%%% mode: latex
Chengsong
parents:
diff changeset
   770
%%% TeX-master: t
Chengsong
parents:
diff changeset
   771
%%% End: 
Chengsong
parents:
diff changeset
   772