\documentclass[a4paper,twoside,12pt]{article}
%\usepackage [reqno] {amsmath}
\usepackage{amsfonts,amstext}
\usepackage{amsmath}
\usepackage{german}
\usepackage{fullpage}

\newcommand{\ZETTELNUMMER}{3}
\newcommand{\ABGABEDATUM}{bis zum 08. Mai 2017, 12 Uhr, in den
Briefkasten neben Raum 111}

\newcounter{AUFGNR}
\setcounter{AUFGNR}{1}
\newcommand{\AUFGABE}[2]{\vspace{0.3cm}\item[Aufgabe~\arabic{AUFGNR}]\stepcounter{AUFGNR} #1\hfill\emph{#2}}


\newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor}
\newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil}
\newcommand{\half}[1]{\frac{#1}{2}}



\renewcommand{\labelenumi}{(\alph{enumi})}
\renewcommand{\labelenumii}{(\roman{enumii})}


\begin{document}
\pagestyle{empty}
\hrule\medskip
\rule{0ex}{0ex}\\[-1ex]
\ZETTELNUMMER. Aufgabenblatt zur Vorlesung

\smallskip
\noindent
\large
\textbf{Semantik von Programmiersprachen}\hfill SoSe 2017 \\[0.5ex]
\normalsize
Wolfgang Mulzer, Max Willert

\medskip\hrule

\smallskip
\noindent
\textbf{Abgabe} \ABGABEDATUM

\vskip 0.5cm

\begin{description}

\AUFGABE{Semantische Funktion f\"ur Boolesche
Ausdr\"ucke}{10 Punkte}

Definieren Sie eine semantische Funktion 
$\mathcal{B}: \text{Bexp} \rightarrow (\text{State} 
\rightarrow \mathbb{B})$ f\"ur Boolesche Ausdr\"ucke,
analog zu der semantischen Funktion  
$\mathcal{A}: \text{Aexp} \rightarrow (\text{State} 
\rightarrow \mathbb{Z})$ f\"ur
arithmetische Ausdr\"ucke aus der Vorlesung.

Verdeutlichen Sie Ihre Definition an einigen Beispielen.

\AUFGABE{Freie Variablen und Substitution f\"ur Boolesche
Ausdr\"ucke}{10 Punkte}

Definieren Sie freie Variablen und einen Substitutionsoperator f\"ur
Boolesche Audr\"ucke. 
Verdeutlichen Sie Ihre Definition an einigen Beispielen.

\AUFGABE{Implementierung in Haskell}{10 Punkte}

Implementieren Sie die semantischen Funktionen $\mathcal{A}$
und $\mathcal{B}$ in Haskell (n\"otigenfalls in Java). 
Verwenden Sie dazu Ihre
Implementierung der Sprache \texttt{While} aus der dritten
Aufgabe auf dem zweiten \"Ubungsblatt.


\end{description}
\end{document}