\begin{slide}{Semantik}
  
semantischer Bereich: 
\begin{verbatim}
type Continuation a = a -> Action Val
date CPS a 
   = CPS ( Continuation a -> Action Val )
evaluate :: Env -> Exp -> CPS Val
\end{verbatim}
Plan:
\begin{itemize}
\item Syntax: \verb|Label, Jump|, Parser
\item Semantik:
\begin{itemize}
\item Verkettung durch \verb|>>=| aus \verb|instance Monad CPS|
\item Einbetten von \verb|Action Val| durch \verb|lift| 
\item evaluate für bestehende Sprache (CBV)
\item evaluate für label und jump
\end{itemize}
\end{itemize}
\end{slide}

\begin{slide}{CPS als Monade}

\begin{verbatim}
feed :: CPS a -> ( a -> Action Val ) 
     -> Action Val
feed ( CPS s ) c = s c

feed ( s >>= f ) c = 
    feed s ( \ x -> feed ( f x ) c )

feed ( return x ) c = c x

lift :: Action a -> CPS a
\end{verbatim}
  

\end{slide}
