slides/slides07.tex
changeset 852 8706b846a3e0
parent 812 2f9a0dcf61ae
child 871 94b84d880c2b
equal deleted inserted replaced
851:48539905c447 852:8706b846a3e0
     9 % beamer stuff 
     9 % beamer stuff 
    10 \renewcommand{\slidecaption}{CFL 07, King's College London}
    10 \renewcommand{\slidecaption}{CFL 07, King's College London}
    11 \newcommand{\bl}[1]{\textcolor{blue}{#1}}       
    11 \newcommand{\bl}[1]{\textcolor{blue}{#1}}       
    12 
    12 
    13 \begin{document}
    13 \begin{document}
       
    14 
       
    15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
    16 \begin{frame}[t]
       
    17 \frametitle{%
       
    18   \begin{tabular}{@ {}c@ {}}
       
    19   \\[-3mm]
       
    20   \LARGE Compilers and \\[-2mm] 
       
    21   \LARGE Formal Languages\\[3mm] 
       
    22   \end{tabular}}
       
    23 
       
    24   \normalsize
       
    25   \begin{center}
       
    26   \begin{tabular}{ll}
       
    27     Email:  & christian.urban at kcl.ac.uk\\
       
    28     %Office Hours: & Thursdays 12 -- 14\\
       
    29     %Location: & N7.07 (North Wing, Bush House)\\
       
    30     Slides \& Progs: & KEATS (also homework is there)\\  
       
    31   \end{tabular}
       
    32   \end{center}
       
    33 
       
    34   \begin{center}
       
    35     \begin{tikzpicture}
       
    36       \node[drop shadow,fill=white,inner sep=0pt] 
       
    37       {\footnotesize\rowcolors{1}{capri!10}{white}
       
    38         \begin{tabular}{|p{4.8cm}|p{4.8cm}|}\hline
       
    39           1 Introduction, Languages          & 6 While-Language \\
       
    40           2 Regular Expressions, Derivatives & 7 Compilation, JVM \\
       
    41           3 Automata, Regular Languages      & \cellcolor{blue!50} 8 Compiling Functional Languages \\
       
    42           4 Lexing, Tokenising               & 9 Optimisations \\
       
    43           5 Grammars, Parsing                & 10 LLVM \\ \hline
       
    44         \end{tabular}%
       
    45       };
       
    46     \end{tikzpicture}
       
    47   \end{center}
       
    48 \end{frame}
       
    49 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
    50 
    14 
    51 
    15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    52 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    16 \begin{frame}[t]
    53 \begin{frame}[t]
    17 \frametitle{%
    54 \frametitle{%
    18   \begin{tabular}{@ {}c@ {}}
    55   \begin{tabular}{@ {}c@ {}}
  1035 
  1072 
  1036 \end{frame}
  1073 \end{frame}
  1037 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
  1074 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
  1038 
  1075 
  1039 
  1076 
       
  1077 
       
  1078 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1079 \begin{frame}[t, fragile]
       
  1080 \frametitle{Function Definitions}
       
  1081 
       
  1082 \footnotesize
       
  1083 \begin{lstlisting}[language=JVMIS, 
       
  1084                    xleftmargin=2mm, 
       
  1085                    numbers=none]
       
  1086 .method public static write(I)V 
       
  1087    .limit locals 1
       
  1088    .limit stack 2
       
  1089    getstatic java/lang/System/out Ljava/io/PrintStream; 
       
  1090    iload 0 
       
  1091    invokevirtual java/io/PrintStream/println(I)V 
       
  1092    return 
       
  1093 .end method
       
  1094 \end{lstlisting}\bigskip
       
  1095 
       
  1096 \small We will need methods for definitions like\footnotesize\medskip
       
  1097 
       
  1098 \begin{lstlisting}[language=JVMIS, 
       
  1099                    xleftmargin=2mm, 
       
  1100                    numbers=none]
       
  1101 def fname (x1, ... , xn) = ...                   
       
  1102                    
       
  1103 .method public static fname (I...I)I
       
  1104   .limit locals ??
       
  1105   .limit stack ?? 
       
  1106   ??
       
  1107 .end method
       
  1108 \end{lstlisting}
       
  1109 
       
  1110 \end{frame}
       
  1111 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
  1112 
       
  1113 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1114 \begin{frame}[c, fragile]
       
  1115 \frametitle{Stack Estimation}
       
  1116 \small
       
  1117 \mbox{}\\[-15mm]
       
  1118 
       
  1119 \bl{\begin{center}
       
  1120 \begin{tabular}{@{\hspace{-4mm}}l@{\hspace{2mm}}c@{\hspace{2mm}}l@{}}
       
  1121 $\textit{estimate}(n)$ & $\dn$ & $1$\\
       
  1122 $\textit{estimate}(x)$ & $\dn$ & $1$\\
       
  1123 $\textit{estimate}(a_1\;aop\;a_2)$ & $\dn$ &
       
  1124 $\textit{estimate}(a_1) + \textit{estimate}(a_2)$\\
       
  1125 $\textit{estimate}(\pcode{if}\;b\;\pcode{then}\;e_1\;\pcode{else}\;e_2)$ & $\dn$ & 
       
  1126 $\textit{estimate}(b) +$\\ 
       
  1127 & & $\quad max(\textit{estimate}(e_1), \textit{estimate}(e_2))$\\
       
  1128 $\textit{estimate}(\pcode{write}(e))$ & $\dn$ & 
       
  1129 $\textit{estimate}(e) + 1$\\
       
  1130 $\textit{estimate}(e_1 ; e_2)$ & $\dn$ & 
       
  1131 $max(\textit{estimate}(e_1), \textit{estimate}(e_2))$\\
       
  1132 $\textit{estimate}(f(e_1, ..., e_n))$ & $\dn$ & 
       
  1133 $\sum_{i = 1..n}\;estimate(e_i)$\medskip\\
       
  1134 $\textit{estimate}(a_1\;bop\;a_2)$ & $\dn$ &
       
  1135 $\textit{estimate}(a_1) + \textit{estimate}(a_2)$\\
       
  1136 \end{tabular}
       
  1137 \end{center}}
       
  1138 
       
  1139 \end{frame}
       
  1140 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
       
  1141 
       
  1142 
  1040 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1143 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1041 \mode<presentation>{
  1144 \mode<presentation>{
  1042 \begin{frame}[c]
  1145 \begin{frame}[c]
  1043 \frametitle{Backend}
  1146 \frametitle{Backend}
  1044 
  1147