FreeBASIC
FreeBASIC (kurz FB) ist ein kostenloser Open-Source-Compiler und eine Programmiersprache, deren Syntax auf QuickBASIC aufbaut. Er ermöglicht das Erzeugen von 32-Bit und 64-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. C-kompatible Bibliotheken können direkt, C++-Bibliotheken immerhin teilweise in FreeBASIC verwendet werden. So können beispielsweise GTK+, GSL, SDL, Allegro, Lua oder OpenGL genutzt werden, und mit jeder neuen Version steigert sich die Anzahl der unterstützten Bibliotheken. Die erste Version wurde im November 2004 veröffentlicht. MerkmaleDie Programmiersprache FreeBASIC lehnt sich in ihrer Syntax stark an den vom DOS-basierten QuickBASIC definierten Dialekt an, was der Compiler mit der Direktive
Der CompilerDer FreeBASIC-Compiler („FBC“) erzeugt Maschinencode, welcher mit den Hilfsprogrammen der GCC-Suite kompiliert und gelinkt wird. Dadurch können auch Bibliotheken von der GCC-Suite verwendet werden, und man erhält ausführbare Binärdateien kleiner Größe für Windows, DOS und Linux.
Alternativ zur direkten Generierung von Maschinencode durch den Compiler ist auch eine Einbeziehung des C-Compilers oder des LLVM-Backends möglich:
So ist der Compiler in der Lage, über eine entsprechende Compiler-Option Der Compiler ist in der Lage, 32-Bit-x86- und 64-Bit-Programme zu erstellen. Durch das C-Backend sind überdies hinaus andere Plattformen wie ARM verfügbar. SyntaxEs 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:[4]
Die Groß/Kleinschreibung ist dabei, wie bei BASIC üblich, ohne Bedeutung. „ VariablenBeim Umgang mit Werten (Zahlen, Zeichenketten, oder sonstige Arten von Informationen) werden Variablen und Konstanten verwendet, Funktionen und SubroutinenEbenso ist es möglich, innerhalb eines Programmes eigene Befehle zu erstellen, die aus einer Aneinanderreihung bestehender Befehle bestehen. Ein solcher eigener Befehl kann eine 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 Unterstrich geschrieben werden: PRINT "Hallo, dieser String" + _
" ist ein einzelner String."
Mehrere Befehle können ohne Zeilenumbruch durch einen Doppelpunkt aneinandergereiht werden: PRINT "Hallo, dieser String": PRINT " ist ein einzelner String."
Ein weiterer Unterschied zu anderen Sprachen ist, dass bei Aufrufen von Subroutinen die Klammersetzung optional ist, da man eine Subroutine sowohl mit Code-BeispieleHallo WeltEin einfaches Hallo-Welt-Programm in FreeBASIC sieht so aus: PRINT "Hallo Welt!"
SLEEP
Objektorientierte Programmierung'Vektorklasse
Type Vector
W as Integer
H as Integer
Declare Constructor (nW as Integer, nH as Integer)
End Type
Constructor Vector (nW as Integer, nH as Integer)
W = nW
H = nH
End Constructor
'Klasse zur Erstellung eines Objekts
Type AObject
Private:
X as Integer
Y as Integer
Movement as Vector Pointer
Public:
'Öffentliche Methoden inklusive eines Konstruktors und eines Destruktors
Declare Constructor (nX as Integer, nY as Integer)
Declare Destructor ()
Declare Sub SetMotion (Motion as Vector Pointer)
Declare Sub Move ()
Declare Property GetX as Integer
End Type
'Initialwerte setzen
Constructor AObject (nX as Integer, nY as Integer)
X = nX
Y = nY
End Constructor
'Allozierten Speicher freigeben
Destructor AObject ()
delete Movement
End Destructor
'Bewegungsvektor setzen
Sub AObject.SetMotion (Motion as Vector Pointer)
Movement = Motion
End Sub
'Das Objekt anhand seines Bewegungsvektors bewegen
Sub AObject.Move ()
X += Movement->W
Y += Movement->H
End Sub
'Rückgabe von X, welches sonst nicht zugänglich wäre
Property AObject.GetX as Integer
Return X
End Property
'Hier beginnt das eigentliche Programm
'Eine neue Instanz von 'AObject' an den Koordinaten 100, 100 erstellen
Dim Player as AObject = Type<AObject>(100, 100)
'Ein neues Vektorobjekt dynamisch allozieren und dessen Position um 10 nach links und 5 nach unten verschieben
Player.SetMotion(new Vector (-10, 5))
'Die Position von 'Player' aktualisieren
Player.Move()
'Den neuen Wert von X (90) anzeigen
Print Player.GetX
'Weil 'Player' eine lokale Variable ist, wird sein Destruktor am Ende des Gültigkeitsbereichs ("scope") automatisch aufgerufen
'Vor Programmende auf Tastendruck warten
Sleep
IDENeben der Unterstützung durch bekannte Entwicklungsumgebungen, wie Geany, existieren auch zwei speziell auf FreeBASIC ausgelegte Editoren: FBIdeDie FBIde ist ein schlanker Editor und die älteste IDE für FreeBasic. Die aktuelle Version ist 0.4.6r4.[7] FBEditMehr Möglichkeiten bietet der FreeBASIC-Editor, kurz FBEdit. Es gibt ein eigenes Interface zur Gestaltung von Dialogen mithilfe von Ressourcendateien und der Windows-API. Die aktuelle Version ist 1.0.7.6c vom 14. Dezember 2013.[8] WeblinksWikibooks: FreeBasic – Lern- und Lehrmaterialien
Wikiversity: Kurs:FreeBASIC – Kursmaterialien
Commons: FreeBASIC – Album mit Bildern, Videos und Audiodateien
Einzelnachweise
|
Portal di Ensiklopedia Dunia