\begin{slide}{Sprachverarbeitung}

\begin{itemize}
\item mit Compiler:
\begin{itemize}
\item
  Quellprogramm $\to$ Compiler $\to$ Zielprogramm
\item
  Eingaben $\to$ Zielprogramm $\to$ Ausgaben
\end{itemize}
\item mit Interpreter:
\begin{itemize}
\item
  Quellprogramm, Eingaben $\to$ Interpreter $\to$ Ausgaben
\end{itemize}
\item Mischform:
  \begin{itemize}
  \item Quellprogramm $\to$ Compiler $\to$ Zwischenprogramm
  \item Zwischenprogramm, Eingaben $\to$ virtuelle Maschine $\to$ Ausgaben
  \end{itemize}

\end{itemize}

\end{slide}


\begin{slide}{Compiler und andere Werkzeuge}

  \begin{itemize}
  \item Quellprogramm
  \item Präprozessor $\to$ modifiziertes Quellprogramm
  \item Compiler $\to$ Assemblerprogramm
  \item Assembler $\to$ verschieblicher Maschinencode
  \item Linker, Bibliotheken $\to$ ausführbares Maschinenprogramm
  \end{itemize}

\end{slide}

\begin{slide}{Phasen eines Compilers}


  \begin{itemize}
  \item Zeichenstrom
  \item lexikalische Analyse $\to$ Tokenstrom
  \item syntaktische Analyse $\to$ Syntaxbaum
  \item semantische Analyse $\to$ annotierter Syntaxbaum
  \item Zwischencode-Erzeugung $\to$ Zwischencode
  \item maschinenunabhängige Optimierungen $\to$ Zwischencode
  \item Zielcode-Erzeugung $\to$ Zielcode
  \item maschinenabhängige Optimierungen $\to$ Zielcode
  \end{itemize}


\end{slide}


\begin{slide}{Methoden und Modelle}

  \begin{itemize}
  \item lexikalische Analyse: reguläre Ausdrücke, endliche Automaten
  \item syntaktische Analyse: kontextfreie Grammatiken, Kellerautomaten
  \item semantische Analyse: Attributgrammatiken
  \item Code-Erzeugung: bei Registerzuordnung: Graphenfärbung
  \end{itemize}


\end{slide}

\begin{slide}{Anwendungen von Techniken des Compilerbaus}

  \begin{itemize}
  \item Implementierung höherer Programmiersprachen
  \item architekturspezifische Optimierungen 
    (Parallelisierung, Speicherhierarchien)
  \item Entwurf neuer Architekturen
    (RISC, spezielle Hardware)
  \item Programm-Übersetzungen
    (Binär-Übersetzer, Hardwaresynthese, Datenbankanfragesprachen)
  \item Software-Werkzeuge
  \end{itemize}


\end{slide}

