- Freebasic
-
FreeBASIC Basisdaten Entwickler: Quelloffen (Open Source) Aktuelle Version: 0.20.0 Beta
(10.08.2008)Betriebssystem: Windows, Linux, FreeBSD und DOS Kategorie: Compiler Lizenz: GPL/LGPL Deutschsprachig: nur IDE www.freebasic.net FreeBASIC (kurz FB) ist ein kostenloser Open-Source-Compiler, dessen Syntax auf Microsoft QuickBASIC aufbaut. Er ermöglicht das Erzeugen von 32-Bit-Anwendungsprogrammen, Spielen etc. für Microsoft Windows, Linux, FreeBSD und DOS, teilweise auch für die Xbox. Versionen für weitere Betriebssysteme sind geplant.
Zurzeit können Bibliotheken wie GTK+, GSL, SDL, Allegro, Lua oder OpenGL direkt genutzt werden, mit jeder neuen Version steigert sich jedoch die Anzahl der unterstützten Bibliotheken.
Die erste Version wurde im November 2004 veröffentlicht, die neueste Version ist Version 0.20.0 (Beta) vom 10. August 2008.
Inhaltsverzeichnis
Merkmale
- Der FreeBASIC-Compiler ("FBC", unter Windows und DOS fbc.exe, unter Linux heißt die Binary lediglich fbc) erzeugt lediglich Assembler-Code, welcher mithilfe der GCC-Suite compiliert und gelinkt wird. Durch dieses Verfahren können Importbibliotheken von der GCC-Suite direkt übernommen werden. Durch dieses Backend können sehr kleine ausführbare Binarys für Windows, DOS und Linux erzeugt werden.
- Der Compiler ist in verschiedenen Tests schneller als BlitzBasic, Visual Basic und Co.
- Er beinhaltet einen Inline-Assembler.
- Er beherrscht Pointer auf Variablen und Funktionen.
- Er beherrscht das Überladen von Funktionen und Subroutinen (Funktionen ohne Rückgabe), wie beispielsweise auch C++ oder Java, und Funktionen und Subroutinen können mit optionalen Parametern (wie zum Beispiel auch in PHP) erstellt werden.
- Er kann im Gegensatz zum DOS-basierten QuickBasic auf fast alle Funktionen zurückgreifen, die heutige Programmierer nutzen, wie zum Beispiel die WinAPI und andere Bibliotheken.
- Alle Funktionen der FBRTL sind plattformunabhängig, d. h. können auf Windows, Linux und DOS gleichermaßen verwendet werden. Das ermöglicht das einfache Schreiben plattformunabhängiger Anwendungen.
- Der Compiler ermöglicht das Schreiben hardwarebeschleunigter Anwendungen durch Verwendung von openGL.
- Er beinhaltet einige sehr komfortable Sprachkonstrukte wie etwa Shorthands, Makros u. ä., die dem Programmierer einige Tipparbeit abnehmen.
- Inzwischen ist es zwar möglich, Objekte zu erstellen, jedoch sind einige Elemente der Objektorientierung (z. B. Vererbung) noch nicht implementiert.
Syntax
Es existieren derzeit über 400 Schlüsselwörter, die z. T. auf mehrerlei Art und Weise verwendet werden können. Generell werden drei Arten von Schlüsselwörtern unterschieden:[1]
- Anweisungen: Anweisungen erfüllen eine bestimmte Aufgabe, etwa die Ausgabe von Text auf dem Bildschirm.
- Funktionen: Sie zeichnen sich dadurch aus, dass nach ihrem Aufruf ein Wert zur Verfügung gestellt wird, der das Ergebnis des Funktionsaufrufs darstellt. Dabei kann der Wert den einzigen Sinn der Funktion darstellen (etwa bei mathematischen Funktionen wie
LOG
), oder nur über den Status des Funktionsaufrufs informieren (Funktionen mit Anweisungscharakter, wieGETMOUSE
; diese Funktion fragt den Status der Maus ab, und gibt eine Zahl zurück, die bestätigt, dass die Abfrage erfolgreich war, oder ob dabei ein Fehler aufgetreten ist.) - Klauseln: Sie beeinflussen das Verhalten von Anweisungen und Funktionen, und können losgelöst von diesen nicht verwendet werden.
Die Groß/Kleinschreibung ist dabei absolut bedeutungslos; „
GetMouse
“ und „GETMOUSE
“ werden vom Compiler gleich behandelt.Beim Umgang mit Werten (Zahlen, Zeichenketten, oder sonstige Arten von Informationen) werden Variablen und Konstanten verwendet,
STRING
-Variablen (Zeichenketten) werden in doppelte Anführungszeichen «"» gesetzt. Wird dem String ein «!» vorangestellt, können auch Escape-Sequenzen benutzt werden (z. B.Print !"Hello\nWorld"
– erzeugt einen Zeilenumbruch zwischen «Hello» und «World»). Mit diesen Variablen und Konstanten kann über verschiedene Operatoren gearbeitet werden. Bei Zahlen-Variablen stehen etwa verschiedene mathematische Operatoren zur Verfügung (+, −, *, /,LOG
,EXP
,SIN
,ASIN
, …). Bei STRINGs hingegen ist die Auswahl der Operatoren logischerweise eingeschränkt, möglich ist nur die Verkettung (+ oder &) sowie die Indizierung (mittels eckiger Klammern).Ein einfaches Hallo-Welt-Programm in FreeBASIC sieht so aus:
PRINT "Hallo Welt!" SLEEP
"Hallo Welt!"
ist hierbei ein Parameter; in diesem Fall wird alsoHallo Welt!
auf dem Bildschirm ausgegeben.PRINT
ist hierbei eine Anweisung, die bewirkt, dass ein Text auf dem Bildschirm ausgegeben wird.- Der
SLEEP
-Befehl[2] wird nicht benötigt. Er wird nur benutzt, um zu verhindern, dass sich das Ausgabefenster der Anwendung automatisch schließt, wenn diese nicht aus der Konsole gestartet wurde.
Ebenso ist es möglich, innerhalb eines Programmes eigene Befehle zu erstellen, die aus einer Aneinanderreihung bestehender Befehle bestehen. Ein solcher eigener Befehl kann eine
SUB
(Abkürzung für Subroutine) sein, die sich wie eine Anweisung verhält, oder eineFUNCTION
, die ebenso wie freeBASICs eigene Funktionen einen Wert zurückgeben kann. Beide können mit Parametern arbeiten, die auch optional sein dürfen.Im Gegensatz zu vielen anderen Sprachen werden Programmbefehle nicht mit einem Semikolon abgeschlossen, sondern mit einem Zeilenumbruch wie auch in QBasic. Möchte man einen Befehl über mehrere Zeilen ausdehnen, muss am Ende jeder Zeile, die den Befehl nicht beendet, ein Fußstrich geschrieben werden:
PRINT "Hallo, dieser String"+_ " ist ein einzelner String."
Mehrere Befehle können ohne Zeilenumbruch durch einen Doppelpunkt aneinander gereiht werden.
Ein weiterer Unterschied zu anderen Sprachen ist, dass bei Subaufrufen die Klammersetzung optional ist: Man kann eine Subroutine sowohl mit
ProcName(parameter)
oderProcName (parameter)
als auch mitProcName parameter
aufrufen, ebenfalls von QBasic abgeleitet. Jedoch ist das nicht bei Funktionen möglich, dort müssen immer Klammern gesetzt werden.IDE
Mit FBIde gibt es eine eigene IDE für FreeBasic. Die aktuelle Version ist 0.4.6.
Mehr Möglichkeiten bietet der FreeBASIC-Editor, kurz FBEdit. Es gibt ein eigenes Interface zur Gestaltung von Dialogen.
Weblinks
- http://www.FreeBASIC.net – englische Webseite des Compilers
- http://www.freebasic-portal.de – deutschsprachiges Portal über FreeBASIC mit Tutorials und Code-Beispielen (komplett aktualisiert).
- http://referenz.FreeBasic-Portal.de – deutschsprachige FreeBASIC-Befehlsreferenz
- http://www.qb-wettbewerb.de – Programmierwettbewerb zu FreeBASIC und QBasic
Einzelnachweise
- ↑ Weblinks: Online-Befehlsreferenz
- ↑ http://www.freebasic-portal.de/index.php?s=ref&topic=SLEEP
Wikimedia Foundation.