equal
deleted
inserted
replaced
144 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
144 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
145 |
145 |
146 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
146 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
147 \begin{frame}[c] |
147 \begin{frame}[c] |
148 |
148 |
149 Alternative parser (code \bl{$p\;||\;q$})\bigskip |
149 Alternative parser (code \bl{$p\;|\;q$})\bigskip |
150 |
150 |
151 \begin{itemize} |
151 \begin{itemize} |
152 \item apply \bl{$p$} and also \bl{$q$}; then combine |
152 \item apply \bl{$p$} and also \bl{$q$}; then combine |
153 the outputs |
153 the outputs |
154 \end{itemize} |
154 \end{itemize} |
216 \begin{center} |
216 \begin{center} |
217 \bl{$T \times S$} |
217 \bl{$T \times S$} |
218 \end{center}\pause |
218 \end{center}\pause |
219 |
219 |
220 \item {\bf Alternative}: if \bl{$p$} returns results of type \bl{$T$} then \bl{$q$} \alert{must} also have results of type \bl{$T$}, |
220 \item {\bf Alternative}: if \bl{$p$} returns results of type \bl{$T$} then \bl{$q$} \alert{must} also have results of type \bl{$T$}, |
221 and \bl{$p \;||\; q$} returns results of type |
221 and \bl{$p \;|\; q$} returns results of type |
222 |
222 |
223 \begin{center} |
223 \begin{center} |
224 \bl{$T$} |
224 \bl{$T$} |
225 \end{center}\pause |
225 \end{center}\pause |
226 |
226 |
698 \item LLVM started by academics in 2000 (University of Illinois in |
698 \item LLVM started by academics in 2000 (University of Illinois in |
699 Urbana-Champaign) |
699 Urbana-Champaign) |
700 \item suite of compiler tools |
700 \item suite of compiler tools |
701 \item SSA-based intermediate language |
701 \item SSA-based intermediate language |
702 \item no need to allocate registers |
702 \item no need to allocate registers |
|
703 \item source languages: C, C++, Rust, Go, Swift |
|
704 \item target CPUs: x86, ARM, PowerPC, \ldots |
703 \end{itemize} |
705 \end{itemize} |
704 \end{frame} |
706 \end{frame} |
705 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
707 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
706 |
708 |
707 |
709 |