\begin{slide}{Denotationale Semantik}

Denotationale Semantik eines 
Unterprogrammes (in einer deklarativen
Programmiersprache) ist eine \emph{Funktion}.

\begin{itemize}
\item 
Semantik von Literalen:

bezeichnen (primitive) Objekte selbst
\item 
Semantik primitiver Operationen:
\begin{itemize}
\item (Zahlen-)Werte der Argumente bestimmen,
\item dann Operation anwenden
\end{itemize}
\item
Semantik von Lambda-Ausdrücken
(Abstraktionen, Applikationen)?
\end{itemize}
\end{slide}

\begin{slide}{Denotationale Semantik (II)}

Semantik von \emph{lokalen} Unterprogrammen
hängt ab von weiter außen gebundenen Variablen.

zutreffendes Modell ist deswegen:
\begin{itemize} \itemsep 1pt
\item Semantik :: Exp $\times$ Env $\to$ Value
\item Exp \dots Menge der Ausdrücke
\item Value \dots Menge der Werte
\item Umgebungen Env :: Var $\to$ Value
\item Var \dots Menge der Variablen
\end{itemize}

(Vorsicht, das ist teilw. vereinfacht,
Verallgemeinerung folgt)

\end{slide}

