\section{Syntaktischer Zuckerguss im Beitrag Euler 9 aus Heft 2/2008}
\label{qexit}

Ich wurde gefragt woher das Wort \texttt{?EXIT} stammt. Es ist dem gforth entnommen und compiliert ein bedingtes \texttt{EXIT}.

\begin{verbatim}
: ?EXIT  ( flag -- ) 
    postpone IF  
    postpone EXIT  
    postpone THEN ; immediate
\end{verbatim}

Die Syntax ist am \texttt{?DO} oder \texttt{?LEAVE} angelehnt. Es hat sich so eingebürgert, Forthworten, die ein Flag verbrauchen, ein \texttt{?} voran zu stellen. Im Falle eines \texttt{TRUE} tun sie was, sonst nicht. Es ist syntaktischer Zuckerguß, sonst nichts. Im Unterschied dazu dienen nachgestellte \texttt{?} schon mal dazu, ein Flag zu liefern. Wie im Fall des \texttt{KEY?} das dann ein \texttt{TRUE} liefert, falls eine Taste gedrückt worden ist.

Vielleicht hätte ich in dem Beitrag auch erwähnen sollen, das gforth ja mit cell=4 läuft, also alle Integer--Arithmetik daher sowieso schon in 32 Bit ausgeführt wird. Mit einem 16-Bitter geht das Beispiel möglicherweise schief und benötigt eine Umstellung auf 32-Bit--Arithmetik, also z.~B.\ das Double--Number--Wordset \texttt{d-number.fs} von Luca Masini. (siehe: \url{http://www.forth-ev.de/wiki/doku.php/} oder seinen Beitrag im VD Heft 4d2008-01.)

\hspace*{\fill}Michael



