PureBasic - PureBasic
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
|
Betriebssystem |
plattformübergreifend : Microsoft Windows , Linux , macOS (aktiv) AmigaOS (eingestellt, Open Source ) |
Lizenz | kommerziell |
Dateinamenerweiterungen | .pb, .pbi, .pbf, .pbp, .pbv |
Webseite | www |
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_name
Map 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
- Hale Ligh, Michael (2010). Kochbuch für Malware-Analysten Tools zur Abwehr bösartiger Angriffe . Indianapolis, IN: John Wiley & Sons Inc. p. 241. ISBN 978-0-470-61303-0.
- Galbreath, Nick (2002). Kryptographie für Internet- und Datenbankanwendungen: Entwicklung geheimer und öffentlicher Schlüsseltechniken mit Java . Indianapolis, Ind.: Wiley. S. 300 . ISBN 978-0-471-21029-0.
- "Code knacken lernen" . Männlich täglich . 25. Juni 2004.
- Georg, Philipp. "Die Programmierung mit PureBasic" . PROgrammez (141).
- Svoboda, Lubos (2012). Překvapivý PureBasic (Überraschendes PureBasic: Ein tschechisches E-Book für potenzielle Benutzer von PureBasic) . P. 89.
Externe Links
- Artikel
- PureBasic - Die perfekte plattformübergreifende und native Entwicklungssprache (2015)
- Ein kleiner PureBasic-Test (2019)
- Bibliotheken und Open-Source-Code-Archive