% Content-encoding: UTF-8
\documentclass[ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage{multicol,babel}
\usepackage{xspace}
\setcounter{secnumdepth}{0}
\setcounter{tocdepth}{0}

%\newcommand{\code}[1]{\texttt{#1}}
%\newcommand{\ret}{\textsf{$<$ret$>$}\xspace}
\newcommand{\ret}{$\hookleftarrow$\xspace}

\renewcommand{\reftextbefore}{auf der vorherigen Seite}
\renewcommand{\reftextfacebefore}{auf der gegenüberliegenden Seite}
\renewcommand{\reftextafter}{auf der nächsten Seite}
\renewcommand{\reftextfaceafter}{auf der gegenüberliegenden Seite}
\renewcommand{\figurename}{Abbildung}

\begin{document}

\title{SwiftForth--IDE\\ 
Interactiv Development Environment --- Evaluation Version\\
Kurz vorgestellt}
\ifx\shorttitle\undefined\else
\shorttitle{SwiftForth--IDE}
\fi

\author{Michael Kalus}

\begin{document}
\maketitle

Als stolzer Besitzer eines gebrauchten Laptop\footnote{2002; hp compac nx9005, AthlonXP 2800+,1.25GHz, 192MB Ram, Windows XP home edition} mit Windows XP habe ich mir das swiftForth\footnote{http://www.forth.com/swiftforth/index.html} angesehen, das von der Forth Inc. zum kostenlosen download angeboten wird. 

\begin{multicols}{2}
Die selbst entpackende exe--Datei war schnell geholt, reibungslos installiert und swiftForth startete anstandslos seine Kommando--Konsole:
\begin{verbatim}

SwiftForth i386-Win32 3.2.5 10-Feb-2011

\end{verbatim}
Es trägt sich ordnungsgemäß unter \emph{alle Programme} ein und macht ein Icon auf den Desktop, wenn man will, benimmt sich also anständig in der Windows--Umgebung, es waren keinerlei Klimmzüge nötig.

Die IDE besteht aus einer Forth--Konsole mit zwei Kopfzeilen, eine Menüzeile und darunter ein toolbar, ist also übersichtlich ohne Schnickschnack und erschließt sich schnell dem Benutzer.  Im Menüeintrag \textit{File} sind\emph{ Include, Edit, Print, Save command window, save keyboard history} und \emph{session log} da. \textit{Edit} öffnet den Windows--Editor, um Forth--Quellen zu editieren. Das Konsolenfenster selbst kennt auch copy und paste. In den \textit{Options} kann man den Editor bestimmen, Fonts und Farben, zwei Systemwarnungen aktivieren (redefinitions und case ambiguity), und Monitoring beim File--Laden auswählen (s. Bilder). 

Der \textit{ToolsButton} ist erklärungsbedürftig. Darin gibt es \emph{Words, Watch, Memory, History, Run sowie Optional Packages}. 

Das, was dort kurz \textit{Watch} genannt wird, meint eigentlich ein separates Fenster, in dem eine Liste von \emph{watch points} eingesehen werden kann. Von der Konsole aus werden diese Beobachtungspunkte mit \texttt{(adr -{}- ) WATCH} gesetzt und über einen automatischen refresh dann in jenem Fenster angezeigt, derweil man in der swiftForth--Konsole weiterarbeitet, also Code ausprobiert. Im swiftForth Reference Manual ist gut erklärt, wie man mit diesen \emph{watch points} umgeht. Der Button bei den Tools bringt lediglich das extra Fenster zur Anzeige oder blendet es aus, gesetzt werden müssen die \emph{watch points} von der Konsole aus. 

Auch nett ist das \emph{Memory} tool. Es stellt ein dynamisches Memory Display in eigenem Fenster zur Verfügung. Darin wird ein ausgewählter Speicherbereich abgebildet und man kann dessen Veränderungen verfolgen, während man im Forth arbeitet --- im Gegensatz zu dem klassischen \texttt{DUMP} welches einen Bereich ja nur einmalig listet.  \texttt{( adr -{}- ) MEM} ruft dieses tool von der Konsole aus auf. Auch hier gilt: Setzen der gewünschten Stelle geschieht von der Forth--Konsole aus, der tool button der IDE blendet den Bereich nur ein und aus.

\emph{History} öffnet das key history Fenster, aus dem man per copy\&paste schöpfen kann. Und \emph{Run} ermöglicht es, aus dem Forth heraus andere Programme zu starten, indem eine Kommandozeile dafür geöffnet wird.

Die \emph{Optional Packages} fand ich besonders interessant und hilfreich, werden hier doch eine Menge Demoprogramme angeboten, die einwandfrei eingebunden und gestartet werden können. Wie der in einem seperaten Window hüpfende Ball. Oder, nützlicher, das \texttt{terminal.f}, das nach \texttt{9600 TERM COM1} ein einfaches Terminal realisiert und wirklich auf Anhieb ging --- was mich besonders gefreut hat, da mein alter Laptop noch einen \texttt{COM1}--Stecker hat und ich gerne schon mal mit Micros wie dem atmega168 und amforth experimentiere. Die serielle Verbindung zu so einem Board gelang auf Anhieb. 

Und  \emph{Help} hat seinen Namen zu Recht, führt es doch zu einer umfangreichen Dokumentation, die der Evaluationsversion beigelegt ist. Da ist die Microsoft® Win32® Programmer's Reference drin, und als 
PDF--Dateien das komplette Forth Programmer's Handbook, das swiftForth Reference Manual und der ANS Forth Standard. Damit kann man schon mal was anfangen. Dann gibt es noch einen Button, der via Browser gleich zur Forth Inc.\ führt, zu all den schönen Sachen, die man dort als Programmierer erwerben kann, will man Windows programmieren mit Forth vertiefen. Man erhält den Eindruck, gut aufgehoben und unterstützt zu werden. Die Preise dafür mag sich jeder selbst ansehen.

\begin{figure*}[t]
\begin{center}
\includegraphics[scale=0.7]{2011-01/options_swiftForth}\\
Screenshot der SwiftForth--IDE in Aktion
\end{center}
\end{figure*}

\begin{figure*}[b]
\begin{center}
\includegraphics[scale=0.7]{2011-01/terminal_swiftForth}\\
SwiftForth auf PC wird Terminal via COM1 an Forth in atmega168 (Sammler).
\end{center}
\end{figure*}

Der toolbar (Werkzeugleiste) enthält einige der genannnten Features aus dem Menü, das erleichtert den Zugriff, erscheint praktisch und auf das Wesentliche fürs Arbeiten beschränkt.  

Die Forth--Konsole selbst lässt sich zeilenweise wie gewohnt editeren. Während einer Sitzung kann man mit den up-- und down--Tasten hin und her blättern zu seinen vorherigen Eingaben. Diese \emph{command history} ist bei der nächsten Sitzung allerdings wieder leer. Da nützt auch das \textit{save keyboard history} des Menüs in eine Datei nichts. Aber man kann dann in jener Datei nachsehen und per copy\&paste zurückholen was man braucht. Das \emph{command history window} zeigt alle Eingaben der Sitzung. 

Dann gibt es unten am Rand eine Zeile zur Status--Anzeige, in der man sehen kann, was auf dem Stack liegt, welche Zahlenbasis eingestellt ist, und wie der editmodus steht --- hübsches feature: Klickt man auf die Angaben in der Statuszeile, rollt man durch die Einstellungen \textit{hex, dec, oct, bin} bzw  \textit{ins, ovr}. Hübsch auch der \emph{Words browser}. Klickt man darauf, werden die Worte des aktuellen Vokabulars in einem separaten Fenster angeboten. Klickt man dort auf ein Wort, wird dessen Quelle in der Forth--Konsole angezeigt --- einfach und praktisch. 

Beendet man die Arbeit mit der Evaluationsversion, versucht swiftForth noch schnell den Browser zu öffnen und die Forth--Inc.--Seite anzuzeigen, was für meinen Geschmack etwas zu viel Reklame ist. Aber ich denke mal, das tut die Vollversion dann nicht mehr. 

Man hat den Eindruck, dass man mit \emph{swiftForth} tatsächlich ein Werkzeug bekommt, mit dem in der Windows--Umgebung etwas Brauchbares erstellt werden kann. Und dann lohnen sich auch die Euros für eine lizensierte Vollversion.  

\end{multicols}


\end{document}
