PureBasic

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 20 septembrie 2014; verificările necesită 43 de modificări .
PureBasic
Clasa de limba imperativ , procedural , structural
Tipul de execuție compilate
Aparut in 1998 (AmigaOS)
2000 (Windows)
Autor Fantaisie Software
Extensie de fișier .pb .pbi .pbp .pbf
Eliberare 6.00 (22 iunie 2022 ) ( 22.06.2022 )
Tip sistem static
A fost influențat DE BAZĂ
Licență Software proprietar , comercial.
Site-ul web purebasic.com
OS AmigaOS , Linux , Windows , MacOS
 Fișiere media la Wikimedia Commons

PureBasic  este un limbaj comercial de programare de nivel înalt bazat pe sintaxa BASIC .

Conceput pentru a crea aplicații multi-platformă pentru AmigaOS , Linux , Microsoft Windows , Windows NT și Mac OS X. Compilatorul PureBasic este capabil să compileze programe în codul de procesor IA-32 , m68k și PowerPC . Suporta compilarea de fișiere executabile și biblioteci dinamice. Dacă nu abuzați de API-ul sistemului de operare, atunci codul poate fi compilat fără a-l schimba pe toate platformele acceptate.

Acceptă diferite API-uri: Windows API , MFC (Windows), SDL (Linux) și OpenGL .

Compilatorul PureBasic multi-pass constă dintr-un translator cod-la-asamblator, un asamblator ( FASM ) și un linker . PureBasic are, de asemenea, un depanator destul de bun . Deoarece există un asamblator în compilator, este posibil să se utilizeze inserții de asamblare în cod. Acceptă seturile de caractere ASCII și Unicode .

Toate distribuțiile limbajului includ un IDE care este configurabil. Are un designer de forme vizuale încorporat pentru construirea unei interfețe grafice.

PureBasic are biblioteci standard încorporate pentru programarea consolei și GUI, biblioteci pentru crearea de jocuri 2D (DirectX, OpenGL) și 3D ( OGRE ). Există peste 1800 de comenzi încorporate în total (multe sunt multi-platformă).

Limba este plătită și sunt furnizate 2 versiuni: PureBasic Demo și PureBasic Full. PureBasic Demo are unele limitări: nu puteți compila cod cu mai mult de 800 de linii de cod. Biblioteca dinamică nu poate fi compilată. Nu puteți utiliza API-urile sistemului de operare.

Biblioteci

PureBasic conține următoarele biblioteci:

Biblioteci de uz general: (Matrice, CDAudio, Cipher, Clipboard, Consolă, Bază de date, Data, Depanator, Desktop, Fișier, FileSystem, Font, Gadget, Ajutor, Imagine, ImagePlugin, Linked List, Matematică, Memorie, Meniu, Diverse, Film, Network, OnError, Packer, Preference, Process, Printer, Requester, Sort, StatusBar, String, SysTray, Thread, Toolbar, Window)

Biblioteci pentru crearea de grafică 2D: (Desen 2D, Joystick, Tastatură, Modul, Mouse, Paletă, Sprite & Ecran, Sprite3D, Sound, SoundPlugin)

Biblioteci pentru lucrul cu grafica 3D: (Ogre3D): (Engine3D, Billboard, Camera, Entity, Light, Material, Mesh, Particle, Terrain, Texture)

Folosind biblioteca Bibliotecă, puteți interacționa cu bibliotecile dinamice.

Tipuri de date

Tipul de date al unei variabile este specificat prima dată când este utilizată (și opțional ulterior) și este separat de nume printr-un punct. există un set de tipuri elementare - .f, .d (numere cu virgulă mobilă cu precizie simplă și dublă), .b, .c, .w, .l, .q (numere întregi - de la un octet la cele de 8 octeți) , .s - șiruri.

Tip de Sufix Folosirea memoriei Interval numeric
octeți .b 1 octet (8 biți) -128 până la +127
Ascii .A 1 octet (8 biți) de la 0 la +255
caracter .c 1 octet (8 biți) (ascii) de la 0 la +255
Cuvânt .w 2 octeți (16 biți) -32768 până la +32767
Unicode .u 2 octeți (16 biți) de la 0 la +65535
caracter .c 2 octeți (16 biți) (unicode) de la 0 la +65535
Lung .l 4 octeți (32 biți) de la −2147483648 la +2147483647
Întreg .i 4 octeți (32 biți) x86 de la −2147483648 la +2147483647
pluti .f 4 octeți (32 biți) În funcție de raportul dintre părțile întregi și fracționale ale numărului.
Întreg .i 8 octeți (64 biți) x64 de la −9223372036854775808 la +9223372036854775807
Quad .q 8 octeți (64 biți) de la −9223372036854775808 la +9223372036854775807
Dubla .d 8 octeți (64 biți) În funcție de raportul dintre părțile întregi și fracționale ale numărului.
Şir .s Lungimea șirului + 1 octet Nu există limită.
sfoară fixă .s{lungime} Lungimea liniei Nu există limită.


Pe lângă tipurile elementare, utilizatorul își poate defini propriul tip folosind constructul

Structura tip_nume câmp_nume . tip ; Câmp unic . Este posibil să cuibăriți structuri . fieldname [ număr ] . tip ; Matrice statice . ; ... ; Structura opțională StructureUnion .. EndStructureUnion vă permite să combinați mai multe câmpuri într - o zonă de memorie , care uneori este necesară pentru conversia tipului . StructureUnion type_name . tip ; ... EndStructureUnion EndStructure

Variabilele pot fi unice (de fapt, variabile standard), matrice dinamică (declarată folosind cuvântul cheie Dim nume_variabilă.nume_tip(dimensiune1, mărime2, ...), listă legată (Lista cuvinte cheie nume_variabilă.nume_tip()), matrice asociativă (în nou Limba versiunilor)(Harta cuvintelor cheie nume_variabilă.nume_tip())

Exemple de programe

Program clasic „Bună, lume!”:

Folosind interfața liniei de comandă :

Dacă OpenConsole ( "Primul meu program!" ) ; Dacă se deschide consola , atunci executăm codul . Imprimare ( "Bună ziua, lume!" ) ; Afișarea textului pe ecran . Repetați : Până la Inkey () = Chr ( 27 ) ; Construcția așteaptă apăsarea butonului Escape CloseConsole () ; Închideți consola . End If ; Condiție finală . Sfârșit ; Ieșiți din program .

Folosind GUI :

MessageRequester ( "Primul meu program!" , "Bună, lume!" ) ; Invocă dialogul .

Folosind API-ul Windows :

MessageBox_ ( 0 , „Bună, lume!” , „Primul meu program!” , # MB_OK ) ; Invocă dialogul .

Calculator simplu:

Folosind interfața liniei de comandă :

Definiți var_a . eu ; Declarăm prima variabilă număr . Definiți var_b . eu ; Declarăm o variabilă a celui de-al doilea număr . Definiți var_action . a ; Declaram o variabila de actiune . Definiți var_out . eu ; Declaram o variabila a numarului de iesire . Dacă OpenConsole ( "Calcul" ) ; Dacă se deschide consola , atunci executăm codul . începe: ; Eticheta de start . Print ( "A: " ) var_a = Val ( Intrare ()) ; Cere primul număr . Print ( "B: " ) var_b = Val ( Intrare ()) ; Cere al doilea număr . Print ( "Acțiune: " ) var_action = Asc ( Intrare ()) ; Cererea unei acțiuni . Selectați Chr ( var_action ) ; Verificarea actiunii . Cazul „+” var_out = var_a + var_b ; Adunăm numerele . Cazul „-” var_out = var_a - var_b ; Să scădem numerele . Cazul „*” var_out = var_a * var_b ; Înmulțim numerele . Cazul „/” var_out = var_a / var_b ; Împărtășim numerele . Case "^" var_out = Pow ( var_a , var_b ) ; Să o ducem la o putere . EndSelect ; Verificare la sfârșitul acțiunii . PrintN ( "Rezultat: " + Str ( var_out )) ; Scoatem rezultatul . Imprimare ( "Ieșire? (D/N): " ) ; Afișăm un mesaj de ieșire . Dacă Input () = "N" ; Verificați dacă utilizatorul dorește rămână . Treci pentru a începe ; Să sărim la eticheta de început . End If ; Condiție finală . CloseConsole () ; Închideți consola . End If ; Condiție finală . Sfârșit ; Ieșiți din program .

Notă: Exemplele sunt calculate pentru versiunea compilatorului 5.11. Pe versiunile mai vechi, pot apărea erori din cauza sintaxei diferitelor versiuni!

Etape principale de dezvoltare

Data de lansare Versiune Descriere
1 septembrie 1999 1.00 Prima versiune pentru AmigaOS .
10 octombrie 1999 1.10 Suport complet PowerPC pentru AmigaOS (WarpOS).
30 noiembrie 1999 1.20 Editor integrat și suport pentru bibliotecile AmigaOS .
9 septembrie 2000 1,60 A reușit să implementeze paradigma de programare fără pierderi pentru AmigaOS în versiunile beta pentru Microsoft Windows și Linux .
17 decembrie 2000 2.00 Finală Prima versiune non-beta pentru Microsoft Windows disponibilă publicului larg.
4 aprilie 2002 3.00 Au fost adăugate biblioteci noi
25 octombrie 2006 4.00 Beta Lansare stabilă pentru AmigaOS și Linux .
8 mai 2006 4.00 Finală Versiune stabilă pentru Microsoft Windows .
9 noiembrie 2007 4.10 Final Prima lansare simultană pentru toate platformele acceptate: Microsoft Windows , Linux și Mac OS X.
5 noiembrie 2012 5.00 Versiune pentru Windows (x86 și x64), Linux (x86 și x64) și Mac OS X (x86, x64 și PowerPC).
23 iulie 2014 5.30 Spațiul de nume implementat .
16 octombrie 2015 5,40 LTS Actualizări la versiunea 5.40 LTS.
25 iulie 2016 5.50 S-au adăugat noi funcții pentru lucrul cu 3D, precum și suport UNICODE în compilator.
2 martie 2017 5,60 S-a adăugat decodor Gif și multe altele.
12 septembrie 2017 5,61 S-au remediat unele erori cunoscute ale compilatorului și bibliotecilor.
2 ianuarie 2019 5,70 LTS Introducerea subsistemului QT pentru Linux, suport îmbunătățit pe mai multe platforme, implementare a suportului DPI pentru aplicațiile Windows, funcții adăugate HTTPRequest(), HTTPRequestMemory(), UseMySQLDatabase(), adăugate funcții noi pentru lucrul cu 3D
16 august 2019 5,71 LTS S-au remediat erori în compilator și în majoritatea bibliotecilor
30 martie 2020 5,72 LTS S-au remediat erori în compilator și în majoritatea bibliotecilor de grafică
23 noiembrie 2020 5,73 LTS Actualizați IDE și majoritatea bibliotecilor de rețea încorporate
22 iunie 2022 6.00LTS S-a adăugat suport pentru instrucțiuni pentru procesoare Apple M1 , Raspberry pe 32 și 64 de biți, compilator C actualizat , suport îmbunătățit pentru sistemul de operare Windows 11 (inclusiv suport DPI automat ridicat ), OS X 11 și 12 (versiunea x86 PB eliminată, biblioteci importante actualizate) inclusiv biblioteca de filme ), widget-urile au acum suport complet pentru GTK3 pe OS Linux

Literatură

  • Willoughby, G. Purebasic: Un ghid pentru începători pentru programarea computerelor. - Aardvark Global Publishing, 2006. - ISBN 9781427604286 .

Link -uri