PureBasic
Paradigm | Strukturerad , imperativ , processuell |
---|---|
Familj | GRUNDLÄGGANDE |
Designad av | Fantaisie programvara |
Utvecklare | Fantaisie programvara |
Dök först upp | 1998 |
Stabil frisättning | 6.00 LTS / 22 juni 2022
|
OS | Windows , Linux , macOS , Raspberry Pi OS , AmigaOS |
Licens | Provprogram |
Filnamnstillägg | .pb, .pbi, .pbf, .pbp |
Hemsida |
PureBasic är ett kommersiellt distribuerat procedurprogrammeringsspråk och integrerad utvecklingsmiljö baserat på BASIC och utvecklat av Fantaisie Software för Windows , Linux och macOS . En Amiga- version är tillgänglig, även om den har utgått och vissa delar av den släpps som öppen källkod . Den första offentliga utgåvan av PureBasic för Windows var den 17 december 2000. Den har uppdaterats kontinuerligt sedan dess.
PureBasic har en "livstidslicensmodell". Som nämnts på webbplatsen har den första PureBasic-användaren (som registrerade sig 1998) fortfarande fri tillgång till nya uppdateringar och detta kommer inte att förändras.
PureBasic kompilerar direkt till IA-32 , x86-64 , PowerPC eller 680x0 instruktionsuppsättningar och genererar små fristående körbara filer och DLL :er som inte behöver några runtime-bibliotek utöver standardsystembiblioteken. Program som utvecklats utan att använda plattformsspecifika applikationsprogrammeringsgränssnitt (API) kan enkelt byggas från samma källfil med liten eller ingen modifiering.
PureBasic stöder inline-assemblering , vilket gör att utvecklaren kan inkludera FASM- assemblerkommandon i PureBasic-källkoden, samtidigt som de använder variablerna som deklareras i PureBasic-källkoden, vilket gör det möjligt för erfarna programmerare att förbättra hastigheten på hastighetskritiska avsnitt av koden. PureBasic stöder och har integrerat OGRE 3D-miljön. Andra 3D-miljöer som Irrlicht Engine stöds inofficiellt.
Programmeringsspråk
Egenskaper
PureBasic är en inbyggd plattformsoberoende 32-bitars och 64-bitars BASIC-kompilator. System som stöds för närvarande är Windows, Linux, macOS. AmigaOS-versionen är äldre och öppen källkod. Kompilatorn producerar inbyggda körbara filer och syntaxen för PureBasic är enkel och okomplicerad, jämförbar med vanlig C utan parenteser och med inbyggd unicode-stränghantering och ett stort bibliotek med inbyggda stödfunktioner. Det kan kompilera konsolapplikationer, GUI-applikationer och DLL-filer.
Hej världen exempel
Följande enstaka rad med PureBasic-kod kommer att skapa en fristående x86-körbar (4,5 KiB (4 608 byte) på Windows-versionen) som visar en meddelanderuta med texten " Hello World " .
MessageRequester ( "Message Box" , "Hello World" )
Och följande variant av samma kod, som istället använder ett inline Windows API- anrop utan behov av deklarationer eller andra externa referenser, kommer att skapa en ännu mindre 2,0 KiB (2 048 byte) fristående x86-körbar för Windows.
0 0 MessageBox_ ( , "Hello World" , "Message Box" , )
Följande är en konsolversion av Hello World-exemplet.
OpenConsole () ; Öppna ett konsolfönster. Skriv ut ( "Hej världen!" )
Procedurprogrammering
PureBasic är ett "andra generationens BASIC"-språk, med strukturerade villkor och loopar, och procedurorienterad programmering som stöds. Användaren behöver inte använda procedurer, så en programmerare kan välja en kodningsstil som inkluderar Goto, Gosub Label och Return .
Nedan är ett exempel på procedur för att sortera en array, även om SortArray nu är en inbyggd funktion i PureBasic.
0
Procedur bubbleSortera ( Array a ( 1 ))
Protected i , itemCount , hasChanged itemCount = ArraySize ( a ()) Repeat hasChanged = # False itemCount - 1 For i = Till itemCount Om a ( i ) > a ( i + 1 ) Byt en ( i ), a ( i + 1 ) hasChanged = # True EndIf Next Until hasChanged = # False EndProcedure
Nedan är ett exempelprogram som visar en stor textredigerare med två menyalternativ.
0
0 0
0 0 0 0 0
0 0
0
0 0 0 0 0
;Skapa fönster: OpenWindow ( , # PB_Ignore , # PB_Ignore , 800 , 600 , "Simple Text Editor" , # PB_Window_SystemMenu | # PB_Window_MinimizeGadget | # PB_Window_Maximize_Wadget menu PBGdget menu PBGadget | Meny ( , WindowID ( ) ) Menyobjekt ( 1 , "&OK" ) Menyobjekt ( 2 , "&Avbryt" ) ;Lägg till redigerare: EditorGadget ( , , , , ) SetGadgetFont ( , LoadFont ( , "Courier New" , 10 )) ;Behandla fönstermeddelanden tills det stängs: Upprepa Välj WaitWindowEvent () Fall # PB_Event_Menu Välj EventMenu () Fall 1 : MessageRequester ( "OK klickade direkt eller med '&' mnemonic." , GetGadgetText ( ) ) Fall 2 : Break EndSelect Case # PB_Event_SizeWindow : ResizeGadget ( , , , , Window , Window ), # PBidth . WindowHeight ( , # PB_Window_InnerCoordinate )) Fall # PB_Event_CloseWindow : Break EndSelect Forever
Observera att PureBasic inte undviker dubbla citattecken i strängar så dessa måste sammanfogas med Chr(34) .
Objektorienterad programmering
Fred, utvecklaren av PureBasic, har sagt att PureBasic aldrig kommer att vara objektorienterad . Däremot har många användare skapat objektorienterade stödsystem.
Datatyper
Variabel datatyp som anges när du först använder den (och valfritt - i framtiden), och är skild från namnet på punkten. Det finns en uppsättning grundläggande typer - .f, .d (flytande och dubbla tal), .b, .c, .w, .l, .q (heltal - från enkelbyte och 8-byte), .s - strängar.
Typ | Ändelse | Minnesanvändning | Numeriskt område |
---|---|---|---|
Byte | b | 1 byte (8 bitar) | −128 ... +127 |
Ascii | a | 1 byte (8 bitar) | 0 ... +255 |
Karaktär | c | 1 byte (8 bitar) (ascii) | 0 ... +255 |
Ord | w | 2 byte (16 bitar) | −32768 ... +32767 |
Unicode | u | 2 byte (16 bitar) | 0 ... +65535 |
Karaktär | c | 2 byte (16 bitar) (unicode) | 0 ... +65535 |
Lång | l | 4 byte (32 bitar) | −2147483648 ... +2147483647 |
Heltal | i | 4 byte (32 bitar) x86 | −2147483648 ... +2147483647 |
Flyta | f | 4 byte (32 bitar) | Beroende på förhållandet mellan decimaltalet. |
Heltal | i | 8 byte (64 bitar) x64 | −9223372036854775808 ... +9223372036854775807 |
Quad | q | 8 byte (64 bitar) | −9223372036854775808 ... +9223372036854775807 |
Dubbel | d | 8 byte (64 bitar) | Beroende på förhållandet mellan decimaltalet. |
Sträng | s | (Stränglängd + 1) * SizeOf (tecken) | Ingen gräns. |
Fast sträng | s{längd } | (Stränglängd) * SizeOf(Character) | Ingen gräns. |
- Obs: Len(String) som används för att räkna längden på en sträng kommer inte att överstiga det första nolltecknet ( Chr(0) ) .
Utöver bastyper kan användaren definiera typen av konstruktion via
Strukturtypnamn fältnamn.typ ; Enstaka fält. Kanske strukturernas fäste. fältnamn[antal].typ ; Statiska arrayer. ; ... ; Valfri konstruktion StructureUnion .. EndStructureUnion låter dig; att kombinera flera fält till ett minnesområde; som ibland krävs för konverteringstyperna. StructureUnion typnamn.typ ; ... EndStructureUnion EndStructure
Variabler kan vara enstaka (faktiskt standardvariabler), dynamisk array (deklareras med Dim var_name . type_name ( size1 , size2 , ... )
, en länkad lista ( List () var_name . type_name
), en associativ array (i nya versioner av språk) ( Karta var_namn.typ_namn()
)
Formdesigner RAD
PureBasic har en egen formdesigner för att hjälpa till med att skapa formulär för applikationer, men andra tredjepartslösningar finns också tillgängliga. Den ursprungliga icke-integrerade Visual Designer ersattes med en ny integrerad Form Designer den 14 februari 2013.
Användargemenskap
PureBasic tillhandahåller ett onlineforum där användare kan ställa frågor och dela kunskap. Den 6 maj 2013 hade det engelska forumet 4 769 medlemmar och innehöll 44 043 trådar omfattande 372 200 inlägg sedan 17 maj 2002.
Många koddelningssajter visar att PureBasic används för att skapa verktyg och spel på ett snabbt och enkelt sätt och dela stora mängder öppen källkod.
Vidare läsning
- Willoughby, Gary (2006). Purebasic: En nybörjarguide till datorprogrammering . ISBN 1-4276-0428-2 .
- Logsdon, John. Programmera 2D-rullningsspel . Denna bok är nu fritt nedladdningsbar
- Basic kompilatorer: QuickBASIC, PureBasic, PowerBASIC, Blitz Basic, XBasic, Turbo Basic, Visual Basic, FutureBASIC, REALbasic, FreeBASIC . ISBN 1-155-32445-5 .
Allmänna referenser
- Hale Ligh, Michael (2010). Malware Analysts Cookbook Verktyg för att förhindra skadliga attacker . Indianapolis, IN: John Wiley & Sons Inc. sid. 241. ISBN 978-0-470-61303-0 .
- Galbreath, Nick (2002). Kryptografi för Internet- och databasapplikationer: utveckling av hemliga och publika nyckeltekniker med Java . Indianapolis, Ind.: Wiley. s. 300 . ISBN 978-0-471-21029-0 .
- "Lära sig knäcka kod" . Manly Daily . 25 juni 2004.
- Georges, Philippe. "La programmation avec PureBasic" . PROgrammez (141).
- Svoboda, Luboš (2012). Překvapivý PureBasic (Överraskande PureBasic: En tjeckisk e-bok för potentiella användare av PureBasic) . sid. 89.
externa länkar
- Artiklar
- PureBasic - The Perfect Cross-Platform & Native Development Language (2015)
- En liten PureBasic recension (2019)
- Bibliotek och arkiv med öppen källkod
- 1998 programvara
- BASIC kompilatorer
- BASIC programmeringsspråksfamilj
- Programmeringsspråk på hög nivå
- Integrerade utvecklingsmiljöer
- Linux integrerade utvecklingsmiljöer
- MacOS programmeringsverktyg
- Procedurmässiga programmeringsspråk
- Programmeringsspråk
- Programmeringsspråk skapade 1998
- Användargränssnittsbyggare
- Windows integrerade utvecklingsmiljöer