EINFHRUNG


Gewi, es gibt schon Batchprogrammiersprachen unter Windows. Die
bekanntesten sind "WinBatch" und "Oriel". "WinBatch" ist eine herausragende
Sprache, aber leider vllig ohne Grafik.
"WinBatch" von "WilsonWare" (USA) ist sowohl als Shareware oder Vollversion
(mit deutschem Handbuch) erhltlich, als auch als Batchsprache (unter anderem
Namen) im Norton Desktop fr Windows integriert.
"Oriel" hingegen hat umfangreiche Grafikbefehle, aber doch einen sehr
eingeschrnkten Befehlsumfang. So gibt es da z.B. keine Mglichkeit Eingaben zu
machen oder Dateien von Diskette oder Festplatte zu lesen.
Beide Sprachen enthalten keinen Compiler. Anwendungen knnen daher nur an
Leute weitergeben werden, die Ihrerseits diese Sprache gekauft haben.

Ziele der Entwicklung von Profan waren:

* Eine einfache - an BASIC angelehnte - Syntax auch fr den Anfnger
* Alle Grafikmglichlkeiten, die "Oriel" bietet ... und noch mehr
* umfangreiche Datei- und Verwaltungsfunktionen
* der komplette Interpreter kleiner als 100 kB, keine weiteren DLLs oder sonstige
Dateien (die 100 kB lieen sich in der vorliegenden zweiten Version nicht mehr
halten ... aber unter 200 kB will ich auch knftig bleiben).
* Mglichkeit, Anwendungen ohne weitere Kosten weiterzugeben.

Herausgekommen ist "Profan". Eine komplette Programmiersprache. Der
Anfnger wird viele BASIC-Befehle in gewohnter Form wiederfinden, u.a.
PRINT, LOCATE, CLS, INPUT, GOTO, GOSUB, RETURN, IF, WHILE, WEND,
SOUND, PRINT #n, INPUT #n, END, LET, ...

Auch die Variablen und Konstanten werden weitestgehend wie in BASIC
gehandhabt.

Bei den Dateioperationen wurde allerdings das etwas vielseitigere Konzept von
PASCAL bernommen:
ASSIGN, RESET, REWRITE, APPEND, RENAME, ERASE, CLOSE, ...
Mit COPY knnen Dateien kopiert werden und mit CHDIR, MKDIR und RMDIR
knnen Verzeichnisse verwaltet werden. Spezielle Funktionen geben Auskunft
ber das aktuelle Laufwerk, den aktuellen Pfad und vieles mehr.
Dazu kamen dann noch WINDOWS-spezifische Dinge, wie Mens, Listboxen,
Inputboxen, Load- und Save-Dialoge und vieles mehr.

Und die Krnung sind natrlich die umfangreichen Grafikbefehle, die direkt auf
den Grafik-Kern von Windows zugreifen: USEBRUSH, USEFONT, USEPEN,
USEICON, COPYBMP, RECTANGLE, ROUNDRECT, ELLIPSE, ARC, PIE,
DRAWTEXT, ... Mit LOADBMP und SAVEBMP knnen Bitmap-Grafiken geladen,
verarbeitet und gespeichert werden.

Mit Windows 3.1 wurde dann auch eine weitere Sprachergnzung notwendig:
Ansteuerung aller Multimediagerte und Abspielen von WAV-Sounddateien ber
die Soundkarte. Das Abspielen von Musik-CDs ist ebensowenig ein Problem wie
das Untermalen von Spielen mit Geruschen oder das Abspielen von Microsofts
Video fr Windows: MCISEND,  PLAYSOUND, ...

Der fortgeschrittene Anwender wird vermutlich zur Bildschirmausgabe die
textorientierten Ausgabebefehle des BASIC weniger verwenden, als vielmehr die
neuen und mchtigen Windows-Befehle.


Strukturierte und bersichtliche Programmierung wird ermglicht, indem nur ein
Befehl pro Zeile erlaubt ist und zahlreiche Kontrollstrukturen verfgbar sind:
IF ... ELSEIF ... ELSE ... ENDIF, CASE, WHILE ... WEND, GOSUB ... RETURN.
Mit PROC ... ENDPROC knnen - wie in Pascal - Prozeduren definiert werden und
mit DEF knnen neue Funktionen definiert werden. In Prozeduren und Funktionen
gibt es lokale Variablen. Auerdem ist beliebiges Einrcken ebenso statthaft, wie
komplett leere Zeilen.

Im Laufe der Entwicklung kam dann auch noch ein Compiler dazu, der einen sehr
kompakten Zwischencode erzeugt, der mit einem Runtime-Modul gestartet werden
kann. Das letzte Glied in der Kette zur kompletten Programmiersprache war dann
der Linker, der Runtimemodul und Zwischencode zu einer eigenstndigen EXE-
Datei linkt. Und da das Runtime-Modul nur wenig mehr als 120 kB gro ist, sind
recht aufwendige Windowsapplikationen unter 150 kB mglich. Da die fertige
PROFAN-Applikation immer noch als Runtime-Modul fr weitere Zwischencode-
Dateien dienen kann und sogar eine bergabe von Parametern mglich ist, steht
der modularisierten Programmierung nichts im Wege. Die Sahnehaube aber ist
PROFED, die Entwicklungsumgebung: In der vorliegenden zweiten Version wurde
sie noch einmal krftig erweitert: Beliebige Schriftwahl, Projektverwaltung, ...

Ach ja: Das berhmte "Hallo Welt"-Programm in Profan:

  Print "Hallo Welt"
  WaitKey
  End

So einfach ist das. Das "WaitKey" steht nur deshalb da, damit der Anwender
Gelegenheit hat, das Ergebnis zu betrachten: Ein Programm in einem Windows-
Fenster mit allem was dazugehrt. Sozusagen eine vollstndige Windows-
Applikation. Mit einem Tastendruck oder ber die entsprechende Fensterfunktion
wird das Programm beendet.

Die Kombination von Interpreter und Compiler bietet interessante Vorteile. Im
Interpretermodus entwickeln Sie das Programm und testen es aus. Und wenn es
dann fertig getestet ist, verleihen Sie ihm mit dem Compiler den ntigen Drive!
Esw wird dingend geraten erst ein getestetes Programm zu compilieren, da die
Laufzeitfehlermeldungen oft weniger aussagekrftig sind, als die des Interpreters.

