From 9344849de249310c4b9454005ebecc4121b10aca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benedikt=20B=C3=B6hm?= 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, +% 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}{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