\begin{slide}{Semantik von Anweisungen}

\begin{itemize} \itemsep 0pt \parskip 3pt
\item
  Zuweisung: \verb|Name = Ausdruck;|

  Wert des Ausdrucks berechnen und an Namen zuweisen
  (d. h. auf die durch Namen bezeichnete Speicherstelle schreiben)
\item
  Block: \verb|{Anw1 ; Anw2; .. }|

  Anweisungen der Reihe nach ausführen
\item
  Verzweigung: \verb|if ( Bedingung ) Block1 [ else Block2 ]|

  Wert der Bedingung ($=$ ein Ausdruck vom Typ Wahrheitswert) berechnen,
  falls sich \glqq wahr\grqq\ ergibt, dann Block1 ausführen,
  sonst Block2 ausführen (falls vorhanden)
\newpage
\item
  Schleife: \verb|while ( Bedingung ) Block|

  is äquivalent zu
\begin{verbatim}
A : if ( not Bedingung ) { goto E; }
    Block
    goto A;
E:
\end{verbatim}
D. h. \emph{vor jeder} Ausführung des Blocks
wird die Bedingung ausgewertet.
  
\end{itemize}

\end{slide}

\begin{slide}{Zählschleifen}

Beispiel:
\begin{verbatim}
for (int i = 0; i < 10; i++) {
  System.out.println (i);
}
\end{verbatim}

Syntax:
\begin{verbatim}
for ( Deklaration ; Bedingung ; Anweisung )
  Block
\end{verbatim}

Semantik:
\begin{verbatim}
Deklaration;
while ( Bedingung ) {
  Block;
  Anweisung;
}
\end{verbatim}
\end{slide}

\begin{slide}{Semantik (Werte) von Ausdrücken}

\begin{itemize}
\item
  Konstante: bezeichnet \glqq sich selbst\grqq
\item
  Name (Variable): bezeichnet eine Speicherstelle,
  der Wert des Namens ist der Inhalt dieser Speicherstelle
\item
  Ausdruck1 Operator Ausdruck2: Wert $w_1$ von Ausdruck1 berechnen,
  Wert $w_2$ von Ausdruck2 berechnen, dann Operator auf $w_1$ und $w_2$ anwenden,
  das Resultat ist der Wert des Ausdrucks
\end{itemize}

das ist (wie alles andere heute auch)
eine \emph{induktive (rekursive)} Definition.

(wo sind Induktionsanfang, Induktionsschritt?
was ist der Induktionsparameter?)


\end{slide}

