\begin{slide}{Assignment Conversion}

(als Transformationsschritt im Compiler):

\begin{itemize}
\item 
Eingabe: Programm mit veränderlichen Variablen
\item
Ausgabe: Programm mit \glqq konstanten Variablen\grqq\
und veränderlichen Zellen
\end{itemize}

Variable ersetzen durch (Verweis auf) Zelle:
\begin{verbatim}
(begin (set! x (@* 2 y)) x)) 
==>
(let ((x (cell x)) (y (cell y)))
     (begin (@:= x (@* 2 (@^ y))) (@^ x)))
\end{verbatim}
Bessere Implementierung:
nur für die Variablen, die tatsächlich
Zuweisungsziel sind (im Bsp: \verb|y| nicht)

\end{slide}
