PureBasic
PureBasic ist eine hauptsächlich von Frédéric Laboureur (Fantaisie Software, Frankreich) entwickelte prozedurale Programmiersprache für Windows, Linux, macOS, Raspberry Pi OS und AmigaOS, die kommerziell vertrieben wird.
PureBasic | |
---|---|
Der PureBasic-Editor | |
Basisdaten | |
Entwickler | Fantaisie Software |
Erscheinungsjahr | 1998 |
Aktuelle Version | Windows: 6.03 (11. Oktober 2023) Linux: 6.03 (11. Oktober 2023) |
Betriebssystem | Windows, Linux, macOS, RaspBerry Pi OS, AmigaOS, |
Kategorie | Prozedurale Programmiersprache |
Lizenz | Proprietär |
deutschsprachig | ja |
www.purebasic.com |
Allgemeines
PureBasic ist eine auf BASIC basierende Programmiersprache. Die Schlüsselfeatures sind Portierbarkeit (gegenwärtig werden Windows, Linux, macOS vollständig sowie AmigaOS teilweise unterstützt), die Erstellung sehr schneller Programme und die einfach zu erlernende BASIC-Syntax. Zudem bietet PureBasic eine große Menge Bibliotheksfunktionen, die übersichtlich und einfach aufgebaut sind. Damit ist PureBasic für Anfänger ebenso wie Experten geeignet. Trotz der anfängerfreundlichen Syntax machen die fortgeschrittenen Möglichkeiten wie z. B. Zeiger, Strukturen, Prozeduren und dynamisch verknüpfte Listen, Felder und Maps PureBasic zu einer vielseitigen Programmiersprache. Auch die Verwendung von Inline-Assembler für zeitkritische Code-Abschnitte ist möglich.
Eigenschaften
- Umfangreiche Standard-Bibliothek, zum Beispiel für GUI-Elemente, Grafik, Sound, Netzwerk, Datenbank, Kompression, Kryptografie, u. v. a.
- Erweiterbarer Funktionsumfang durch selbsterstellte Bibliotheken.
- Entwicklungsumgebung mit integriertem 32-Bit- bzw. 64-Bit-Compiler, der auch Inline-Assembler unterstützt.
- Die integrierte Entwicklungsumgebung enthält einen visuellen Designer zum Erstellen des Codes für Oberflächenelemente.
- Quelltext ist portierbar zwischen Windows, Linux, macOS und teilweise AmigaOS. Eine Variante mit Namen Spiderbasic soll den Quelltext auch im Browser lauffähig machen. Dabei wird der Quelltext in HTML und JavaScript übersetzt.
- Erstellte Anwendungen benötigen keine externen DLLs oder andere externe Ressourcen.
- Unterstützung von Prozeduren zur strukturierten Programmierung mit lokalen und globalen Variablen
- Voller Zugriff auf die Programmierschnittstelle (API) des jeweils verwendeten Betriebssystems.
- Einfache Realisierung von 2D- und 3D-Spielen durch integrierte Bibliotheken möglich (DirectX, OpenGL, SDL, OGRE).
Geschichte
Der PureBasic-Erfinder Frédéric Laboureur schrieb Ende der 1990er Jahre für die Amiga-Version von Blitz Basic viele zusätzliche Befehle in 68000-Assembler (Assemblersprache für die Motorola-68000er-Familie). Da Blitz Basic für den Amiga einige Jahre zuvor offiziell eingestellt wurde, entwickelte er zusammen mit Roger Beausoleil den ersten Compiler, der die für Blitz Basic geschriebenen Befehle nutzte. Dieser Compiler unterstützte schon damals verschiedene Prozessorarchitekturen (zunächst Code-Generierung für PowerPC sowie 680x0). Später wurde er auf die heute unterstützten Systeme Windows, Linux und macOS portiert. Das Ergebnis war PureBasic. Zunächst wollte Laboureur seine Sprache Phoenix taufen. Jedoch verwarf er diese Idee, da er befürchtete, dass Anwender diesen Namen ohne das Anhängsel BASIC in Suchmaschinen nicht finden würden. Anschließend wollte er es PowerBasic nennen. Doch dieser Name war bereits für eine andere Programmiersprache vergeben. Letzten Endes entschied sich Laboureur für PureBasic. Durch pure (deutsch klar, rein) möchte er ausdrücken, dass PureBasic leicht zu verstehen und einfach anzuwenden ist. Die erste Version von PureBasic, die nicht den Beta-Status trug, erschien am 17. Dezember 2000. Seit dem 4. November 2007 ist die Version 4.10 für Windows, Linux und macOS verfügbar, mit der es erstmals möglich ist, unabhängig vom Betriebssystem auf den gesamten Befehlssatz von PureBasic zurückzugreifen, was die Portierbarkeit der Quelltexte vereinfacht.
Lizenz
PureBasic muss für jeden Anwender einzeln zugelassen (lizenziert) werden. Das bedeutet, dass ein Benutzer mit dem Kauf einer Lizenz PureBasic auf jedem beliebigen seiner Rechner einrichten darf.
Die Lizenz darf somit nicht zwischen mehreren Personen geteilt werden. Ausnahmen davon bilden spezielle Lizenzen für Schulklassen und Firmen, welche dann eine gesamte Klasse bzw. einen Firmenstandort abdecken.
Eine PureBasic-Lizenz gilt für alle unterstützten Plattformen, sie ist also nicht an eine Entwicklungsplattform gebunden. Die Lizenz von PureBasic ist somit für alle (außer dem Hersteller) unfrei (proprietär). Ausnahme bilden lediglich die Standardbibliotheken der Version für AmigaOS, die als Open Source quelloffen und frei verfügbar sind. Eine Besonderheit der Lizenz ist das darin enthaltene Recht auf lebenslang kostenlose Aktualisierungen auf neue Versionen.
Beispiel
Der folgende Quelltext stellt ein einfaches PureBasic-Programm dar, das die Meldung „Hallo Welt!“ in einem Benachrichtigungsfenster ausgibt:
MessageRequester("Nachricht", "Hallo Welt!")
Die Ausgabe unter Windows:
Die folgenden drei Befehle geben „Hallo Welt!“ im Befehlsfenster (Konsole) aus:
OpenConsole()
Print("Hallo Welt!")
Input() ;wartet auf das Drücken der [Eingabe]-Taste
Ausgabe:
Entwicklungsumgebung
Die integrierte Entwicklungsumgebung von PureBasic setzt sich neben vielen nützlichen Werkzeugen aus einem Texteditor, Compiler, Debugger sowie einem visuellen Designer zusammen. Syntaxhervorhebung, Code-Faltung, Zeilennummerierung und mehr wird durch die Verwendung der Editor-Komponente Scintilla unterstützt. Außerdem lässt sich die Entwicklungsumgebung individuell an die eigenen Bedürfnisse anpassen. So kann man zum Beispiel eigene Farben zur Syntaxhervorhebung definieren oder Werkzeuge von Drittanbietern in die Entwicklungsumgebung integrieren.
Weblinks
- Offizielle Homepage mit Forum (deutsch, englisch u. französisch)
- pureVision – professioneller Formdesigner (englisch)
- PureProject – Portalseite (englisch)
- Linkkatalog zum Thema PureBasic bei curlie.org (ehemals DMOZ)
- PureArea.net – PureBasic Support- und Bestellseite (deutsch u. englisch)
- PureBasic auf RosettaCode (englisch)