PureBasic - PureBasic

PureBasic
PureBasic IDE 5.10.png
PureBasic VD.png
Paradigma strukturiert , zwingend , prozedural
Familie BASIC
Entworfen von Fantaisie-Software
Entwickler Fantaisie-Software
Erstmals erschienen 1998 (AmigaOS)
2000 (Windows)
Stabile Version
5,73 LTS / 23. November 2020 ; vor 8 Monaten ( 2020-11-23 )
Betriebssystem plattformübergreifend : Microsoft Windows , Linux , macOS (aktiv)
AmigaOS (eingestellt, Open Source )
Lizenz kommerziell
Dateinamenerweiterungen .pb, .pbi, .pbf, .pbp, .pbv
Webseite www .purebasic .com

Purebasic ist eine kommerziell vertriebene Verfahrens Computer - Programmiersprache und Entwicklungsumgebung basiert auf BASIC und entwickelt von Fantaisie Software für Windows - 32/64-bit, Linux 32/64-bit, und macOS . Eine Amiga- Version ist verfügbar, obwohl sie eingestellt wurde und einige Teile davon als Open Source veröffentlicht werden . Die erste öffentliche Veröffentlichung von PureBasic für Windows war am 17. Dezember 2000. Seitdem wurde es ständig aktualisiert.

PureBasic hat ein "Lifetime-Lizenzmodell". Wie auf der Website zitiert, hat der erste PureBasic-Benutzer (der sich 1998 registriert hat) immer noch kostenlosen Zugang zu neuen Updates und daran wird sich nichts ändern.

PureBasic kompiliert direkt in x86- , x86-64- , PowerPC- oder 680x0- Befehlssätze und erzeugt kleine eigenständige ausführbare Dateien und DLLs, die keine Laufzeitbibliotheken über die Standardsystembibliotheken hinaus benötigen. Programme, die ohne Verwendung der plattformspezifischen Anwendungsprogrammierschnittstellen (APIs) entwickelt wurden, können ohne oder mit geringen Änderungen problemlos aus derselben Quelldatei erstellt werden.

PureBasic unterstützt Inline-Assembly , was es dem Entwickler ermöglicht, FASM- Assembler-Befehle in den PureBasic-Quellcode einzufügen, während er die im PureBasic-Quellcode deklarierten Variablen verwendet, wodurch erfahrene Programmierer die Geschwindigkeit geschwindigkeitskritischer Codeabschnitte verbessern können. PureBasic unterstützt und hat die OGRE 3D-Umgebung integriert. Andere 3D-Umgebungen wie die Irrlicht Engine werden inoffiziell unterstützt.

Programmiersprache

Eigenschaften

PureBasic ist ein nativer plattformübergreifender 32-Bit- und 64-Bit-BASIC-Compiler. Derzeit unterstützte Systeme sind Windows, Linux, macOS. Die AmigaOS-Version ist Legacy und Open Source. Der Compiler erzeugt native ausführbare Dateien und die Syntax von PureBasic ist einfach und unkompliziert, vergleichbar mit einfachem C ohne die Klammern und mit nativer Unicode-String-Behandlung und einer großen Bibliothek integrierter Unterstützungsfunktionen. Es kann Konsolenanwendungen, GUI-Anwendungen und DLL-Dateien kompilieren.

Hallo Welt Beispiel

Die folgende einzelne Zeile PureBasic-Code erstellt eine eigenständige ausführbare x86-Datei (4,5 KiB (4.608 Byte) in der Windows-Version), die ein Meldungsfeld mit dem Text " Hallo Welt " anzeigt .

 MessageRequester("Message Box", "Hello World")

Und die folgende Variante des gleichen Codes, die stattdessen einen Inline- Windows-API- Aufruf verwendet, ohne dass Deklarationen oder andere externe Referenzen erforderlich sind, erstellt eine noch kleinere 2,0 KiB (2.048 Byte) eigenständige x86-Programmdatei für Windows.

 MessageBox_(0, "Hello World", "Message Box", 0)

Das Folgende ist eine Konsolenversion des Hello World-Beispiels.

 OpenConsole()          ; Open a console window. 
 Print("Hello, World!")

Verfahrensprogrammierung

PureBasic ist eine BASIC-Sprache der "zweiten Generation" mit strukturierten Bedingungen und Schleifen sowie unterstützter prozedurorientierter Programmierung. Der Benutzer muss keine Prozeduren verwenden, daher kann sich ein Programmierer für einen Codierungsstil entscheiden, der Goto, Gosub Label und Return umfasst .

Unten finden Sie eine Beispielprozedur zum Sortieren eines Arrays, obwohl SortArray jetzt eine integrierte Funktion von PureBasic ist.

 Procedure bubbleSort(Array a(1))
   Protected i, itemCount, hasChanged
  
   itemCount = ArraySize(a())
   Repeat
     hasChanged = #False
     itemCount - 1
     For i = 0 To itemCount
       If a(i) > a(i + 1)
         Swap a(i), a(i + 1)
         hasChanged = #True
       EndIf 
     Next  
   Until hasChanged = #False
 EndProcedure

Unten sehen Sie ein Beispielprogramm, das einen umfangreichen Texteditor mit zwei Menüelementen anzeigt.

;Create Window:
OpenWindow(0, #PB_Ignore, #PB_Ignore, 800, 600, "Simple Text Editor", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget)

;Add 2 menus:
CreateMenu(0, WindowID(0))
MenuItem(1, "&OK")
MenuItem(2, "&Cancel")

;Add Editor:
EditorGadget(0, 0, 0, 0, 0)
SetGadgetFont(0, LoadFont(0, "Courier New", 10))

;Process window messages until closed:
Repeat
    Select WaitWindowEvent()
    Case #PB_Event_Menu
        Select EventMenu()
        Case 1: MessageRequester("OK clicked directly or with '&' mnemonic.", GetGadgetText(0))
        Case 2: Break
        EndSelect
    Case #PB_Event_SizeWindow: ResizeGadget(0, 0, 0, WindowWidth(0, #PB_Window_InnerCoordinate), WindowHeight(0, #PB_Window_InnerCoordinate))
    Case #PB_Event_CloseWindow: Break
    EndSelect
ForEver

Beachten Sie, dass PureBasic doppelte Anführungszeichen in Strings nicht maskiert, daher müssen diese mit Chr(34) verkettet werden .

Objekt orientierte Programmierung

Fred, der Entwickler von PureBasic, hat erklärt, dass PureBasic niemals objektorientiert sein wird . Jedoch haben zahlreiche Benutzer objektorientierte Unterstützungssysteme geschaffen.

Datentypen

Variabler Datentyp, der bei der ersten Verwendung (und optional - in Zukunft) angegeben wird und vom Namen des Punkts getrennt wird. Es gibt eine Reihe von Grundtypen - .f, .d ( Float- und Double-Zahlen), .b, .c, .w, .l, .q (Integers - von Single-Byte und 8-Byte), .s - Saiten.

Typ Suffix Speichernutzung Numerischer Bereich
Byte B 1 Byte (8 Bit) -128 ... +127
ASCII ein 1 Byte (8 Bit) 0 ... +255
Charakter C 1 Byte (8 Bit) (ascii) 0 ... +255
Wort w 2 Byte (16 Bit) −32768 ... +32767
Unicode du 2 Byte (16 Bit) 0 ... +65535
Charakter C 2 Byte (16 Bit) (Unicode) 0 ... +65535
Lang l 4 Byte (32 Bit) −2147483648 ... +2147483647
Ganze Zahl ich 4 Byte (32 Bit) x86 −2147483648 ... +2147483647
Schweben F 4 Byte (32 Bit) Abhängig vom Verhältnis der Dezimalzahl.
Ganze Zahl ich 8 Byte (64 Bit) x64 −9223372036854775808 ... +9223372036854775807
Quad Q 8 Byte (64 Bit) −9223372036854775808 ... +9223372036854775807
Doppelt D 8 Byte (64 Bit) Abhängig vom Verhältnis der Dezimalzahl.
Zeichenfolge S ( Stringlänge + 1) * SizeOf (Charakter) Keine Begrenzung.
Fester String s{Länge } (String-Länge) * SizeOf(Character) Keine Begrenzung.
  • Hinweis: Len(String), das zum Zählen der Länge eines Strings verwendet wird, überschreitet nicht das erste Nullzeichen ( Chr(0) ).

Neben Basistypen kann der Anwender die Bauart über

Structure type_name
   field_name.type ; Single field. Perhaps the structures attachment.
   field_name[count].type ; Static arrays.
   ; ... 
   ; Optional construction StructureUnion .. EndStructureUnion allows you
   ; to combine multiple fields into one area of memory
   ; that is sometimes required for the conversion types.
   StructureUnion
      type_name.type
      ; ... 
   EndStructureUnion 
EndStructure

Variablen können einzeln sein (eigentlich Standardvariablen), dynamische Arrays (deklariert mit , eine verknüpfte Liste ( ), ein assoziatives Array (in neuen Sprachversionen) ( ) Dim var_name.type_name (size1, size2, ... )List() var_name.type_nameMap var_name.type_name()

Formulardesigner RAD

PureBasic verfügt über einen eigenen Formulardesigner , der bei der Erstellung von Formularen für Anwendungen hilft, aber auch andere Lösungen von Drittanbietern sind verfügbar. Der ursprüngliche nicht integrierte Visual Designer wurde am 14. Februar 2013 durch einen neuen integrierten Formulardesigner ersetzt .

Benutzergemeinschaft

PureBasic bietet ein Online-Forum für Benutzer, um Fragen zu stellen und Wissen auszutauschen. Am 6. Mai 2013 hatte das englischsprachige Forum 4.769 Mitglieder und enthielt 44.043 Threads mit 372.200 Beiträgen seit dem 17. Mai 2002.

Zahlreiche Code-Sharing-Sites zeigen, dass PureBasic verwendet wird, um Tools und Spiele schnell und einfach zu erstellen und große Mengen an Open-Source-Code zu teilen.

Weiterlesen

  • Willoughby, Gary (2006). Purebasic: Ein Leitfaden für Anfänger in der Computerprogrammierung . ISBN 1-4276-0428-2.
  • Logsdon, John. Programmierung von 2D-Scrolling-Spielen .Dieses Buch kann jetzt kostenlos heruntergeladen werden
  • Basic Compiler: QuickBASIC, PureBasic, PowerBASIC, Blitz Basic, XBasic, Turbo Basic, Visual Basic, FutureBASIC, REALbasic, FreeBASIC . ISBN 1-155-32445-5.

Verweise

Allgemeine Referenzen

Externe Links

Artikel
Bibliotheken und Open-Source-Code-Archive