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 ) |
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.
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.
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
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())
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 på 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 ; Gå 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 ; Gå ur programmet .Notera: Exemplen är beräknade för kompilatorversion 5.11. På äldre versioner kan det finnas fel på grund av annan versionssyntax!
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 |
BASIC | Dialekter av programmeringsspråket|
---|---|
Klassisk |
|
övergångsperiod |
|
processuella |
|
Objekt |
|
Mobil |
|
Trösta |
|
ID | |
---|---|
Universell | |
C / C++ | |
GRUNDLÄGGANDE | |
Java |
|
Pascal | |
PHP |
|
Pytonorm |
|
ActionScript | |
rubin | |
jämförelse |