PureBasic

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 20 september 2014; kontroller kräver 43 redigeringar .
PureBasic
Språkklass imperativ , procedurell , strukturell
Utförandetyp sammanställt
Framträdde i 1998 (AmigaOS)
2000 (Windows)
Författare Fantaisie programvara
Filtillägg _ .pb .pbi .pbp .pbf
Släpp 6.00 (22 juni 2022 ) ( 2022-06-22 )
Typ system statisk
Blivit påverkad GRUNDLÄGGANDE
Licens Proprietär , kommersiell programvara.
Hemsida purebasic.com
OS AmigaOS , Linux , Windows , MacOS
 Mediafiler på Wikimedia Commons

PureBasic  är ett kommersiellt högnivåprogrammeringsspråk baserat på BASIC - syntaxen .

Designad för att skapa plattformsoberoende applikationer för AmigaOS , Linux , Microsoft Windows , Windows NT och Mac OS X. PureBasic-kompilatorn kan kompilera program till IA-32 , m68k och PowerPC -processorkod . Stöder kompilering av körbara filer och dynamiska bibliotek. Om du inte missbrukar operativsystemets API, kan koden kompileras utan att ändra den på alla plattformar som stöds.

Stöder olika API:er: Windows API , MFC (Windows), SDL (Linux) och OpenGL .

PureBasic multi-pass kompilatorn består av en kod-till-assembler-översättare, en assembler ( FASM ) och en länkare . PureBasic har också en ganska bra debugger . Eftersom det finns en assembler i kompilatorn är det möjligt att använda assembler-inlägg i koden. Stöder teckenuppsättningarna ASCII och Unicode .

Alla distributioner av språket inkluderar en IDE som är konfigurerbar. Den har en inbyggd visuell formdesigner för att bygga ett grafiskt gränssnitt.

PureBasic har inbyggda standardbibliotek för konsol- och GUI-programmering, bibliotek för att skapa 2D (DirectX, OpenGL) och 3D-spel ( OGRE ). Det finns mer än 1800 inbyggda kommandon totalt (många är plattformsoberoende).

Språket är betalt och 2 versioner tillhandahålls: PureBasic Demo och PureBasic Full. PureBasic Demo har några begränsningar: Du kan inte kompilera kod med mer än 800 rader kod. Det dynamiska biblioteket kan inte kompileras. Du kan inte använda operativsystemets API:er.

Bibliotek

PureBasic innehåller följande bibliotek:

Bibliotek för allmänna ändamål: (Array, CDAudio, Chiffer, Urklipp, Konsol, Databas, Datum, Debugger, Desktop, Fil, Filsystem, Font, Gadget, Hjälp, Bild, ImagePlugin, Länkad lista, Math, Minne, Meny, Övrigt, Film, Nätverk, OnError, Packer, Preference, Process, Printer, Requester, Sorter, StatusBar, String, SysTray, Thread, Toolbar, Window)

Bibliotek för att skapa 2D-grafik: (2D Ritning, Joystick, Tangentbord, Modul, Mus, Palett, Sprite & Screen, Sprite3D, Ljud, SoundPlugin)

Bibliotek för att arbeta med 3D-grafik: (Ogre3D): (Engine3D, Billboard, Camera, Entity, Light, Material, Mesh, Partikel, Terräng, Texture)

Med hjälp av biblioteksbiblioteket kan du interagera med dynamiska bibliotek.

Datatyper

Datatypen för en variabel anges första gången den används (och eventuellt därefter), och separeras från namnet med en punkt. det finns en uppsättning elementära typer - .f, .d (enkel- och dubbelprecisions flyttal), .b, .c, .w, .l, .q (heltal - från en-byte till 8-byte ettor) , .s - strängar.

Sorts Ändelse Minnesanvändning Numeriskt område
bytes .b 1 byte (8 bitar) -128 till +127
Ascii .a 1 byte (8 bitar) från 0 till +255
karaktär .c 1 byte (8 bitar) (ascii) från 0 till +255
Ord .w 2 byte (16 bitar) -32768 till +32767
Unicode .u 2 byte (16 bitar) från 0 till +65535
karaktär .c 2 byte (16 bitar) (unicode) från 0 till +65535
Lång .l 4 byte (32 bitar) från -2147483648 till +2147483647
Heltal .i 4 byte (32 bitar) x86 från -2147483648 till +2147483647
flyta .f 4 byte (32 bitar) Beroende på förhållandet mellan heltals- och bråkdelar av talet.
Heltal .i 8 byte (64 bitar) x64 från −9223372036854775808 till +9223372036854775807
Quad .q 8 byte (64 bitar) från −9223372036854775808 till +9223372036854775807
Dubbel .d 8 byte (64 bitar) Beroende på förhållandet mellan heltals- och bråkdelar av talet.
Sträng .s Stränglängd + 1 byte Det finns ingen gräns.
fast sträng .s{length} Linjens längd Det finns ingen gräns.


Förutom elementära typer kan användaren definiera sin egen typ med hjälp av konstruktionen

Strukturtypnamn fältnamn . _ typ ; Enstaka fält . Det är möjligt att kapsla strukturer . fältnamn [ antal ] . typ ; Statiska arrayer . ; ... ; Den valfria strukturen StructureUnion .. EndStructureUnion låter dig kombinera flera fält i ett minnesområde , vilket ibland krävs för typkonvertering . StructureUnion typnamn . typ ; ... EndStructureUnion EndStructure

Variabler kan vara enstaka (i själva verket standardvariabler), dynamisk array (deklareras med hjälp av Dim-nyckelordet variabel_namn.typ_namn(storlek1, storlek2, ...), länkad lista (sökordslista variabelnamn.typ_namn()), associativ array (i nyhet) versions language)(Sökordskarta variabelnamn.typnamn())

Programexempel

Klassiskt program "Hej världen!":

Använda kommandoradsgränssnittet :

If OpenConsole ( "Mitt första program!" ) ; Om konsolen öppnas exekverar vi koden . _ Skriv ut ( "Hej världen!" ) ; Visar text skärmen . Upprepa : Tills Inkey () = Chr ( 27 ) ; Konstruktionen väntar på att knappen Escape CloseConsole () ska tryckas ned ; Stäng konsolen . Sluta Om ; Slutvillkor . _ Slut ; ur programmet .

Använder GUI :

MessageRequester ( "Mitt första program!" , "Hej världen!" ) ; Åberopa dialog .

Använda Windows API :

MessageBox_ ( 0 , "Hej världen!" , "Mitt första program!" , # MB_OK ) ; Åberopa dialog .

Enkel miniräknare:

Använda kommandoradsgränssnittet :

Definiera var_a . jag ; Vi deklarerar den första talvariabeln . Definiera var_b . jag ; Vi deklarerar en variabel av det andra talet . Definiera var_action . a ; Vi deklarerar en handlingsvariabel . Definiera var_out . jag ; Vi deklarerar en utdatavariabel . If OpenConsole ( "Beräkning" ) ; Om konsolen öppnas exekverar vi koden . _ starta: ; Startetiketten . _ Skriv ut ( "A: " ) var_a = Val ( Input ()) ; Fråga efter det första numret . Skriv ut ( "B: " ) var_b = Val ( Indata ()) ; Fråga efter det andra numret . Skriv ut ( "Action: " ) var_action = Asc ( Input ()) ; Be om en åtgärd . Välj Chr ( var_action ) ; Kontrollerar åtgärden . Case "+" var_out = var_a + var_b ; Vi lägger ihop siffrorna . Case "-" var_out = var_a - var_b ; Låt oss subtrahera siffrorna . Case "*" var_out = var_a * var_b ; Vi multiplicerar siffror . Case "/" var_out = var_a / var_b ; Vi delar siffror . Case "^" var_out = Pow ( var_a , var_b ) ; Låt oss ta det till en makt . EndSelect ; Kontroll av åtgärdens slut . PrintN ( "Resultat: " + Str ( var_out )) ; Vi matar ut resultatet . Skriv ut ( "Avsluta? (J/N): " ) ; Vi visar ett utgångsmeddelande . If Input () = "N" ; Kontrollera om användaren vill stanna . _ Gå till start ; Låt oss hoppa till startetiketten . Sluta Om ; Slutvillkor . _ CloseConsole () ; Stäng konsolen . Sluta Om ; Slutvillkor . _ Slut ; ur programmet .

Notera: Exemplen är beräknade för kompilatorversion 5.11. På äldre versioner kan det finnas fel på grund av annan versionssyntax!

Huvudstadier i utvecklingen

Utgivningsdatum Version Beskrivning
1 september 1999 1.00 Första versionen för AmigaOS .
10 oktober 1999 1.10 Fullständigt PowerPC -stöd för AmigaOS (WarpOS).
30 november 1999 1.20 Integrerad redigerare och stöd för AmigaOS- bibliotek .
9 september 2000 1,60 Lyckades implementera förlustfritt programmeringsparadigm för AmigaOS i betaversioner för Microsoft Windows och Linux .
17 december 2000 2.00 Final Den första icke-betaversionen för Microsoft Windows tillgänglig för allmänheten.
4 april 2002 3.00 Nya bibliotek har lagts till
25 oktober 2006 4.00 Beta Stabil utgåva för AmigaOS och Linux .
8 maj 2006 4.00 Final Stabil version för Microsoft Windows .
9 november 2007 4.10 Final Första gången samtidigt release för alla plattformar som stöds: Microsoft Windows , Linux och Mac OS X.
5 november 2012 5.00 Version för Windows (x86 och x64), Linux (x86 och x64) och Mac OS X (x86, x64 och PowerPC).
23 juli 2014 5.30 Namnutrymme implementerat .
16 oktober 2015 5.40LTS Uppdateringar till version 5.40 LTS.
25 juli 2016 5,50 Lade till nya funktioner för att arbeta med 3D, samt UNICODE-stöd i kompilatorn.
2 mars 2017 5,60 Lagt till Gif-avkodare och mer.
12 september 2017 5,61 Fixade några kända fel i kompilatorn och biblioteken.
2 januari 2019 5,70 LTS Introduktion av QT-delsystem för Linux, förbättrat plattformsoberoende stöd, implementering av DPI-stöd för Windows-applikationer, tillagda funktioner HTTPRequest(), HTTPRequestMemory(), UseMySQLDabase(), lagt till nya funktioner för att arbeta med 3D
16 augusti 2019 5.71LTS Fixade buggar i kompilatorn och de flesta bibliotek
30 mars 2020 5.72LTS Fixade buggar i kompilatorn och de flesta grafikbibliotek
23 november 2020 5.73LTS Uppdatera IDE och de flesta inbyggda nätverksbibliotek
22 juni 2022 6.00LTS Lagt till instruktionsstöd för Apple M1 , Raspberry 32 och 64 bitars processorer, uppdaterad C-kompilator , förbättrat stöd för OS Windows 11 (inklusive stöd för hög automatisk DPI ), OS X 11 och 12 (x86 PB-version borttagen, viktiga bibliotek uppdaterade) inklusive filmbibliotek ), widgets har nu fullt stöd för GTK3 på OS Linux

Litteratur

  • Willoughby, G. Purebasic: En nybörjarguide till datorprogrammering. - Aardvark Global Publishing, 2006. - ISBN 9781427604286 .

Länkar