slides/slides06.tex
changeset 685 75d9f9e5906f
parent 683 c6c79d21f8a8
child 686 05cfce0fdef7
equal deleted inserted replaced
684:1ee523c4f098 685:75d9f9e5906f
   371 
   371 
   372 \end{frame}
   372 \end{frame}
   373 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   373 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   374 
   374 
   375 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   375 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   376 \begin{frame}[c]
   376 %\begin{frame}[c]
   377 \frametitle{Operator Precedences}
   377 %\frametitle{Operator Precedences}
   378 
   378 %
   379 
   379 %
   380 To disambiguate
   380 %To disambiguate
   381 
   381 %
   382 \begin{center}
   382 %\begin{center}
   383 \bl{\begin{tabular}{lcl}
   383 %\bl{\begin{tabular}{lcl}
   384 $\meta{E}$ & $::=$ &  $\meta{E} \cdot + \cdot \meta{E} \;|\;\meta{E} \cdot * \cdot \meta{E} \;|\;( \cdot \meta{E} \cdot ) \;|\;\meta{N}$ \\
   384 %$\meta{E}$ & $::=$ &  $\meta{E} \cdot + \cdot \meta{E} \;|\;\meta{E} \cdot * \cdot \meta{E} \;|\;( \cdot \meta{E} \cdot ) \;|\;\meta{N}$ \\
   385 \end{tabular}}
   385 %\end{tabular}}
   386 \end{center}
   386 %\end{center}
   387 
   387 %
   388 Decide on how many precedence levels, say\medskip\\
   388 %Decide on how many precedence levels, say\medskip\\
   389 highest for \bl{$()$}, medium for \bl{*}, lowest for \bl{+}
   389 %highest for \bl{$()$}, medium for \bl{*}, lowest for \bl{+}
   390 
   390 %
   391 \begin{center}
   391 %\begin{center}
   392 \bl{\begin{tabular}{lcl}
   392 %\bl{\begin{tabular}{lcl}
   393 $\meta{E}_{low}$ & $::=$ & $\meta{E}_{med} \cdot + \cdot \meta{E}_{low} \;|\; \meta{E}_{med}$ \\
   393 %$\meta{E}_{low}$ & $::=$ & $\meta{E}_{med} \cdot + \cdot \meta{E}_{low} \;|\; \meta{E}_{med}$ \\
   394 $\meta{E}_{med}$ & $::=$ & $\meta{E}_{hi} \cdot * \cdot \meta{E}_{med} \;|\; \meta{E}_{hi}$\\
   394 %$\meta{E}_{med}$ & $::=$ & $\meta{E}_{hi} \cdot * \cdot \meta{E}_{med} \;|\; \meta{E}_{hi}$\\
   395 $\meta{E}_{hi}$ & $::=$ &  $( \cdot \meta{E}_{low} \cdot ) \;|\;\meta{N}$ \\
   395 %$\meta{E}_{hi}$ & $::=$ &  $( \cdot \meta{E}_{low} \cdot ) \;|\;\meta{N}$ \\
   396 \end{tabular}}
   396 %\end{tabular}}
   397 \end{center}\pause
   397 %\end{center}\pause
   398 
   398 %
   399 \small What happens with \bl{$1 + 3  + 4$}?
   399 %\small What happens with \bl{$1 + 3  + 4$}?
   400 \end{frame}
   400 %\end{frame}
   401 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   401 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   402 
   402 
   403 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   403 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   404 \begin{frame}[c]
   404 \begin{frame}[c]
   405 \frametitle{Chomsky Normal Form}
   405 \frametitle{Chomsky Normal Form}
   670 
   670 
   671 \end{frame}}
   671 \end{frame}}
   672 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
   672 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
   673 
   673 
   674 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   674 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   675 \mode<presentation>{
   675 \begin{frame}[c]
   676 \begin{frame}[c]
   676 \frametitle{Java Virtual Machine}
   677 \frametitle{\begin{tabular}{c}Java Virtual Machine\end{tabular}}
       
   678 
   677 
   679 \begin{itemize}
   678 \begin{itemize}
   680 \item introduced in 1995
   679 \item introduced in 1995
   681 \item is a stack-based VM (like Postscript, CLR of .Net)
   680 \item is a stack-based VM (like Postscript, CLR of .Net)
   682 \item contains a JIT compiler
   681 \item contains a JIT compiler\\
   683 \item many languages take advantage of JVM's infrastructure (JRE)
   682 \begin{itemize}
       
   683 \item From the Cradle to the Holy Graal - the JDK Story
       
   684 \item \url{https://www.youtube.com/watch?v=h419kfbLhUI}
       
   685 \end{itemize}
   684 \item is garbage collected $\Rightarrow$ no buffer overflows
   686 \item is garbage collected $\Rightarrow$ no buffer overflows
   685 \item some languages compile to the JVM: Scala, Clojure\ldots
   687 \item some languages compile to the JVM: Scala, Clojure\ldots
   686 \end{itemize}
   688 \end{itemize}
   687 
   689 
   688 \end{frame}}
   690 \end{frame}
   689 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   691 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   690 
   692 
       
   693 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   694 \begin{frame}[c]
       
   695 \frametitle{LLVM}
       
   696 
       
   697 \begin{itemize}
       
   698 \item LLVM started by academics in 2000 (University of Illinois in 
       
   699 Urbana-Champaign)
       
   700 \item suite of compiler tools
       
   701 \item SSA-based intermediate language
       
   702 \item no need to allocate registers
       
   703 \end{itemize}  
       
   704 \end{frame}
       
   705 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   706   
   691 
   707 
   692 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   708 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   693 %\begin{frame}[c]
   709 %\begin{frame}[c]
   694 %  \frametitle{Coursework: MkEps}
   710 %  \frametitle{Coursework: MkEps}
   695 %
   711 %