www.wikidata.de-de.nina.az
Dieser Artikel behandelt die Programmiersprache Zur App siehe Internet org FreeBASIC kurz FB ist ein kostenloser Open Source Compiler und eine Programmiersprache deren Syntax auf QuickBASIC aufbaut Er ermoglicht das Erzeugen von 32 Bit und 64 Bit Anwendungsprogrammen Spielen etc fur Microsoft Windows Linux FreeBSD und DOS teilweise auch fur die Xbox Versionen fur weitere Betriebssysteme sind geplant FreeBASICSeite aus dem HandbuchBasisdatenEntwickler Andre VictorThe Freebasic Development Team Open Source Erscheinungsjahr 2004Aktuelle Version 1 10 0 1 15 Mai 2023 Betriebssystem Windows Linux DOS und FreeBSD letzteres nur eingeschrankt Programmiersprache BASICKategorie CompilerLizenz GPL LGPLdeutschsprachig jawww freebasic netC kompatible Bibliotheken konnen direkt C Bibliotheken immerhin teilweise in FreeBASIC verwendet werden So konnen beispielsweise GTK GSL SDL Allegro Lua oder OpenGL genutzt werden und mit jeder neuen Version steigert sich die Anzahl der unterstutzten Bibliotheken Die erste Version wurde im November 2004 veroffentlicht Inhaltsverzeichnis 1 Merkmale 2 Der Compiler 3 Syntax 3 1 Variablen 3 2 Funktionen und Subroutinen 4 Code Beispiele 4 1 Hallo Welt 4 2 Objektorientierte Programmierung 5 IDE 5 1 FBIde 5 2 FBEdit 6 Weblinks 7 EinzelnachweiseMerkmale BearbeitenDie Programmiersprache FreeBASIC lehnt sich in ihrer Syntax stark an den vom DOS basierten QuickBASIC definierten Dialekt an was der Compiler mit der Direktive lang qb nochmals verstarkt wodurch die Moglichkeit besteht QBasic Code ohne grossere Anpassung zu modernen Anwendungen zu kompilieren Daruber hinaus zeichnet sich FreeBASIC durch zahlreiche Verbesserungen und moderne Features aus Inline Assembler Pointer auf Variablen und Funktionen Uberladen von Funktionen Subroutinen Funktionen ohne Ruckgabe und Operatoren Ausserdem konnen Funktionen und Subroutinen mit optionalen Parametern erstellt werden C kompatible Schnittstelle fur Funktionsaufrufe Hierdurch werden Projekte in mehreren Programmiersprachen ermoglicht und man kann auf so gut wie alle Funktionen zuruckgreifen die heutige Programmierer nutzen hierunter befinden sich auch die WinAPI und andere C kompatible Bibliotheken u a OpenGL oder DirectX 2 Inkrement und Dekrement Makros u a die dem Programmierer Tipparbeit abnehmen Grundlagen der objektorientierten Programmierung wie Klassen types sowie die Einfachvererbung einige Merkmale wie beispielsweise Interfaces oder das Schlusselwort class anstelle von type sind bereits angedacht wurden aber noch nicht umgesetzt Alle Funktionen u a Dateizugriff Zeichenketten etc der Laufzeitbibliothek sowie samtliche internen Grafikbefehle sind plattformunabhangig d h konnen auf Windows Linux und DOS gleichermassen verwendet werden Das ermoglicht das einfache Schreiben plattformunabhangiger Anwendungen Der Compiler BearbeitenDer FreeBASIC Compiler FBC erzeugt Maschinencode welcher mit den Hilfsprogrammen der GCC Suite kompiliert und gelinkt wird Dadurch konnen auch Bibliotheken von der GCC Suite verwendet werden und man erhalt ausfuhrbare Binardateien kleiner Grosse fur Windows DOS und Linux Alternativ zur direkten Generierung von Maschinencode durch den Compiler ist auch eine Einbeziehung des C Compilers oder des LLVM Backends moglich So ist der Compiler in der Lage uber eine entsprechende Compiler Option gen gcc C Code insbesondere fur die GCC Suite zu erzeugen sogenanntes C backend im Gegensatz zum assembler backend Ebenso kann mit einer ahnlichen Compiler Option gen llvm Zwischencode generiert werden der uber das LLVM Framework weiterverarbeitet werden kann Durch diese zwei Optionen ist eine direkte Integration in bekannte Strukturen moglich 3 Der Compiler ist in der Lage 32 Bit x86 und 64 Bit Programme zu erstellen Durch das C Backend sind uberdies hinaus andere Plattformen wie ARM verfugbar Syntax BearbeitenEs existieren derzeit uber 400 Schlusselworter die z T auf mehrerlei Art und Weise verwendet werden konnen Generell werden drei Arten von Schlusselwortern unterschieden 4 Anweisungen Anweisungen erfullen eine bestimmte Aufgabe etwa die Ausgabe von Text auf dem Bildschirm Funktionen Sie zeichnen sich dadurch aus dass nach ihrem Aufruf ein Wert zur Verfugung 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 uber den Status des Funktionsaufrufs informieren Funktionen mit Anweisungscharakter wie GETMOUSE diese Funktion fragt den Status der Maus ab und gibt eine Zahl zuruck die bestatigt dass die Abfrage erfolgreich war oder ob dabei ein Fehler aufgetreten ist Klauseln Sie beeinflussen das Verhalten von Anweisungen und Funktionen und konnen losgelost von diesen nicht verwendet werden Die Gross Kleinschreibung ist dabei wie bei BASIC ublich ohne Bedeutung GetMouse und GETMOUSE werden vom Compiler gleich behandelt Variablen Bearbeiten Beim Umgang mit Werten Zahlen Zeichenketten oder sonstige Arten von Informationen werden Variablen und Konstanten verwendet STRING Variablen Zeichenketten werden in doppelte Anfuhrungszeichen gesetzt Wird der Zeichenkette ein vorangestellt konnen auch Escape Sequenzen benutzt werden z B Print Hello nWorld erzeugt einen Zeilenumbruch zwischen Hello und World Mit diesen Variablen und Konstanten kann uber verschiedene Operatoren gearbeitet werden Bei Zahlen Variablen stehen etwa verschiedene mathematische Operatoren zur Verfugung LOG EXP SIN ASIN Bei STRINGs hingegen ist die Auswahl der Operatoren eingeschrankt moglich ist nur die Verkettung oder amp sowie die Indizierung mittels eckiger Klammern Funktionen und Subroutinen Bearbeiten Ebenso ist es moglich innerhalb eines Programmes eigene Befehle zu erstellen die aus einer Aneinanderreihung bestehender Befehle bestehen Ein solcher eigener Befehl kann eine SUB Abkurzung fur Subroutine sein die sich wie eine Anweisung verhalt oder eine FUNCTION die ebenso wie FreeBASICs eigene Funktionen einen Wert zuruckgeben kann Beide konnen mit Parametern arbeiten die auch optional sein durfen Es werden auch variable Parameterlisten analog zu C unterstutzt 5 Im Gegensatz zu vielen anderen Sprachen werden Programmbefehle nicht mit einem Semikolon abgeschlossen sondern mit einem Zeilenumbruch wie auch in QBasic Mochte man einen Befehl uber 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 konnen 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 Subroutine Parameter als auch mit Subroutine Parameter aufrufen kann Diese Eigenschaft ist ebenfalls von QBasic abgeleitet Jedoch ist dies nicht bei Funktionen moglich dort mussen immer Klammern gesetzt werden Code Beispiele BearbeitenHallo Welt Bearbeiten Ein einfaches Hallo Welt Programm in FreeBASIC sieht so aus PRINT Hallo Welt SLEEP PRINT ist hierbei eine Anweisung die bewirkt dass ein Text auf dem Bildschirm ausgegeben wird Hallo Welt ist hierbei ein Parameter in diesem Fall wird also Hallo Welt auf dem Bildschirm ausgegeben Der SLEEP Befehl 6 wird nicht benotigt Er wird nur benutzt um zu verhindern dass sich das Ausgabefenster der Anwendung automatisch schliesst wenn diese nicht aus der Konsole gestartet wurde Objektorientierte Programmierung Bearbeiten 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 Offentliche 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 gt W Y Movement gt H End Sub Ruckgabe von X welches sonst nicht zuganglich ware 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 lt AObject gt 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 Gultigkeitsbereichs scope automatisch aufgerufen Vor Programmende auf Tastendruck warten SleepIDE BearbeitenNeben der Unterstutzung durch bekannte Entwicklungsumgebungen wie Geany existieren auch zwei speziell auf FreeBASIC ausgelegte Editoren FBIde Bearbeiten nbsp FBIde in der Version 0 4 6Die FBIde ist ein schlanker Editor und die alteste IDE fur FreeBasic Die aktuelle Version ist 0 4 6r4 7 FBEdit Bearbeiten Mehr Moglichkeiten 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 Weblinks Bearbeiten nbsp Wikibooks FreeBasic Lern und Lehrmaterialien nbsp Wikiversity Kurs FreeBASIC Kursmaterialien nbsp Commons FreeBASIC Album mit Bildern Videos und Audiodateien FreeBASIC Webseite des Compilers englisch FreeBASIC Portal mit Einfuhrungen und Code Beispielen deutsch Befehlsreferenz deutsch Programmierwettbewerb zu FreeBASIC und QuickBasic deutsch Einzelnachweise Bearbeiten Release 1 10 0 15 Mai 2023 abgerufen am 2 Juni 2023 Uwe Vollbracht Aktuelle Software im Kurztest In LinuxUser 04 2016 Abgerufen am 23 Januar 2023 deutsch LLVM fur FreeBASIC 10 April 201 abgerufen am 12 Januar 2014 freebasic portal de Weblinks Online Befehlsreferenz freebasic portal de Ellipsis in der deutschsprachigen Befehlsreferenz freebasic portal de fbide freebasic net freebasic portal de Abgerufen von https de wikipedia org w index php title FreeBASIC amp oldid 234763225