From 9344849de249310c4b9454005ebecc4121b10aca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Benedikt=20B=C3=B6hm?= <bb@xnull.de>
Date: Tue, 26 May 2009 10:59:51 +0200
Subject: add first presentation

---
 doc/praes1/.gitignore             |   9 ++
 doc/praes1/Logo_RGB.jpg           | Bin 0 -> 443098 bytes
 doc/praes1/fu-beamer-template.tex | 121 +++++++++++++++++++++++++
 doc/praes1/fu_500.jpg             | Bin 0 -> 167716 bytes
 doc/praes1/main.tex               | 185 ++++++++++++++++++++++++++++++++++++++
 5 files changed, 315 insertions(+)
 create mode 100644 doc/praes1/.gitignore
 create mode 100644 doc/praes1/Logo_RGB.jpg
 create mode 100644 doc/praes1/fu-beamer-template.tex
 create mode 100644 doc/praes1/fu_500.jpg
 create mode 100644 doc/praes1/main.tex

diff --git a/doc/praes1/.gitignore b/doc/praes1/.gitignore
new file mode 100644
index 0000000..95a7acf
--- /dev/null
+++ b/doc/praes1/.gitignore
@@ -0,0 +1,9 @@
+fu-beamer-template.aux
+main.aux
+main.log
+main.nav
+main.out
+main.pdf
+main.snm
+main.toc
+main.vrb
diff --git a/doc/praes1/Logo_RGB.jpg b/doc/praes1/Logo_RGB.jpg
new file mode 100644
index 0000000..9678276
Binary files /dev/null and b/doc/praes1/Logo_RGB.jpg differ
diff --git a/doc/praes1/fu-beamer-template.tex b/doc/praes1/fu-beamer-template.tex
new file mode 100644
index 0000000..99fffcc
--- /dev/null
+++ b/doc/praes1/fu-beamer-template.tex
@@ -0,0 +1,121 @@
+% Template for talks using the Corporate Design of the Freie Universitaet
+%   Berlin, created following the guidelines on www.fu-berlin.de/cd by
+%   Tobias G. Pfeiffer, <tobias.pfeiffer@math.fu-berlin.de>
+% This file can be redistributed and/or modified in any way you like.
+%   If you feel you have done significant improvements to this template,
+%   please consider providing your modified version to
+%   https://www.mi.fu-berlin.de/w/Mi/BeamerTemplateCorporateDesign
+
+\usepackage{amsmath,dsfont,listings}
+
+%%% FU logo
+% small version for upper right corner of normal pages
+\pgfdeclareimage[height=0.9cm]{university-logo}{Logo_RGB}
+\logo{\pgfuseimage{university-logo}}
+% large version for upper right corner of title page
+\pgfdeclareimage[height=1.085cm]{big-university-logo}{Logo_RGB}
+\newcommand{\titleimage}[1]{\pgfdeclareimage[height=2.92cm]{title-image}{#1}}
+\titlegraphic{\pgfuseimage{title-image}}
+%%% end FU logo
+
+% NOTE: 1cm = 0.393 in = 28.346 pt;    1 pt = 1/72 in = 0.0352 cm
+\setbeamersize{text margin right=3.5mm, text margin left=7.5mm}  % text margin
+
+% colors to be used
+\definecolor{text-grey}{rgb}{0.45, 0.45, 0.45} % grey text on white background
+\definecolor{bg-grey}{rgb}{0.66, 0.65, 0.60} % grey background (for white text)
+\definecolor{fu-blue}{RGB}{0, 51, 102} % blue text
+\definecolor{fu-green}{RGB}{153, 204, 0} % green text
+\definecolor{fu-red}{RGB}{204, 0, 0} % red text (used by \alert)
+
+% switch off the sidebars
+% TODO: loading \useoutertheme{sidebar} (which is maybe wanted) also inserts
+%   a sidebar on title page (unwanted), also indents the page title (unwanted?),
+%   and duplicates the navigation symbols (unwanted)
+\setbeamersize{sidebar width left=0cm, sidebar width right=0mm}
+\setbeamertemplate{sidebar right}{}
+\setbeamertemplate{sidebar left}{}
+%    XOR
+% \useoutertheme{sidebar}
+
+% frame title
+% is truncated before logo and splits on two lines
+% if neccessary (or manually using \\)
+\setbeamertemplate{frametitle}{%
+    \vskip-30pt \color{text-grey}\large%
+    \begin{minipage}[b][23pt]{80.5mm}%
+    \flushleft\insertframetitle%
+    \end{minipage}%
+}
+
+%%% title page
+% TODO: get rid of the navigation symbols on the title page.
+%   actually, \frame[plain] *should* remove them...
+\setbeamertemplate{title page}{
+% upper right: FU logo
+\vskip2pt\hfill\pgfuseimage{big-university-logo} \\
+\vskip6pt\hskip3pt
+% title image of the presentation
+\begin{minipage}{11.6cm}
+\hspace{-1mm}\inserttitlegraphic
+\end{minipage}
+
+% set the title and the author
+\vskip14pt
+\parbox[top][1.35cm][c]{11cm}{\color{text-grey}\inserttitle \\ \small \insertsubtitle}
+\vskip11pt
+\parbox[top][1.35cm][c]{11cm}{\small \insertauthor \\ \insertinstitute \\[3mm] \insertdate}
+}
+%%% end title page
+
+%%% colors
+\usecolortheme{lily}
+\setbeamercolor*{normal text}{fg=black,bg=white}
+\setbeamercolor*{alerted text}{fg=fu-red}
+\setbeamercolor*{example text}{fg=fu-green}
+\setbeamercolor*{structure}{fg=fu-blue}
+
+\setbeamercolor*{block title}{fg=white,bg=black!50}
+\setbeamercolor*{block title alerted}{fg=white,bg=black!50}
+\setbeamercolor*{block title example}{fg=white,bg=black!50}
+
+\setbeamercolor*{block body}{bg=black!10}
+\setbeamercolor*{block body alerted}{bg=black!10}
+\setbeamercolor*{block body example}{bg=black!10}
+
+\setbeamercolor{bibliography entry author}{fg=fu-blue}
+% TODO: this doesn't work at all:
+\setbeamercolor{bibliography entry journal}{fg=text-grey}
+
+\setbeamercolor{item}{fg=fu-blue}
+\setbeamercolor{navigation symbols}{fg=text-grey,bg=bg-grey}
+%%% end colors
+
+%%% headline
+\setbeamertemplate{headline}{
+\vskip4pt\hfill\insertlogo\hspace{3.5mm} % logo on the right
+
+\vskip6pt\color{fu-blue}\rule{\textwidth}{0.4pt} % horizontal line
+}
+%%% end headline
+
+%%% footline
+\newcommand{\footlinetext}{\insertshortinstitute, \insertshorttitle, \insertshortdate}
+\setbeamertemplate{footline}{
+\vskip5pt\color{fu-blue}\rule{\textwidth}{0.4pt}\\ % horizontal line
+\vskip2pt
+\makebox[123mm]{\hspace{7.5mm}
+\color{fu-blue}\footlinetext
+\hfill \raisebox{-1pt}{\usebeamertemplate***{navigation symbols}}
+\hfill \insertframenumber}
+\vskip4pt
+}
+%%% end footline
+
+%%% settings for listings package
+\lstset{extendedchars=true, showstringspaces=false, basicstyle=\footnotesize\sffamily, tabsize=2, breaklines=true, breakindent=10pt, frame=l, columns=fullflexible}
+\lstset{language=Java} % this sets the syntax highlighting
+\lstset{mathescape=true} % this switches on $...$ substitution in code
+% enables UTF-8 in source code:
+\lstset{literate={ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 {ß}{\ss}1}
+%%% end listings
\ No newline at end of file
diff --git a/doc/praes1/fu_500.jpg b/doc/praes1/fu_500.jpg
new file mode 100644
index 0000000..a462897
Binary files /dev/null and b/doc/praes1/fu_500.jpg differ
diff --git a/doc/praes1/main.tex b/doc/praes1/main.tex
new file mode 100644
index 0000000..e924838
--- /dev/null
+++ b/doc/praes1/main.tex
@@ -0,0 +1,185 @@
+\documentclass[9pt]{beamer}
+
+\usepackage[utf8x]{inputenc}
+\usepackage[english]{babel}
+\usepackage{arev,t1enc}
+
+\include{fu-beamer-template}
+
+\titleimage{fu_500}
+\title[Compilerbau]
+{Zwischenpr\"{a}sentation 1}
+
+\author{B.~B\"{o}hm \and A.~N\"{u}\ss{}lein \and M.~Popov \and T.~Rakowski \and J.~Rekittke \and A.~Sulfrian}
+
+\institute[FU Berlin]
+{Freie Universität Berlin}
+
+\date[May~26,~2009]
+{Softwareprojekt Compilerbau, SoSe 2009}
+
+\renewcommand{\footlinetext}{\insertshortinstitute, \insertshorttitle, \insertshortdate}
+%\AtBeginSubsection[]
+%{
+%  \begin{frame}<beamer>{Outline}
+%    \tableofcontents[currentsection,currentsubsection]
+%  \end{frame}
+%}
+
+
+\begin{document}
+
+\begin{frame}[plain]
+	\titlepage
+\end{frame}
+
+
+\begin{frame}{Gruppe: Quellsprache}
+	\begin{itemize}
+		\pause\item\color{fu-green} erfinden der Quellsprache
+		\begin{itemize}
+			\pause\item\color{fu-green} Paradigma: imperativ, prozedural
+			\pause\item\color{fu-green} Typsystem: static, weak, infered
+		\end{itemize}
+		\pause\item\color{fu-green} erstellen der EBNF
+	\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]{Gruppe: Quellsprache (Beispiel)}
+	\begin{verbatim}
+fun fib[a]
+    if a < 2
+        @1
+    end
+    @(fib[a-1] + fib[a-2])
+end
+
+fun main[]
+    sum = 0
+    i = 1
+    while i <= 10
+        sum = sum + fib[i]
+        i = i + 1
+    end
+    @sum
+end
+	\end{verbatim}
+\end{frame}
+
+\begin{frame}{Gruppe: Schnittstellen}
+	\begin{itemize}
+		\pause\item Lexer $\Rightarrow$ Parser:
+		\pause\begin{itemize}\item\color{fu-green} Tokenstream\end{itemize}
+		\pause\item Parser $\Rightarrow$ Zwischencode:
+		\pause\begin{itemize}\item\color{fu-green} AST\end{itemize}
+		\pause\item Zwischencode $\Rightarrow$ Codegenerator:
+		\pause\begin{itemize}\item\color{orange} 3AC\end{itemize}
+		\pause\item Codegenerator $\Rightarrow$ Assemblercode:
+		\pause\begin{itemize}\item\color{fu-green} vereinfachte MIPS ISA\end{itemize}
+	\end{itemize}
+\end{frame}
+
+\begin{frame}{Alex: Lexikalische Analyse}
+	\begin{itemize}
+		\pause\item Tokens:
+		\begin{itemize}
+			\pause\item\color{fu-green} NUMBER, BOOL, IDENT
+			\pause\item\color{fu-green} ASSIGNMENT
+			\pause\item\color{fu-green} OPERATOR
+			\pause\item\color{fu-green} FUN, RETURN
+			\pause\item\color{fu-green} WHILE, IF, ELSE
+			\pause\item\color{fu-green} LBRAK, RBRAK, LPAREN, RPAREN, NEWLINE, COMMA, END
+		\end{itemize}
+		\pause\item\color{fu-green} \"{U}bersetzungsregeln mit Regul\"{a}ren Ausdr\"{u}cken
+	\end{itemize}
+\end{frame}
+
+\begin{frame}{Alex: Typsystem}
+	\begin{itemize}
+		\pause\item\color{fu-red} Typinferenz bei Initialisierung von Variablen
+		\pause\item\color{fu-red} Statische Typzuweisung in der Symboltabelle
+		\pause\item\color{fu-red} ggf. automatische Typkonvertierung
+	\end{itemize}
+\end{frame}
+
+\begin{frame}{Michael: Syntaxanalyse/Parser}
+	\begin{itemize}
+		\pause\item Top-Down-Parsing
+		\pause\item Ableitungsbaum:
+		\begin{itemize}
+			\pause\item\color{fu-red} Program(Node)
+			\pause\item\color{fu-red} Function(Node)
+			\pause\item\color{fu-red} Statement(Node)
+			\pause\item\color{fu-red} IfStatement(Statement)
+			\pause\item\color{fu-red} WhileStatement(Statement)
+			\pause\item\color{fu-red} ReturnStatement(Statement)
+			\pause\item\color{fu-red} AssignStatement(Statement)
+			\pause\item\color{fu-red} FunctionCall(Statement)
+			\pause\item\color{fu-red} Expression(Node)
+			\pause\item\color{fu-red} UnaryExpression(Expression)
+			\pause\item\color{fu-red} BinaryExpression(Expression)
+		\end{itemize}
+	\end{itemize}
+
+\end{frame}
+
+\begin{frame}{Michael: Semantische Analyse}
+	\begin{itemize}
+		\pause\item\color{fu-red} Aufbau der Symboltabelle
+		\pause\item\color{fu-red} G\"{u}ltigkeitsbereiche der Bezeichner \"{u}berpr\"{u}fen
+		\pause\item\color{fu-red} eindeutige Zuweisungen von Bezeichnern
+	\end{itemize}
+\end{frame}
+
+\begin{frame}{Andreas: Zwischencode}
+	\begin{itemize}
+		\pause\item Drei-Adress-Code (SSA Form):
+		\begin{itemize}
+			\pause\item\color{fu-green} Bin\"{a}re Operationen: ADD, SUB, MUL, DIV, MOD, AND, OR
+			\pause\item\color{fu-green} Un\"{a}re Operationen: NOT, MINUS
+			\pause\item\color{fu-green} Zuweisungen: ASSIGN
+			\pause\item\color{orange} Bedingte Spr\"{u}nge: BEQ, BNE, BLT, BGE, BLE, BGT
+			\pause\item\color{orange} Nichtbedingte Spr\"{u}nge: JMP
+			\pause\item\color{orange} Funktionsaufrufe: PARAM, CALL, RETURN
+		\end{itemize}
+	\end{itemize}
+\end{frame}
+
+\begin{frame}{Andreas: Maschinenunabh\"{a}ngige Optimierung}
+	\begin{itemize}
+		\pause\item\color{fu-red} Eliminierung gemeinsamer Teilausdr\"{u}cke
+		\pause\item\color{fu-red} Kopiepropagation
+		\pause\item\color{fu-red} Entfernen von totem Code
+		\pause\item\color{fu-red} Konstantenfaltung
+	\end{itemize}
+\end{frame}
+
+\begin{frame}{Jana: Codegenerator}
+	\begin{itemize}
+		\pause\item\color{fu-red} Zuweisung von Adressen/Registervergabe
+		\pause\item\color{fu-red} Zerlegen von Drei-Adress-Code in Grundbl\"{o}cke
+		\pause\item\color{fu-red} Erstellen von Flussgraphen
+		\pause\item\color{orange} Befehlsauswahl
+		\pause\item\color{orange} Aufrufkonventionen
+		\pause\item\color{orange} Ausgabe als Assemblercode
+	\end{itemize}
+\end{frame}
+
+\begin{frame}{Jana/Bene: MIPS Emulator}
+	\begin{itemize}
+		\pause\item Vereinfachte MIPS ISA:
+		\begin{itemize}
+			\pause\item\color{fu-green} Arithmetik: ADD, SUB, MUL, DIV, MOD, SHL, SHR
+			\pause\item\color{fu-green} Logik: AND, OR, XOR, NOR
+			\pause\item\color{fu-green} Load \& Store: MOV, LB, LH, LW, SB, SH, SW
+			\pause\item\color{fu-green} Bedingte Spr\"{u}nge: CMP, BEQ, BNE, BLT, BGE, BLE, BGT
+			\pause\item\color{fu-green} Absolute Spr\"{u}nge: J, JAL
+			\pause\item\color{fu-green} Andere: SYS
+		\end{itemize}
+		\pause\item keine Delay-Slots
+		\pause\item keine Memory-Management-Unit
+		\pause\item I/O durch Nachbildung von System-Calls
+	\end{itemize}
+\end{frame}
+
+\end{document}
-- 
cgit v1.2.3