PureBasic

PureBasic
PureBasic VD.png
Paradigm Strukturerad , imperativ , processuell
Familj GRUNDLÄGGANDE
Designad av Fantaisie programvara
Utvecklare Fantaisie programvara
Dök först upp 1998 ( 1998 )
Stabil frisättning
6.00 LTS / 22 juni 2022 ; för 7 månader sedan ( 2022-06-22 )
OS Windows , Linux , macOS , Raspberry Pi OS , AmigaOS
Licens Provprogram
Filnamnstillägg .pb, .pbi, .pbf, .pbp
Hemsida www .purebasic .com
PureBasic IDE 5.10

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

externa länkar

Artiklar
Bibliotek och arkiv med öppen källkod