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 ) |
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.
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.
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
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())
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 să 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!
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 |
BASIC | Dialectele limbajului de programare|
---|---|
Clasic |
|
tranzitorie |
|
procedural |
|
Obiect |
|
Mobil |
|
Consolă |
|
IDE | |
---|---|
universal | |
C / C++ | |
DE BAZĂ | |
Java |
|
Pascal | |
PHP |
|
Piton | |
ActionScript | |
rubin | |
comparaţie |