slides/slides06.tex
changeset 686 05cfce0fdef7
parent 685 75d9f9e5906f
child 702 39e21a33ffb0
equal deleted inserted replaced
685:75d9f9e5906f 686:05cfce0fdef7
   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