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 % |