Freebasic născut pentru a zbura

Înainte.

Primele lovituri

Pe lângă elementele obișnuite pentru limbajul BASIC, compilatorul implementat o serie de posibilități, în esență, extinderea sintaxa de bază. Este vorba despre un sprijin pentru indicii despre tipurile îmbunătățite încorporate de tipuri de utilizatori, funcții de suprasarcină pentru a sprijini instruirea în limbaj de asamblare (X86) și multe alte lucruri care face ca instrumente de dezvoltare de software complete FreeBASIC. Aplicațiile pot fi dezvoltate pentru sistemele de operare pe 32 de biți: MS Windows, Linux și DOS.







Combinatorul FreeBASIC vă permite să creați fișiere binare de diferite formate: OBJ, LIB, DLL și EXE (de exemplu, console și aplicații GUI pentru Win32). Deci, pentru a crea o bibliotecă statică sau dinamică, adăugați o singură cheie la linia de comandă a compilatorului: -lib sau -dll.

Toate componentele FreeBASIC (inclusiv dezvoltatorii terți) sunt gratuite (adică nu furnizează taxe de licență pentru utilizarea lor în scopuri comerciale sau necomerciale), excluzând numai biblioteca GoRC pentru Win32. Assembler, linker, archiver și alte utilitare incluse în pachetul de instalare sunt preluate din uneltele de programare GNU binutil.

Notă: Toate referințele necesare pentru descărcarea pachetului de instalare de pe site-ul oficial sunt colectate în secțiunea finală a articolului.

Detalii.

În continuare vor fi discutate numai pe oportunitățile specifice FreeBASIC, ca și porniți-l dintr-un limbaj de programare conceput pentru scopuri educaționale, într-un instrument de dezvoltare a aplicațiilor. Ar trebui să spun dintr-o dată că FreeBASIC conceptual în forma sa actuală, oferă un mijloc de programare structurat, adică nu are elemente de limbaj speciale care acceptă programarea orientată pe obiecte (deși abordarea orientată către obiect - un fel de viziune asupra lumii și fără restricții la nivel lingvistic, acesta nu este teribil, dar încă pentru OEP este mai bine să aleagă altceva). În același timp, FreeBASIC păstrat toate luminozitatea și transparența cod care a făcut-o atât de popular cu cei care comit primii pași în programarea clădire.

Noi tipuri de date încorporate

Lucrul cu matrice

FreeBASIC suportă o gamă extinsă de acțiuni cu matrice:
  • Un programator poate utiliza atât matrice statice cât și dinamice, menținând în același timp dimensiunea nelimitată a matricei (adică un număr nelimitat de indici).
  • Dimensiunea maximă a matricei este de 2 GB.
  • Indicele matricei se poate modifica la limite arbitrare.
  • Folosind instrucțiunea REDIM PRESERVE, puteți suprascrie dimensiunea matriceelor ​​dinamice păstrând în același timp conținutul lor.

Compatibilitate cu sintaxa BASIC

FreeBASIC nu este un dialect nou al BASIC. Este suficient să cunoașteți unul dintre variantele de bază de la Microsoft (de exemplu, QuickBASIC sau Visual Basic) pentru a programa pe FreeBASIC.

Compilatorul FreeBASIC este insensibil pentru litere mici. Numele variabilelor tipurilor scalare pot conține sufixe pentru indicarea tipului de variabile (așa cum a fost în clasicul BASIC), de asemenea, este acceptată numerotarea liniilor și nu este necesară funcția MAIN.

Majoritatea operatorilor și funcțiilor de lucru cu grafica și consola, implementate în QuickBASIC, sunt susținute de FreeBASIC, ceea ce facilitează transferul programelor dezvoltate cu QuickBASIC.

Sintaxa FreeBASIC a fost extinsă cu un număr mic de cuvinte cheie. Funcțiile noi sunt implementate sub formă de biblioteci, ceea ce reduce probabilitatea de potrivire a numelor atunci când se transferă programe vechi la FreeBASIC. De exemplu, utilizarea funcției MessageBox pe Windows ar arăta astfel:

Notă: Deoarece sintaxa FreeBASIC permite manipularea liberă a unui registru de caractere, puteți utiliza:

Built-in bibliotecă de funcții grafice (gfx-bibliotecă)

funcții grafice de bibliotecă FreeBASIC este pe deplin compatibil cu funcții grafice ale QuickBasic (CIRCLE, desenați, LINE, vopsea, etc.), dar oferă programator mult mai multe caracteristici și o mai flexibilă și rapidă (pentru a accelera instrucțiunile de utilizare MMX în cazul în care sunt susținute de către procesorul ).

Există funcții pentru lucrul cu spriteste, de exemplu, sunt posibile următoarele operații: tăierea, schimbarea transparenței, alfa și amestecarea personalizată). În plus, se realizează încărcarea și salvarea imaginilor în formatul .bmp (BLOAD, BSAVE).

FreeBASIC vă permite să lucrați aproape direct cu funcțiile OpenGL, pentru aceasta distribuția include fișierele antet și bibliotecile necesare. și câteva exemple de lucru cu OpenGL.

Biblioteca grafică FreeBASIC include, de asemenea, funcții de asistență pentru tastatură, mouse și joystick.

Când utilizați funcțiile bibliotecii grafice, mărimea fișierului executabil crește cu numai 30-40 Kb (și fără aceste funcții, dimensiunea unei aplicații simple de ferestre în Win32 este de aproximativ 10 KB). În același timp, nu sunt necesare alte biblioteci (dll) pentru a menține programul (suficient pentru acele biblioteci care fac parte din sistemul de operare).

grafică de bibliotecă funcții (precum și toate FreeBASIC) este un multi-platformă: sub Windows folosind DirectX sau GDI (dacă DirectX nu este instalat) sub DOS folosește acces direct la VGA / Modex / VESA, sub Linux - Xlib prime.







Suport pentru instrumentele de depanare

FreeBASIC vă permite să debugați programe. Această caracteristică este implementată utilizând GDB (GNU debugger) sau Insight (GUI-add-ins pentru GDB).

Cu opțiunea -exx activată pe linia de comandă a compilatorului, FreeBASIC verifică indexurile matricei pentru depășirea limitelor valorilor valide și controlează de asemenea indicatorii Null.

Procesarea secvențelor de evacuare

Secvențele de evacuare sunt tratate în același mod ca și în C. Diferența este numai că valoarea numerică după întârziere este interpretată ca zecimal, nu ca un octal. Puteți utiliza instrucțiunea OPTION ESCAPE pentru a activa această procesare a secvenței de evacuare:

Supraîncărcarea funcției

Instrucțiuni de asamblare încorporate

În textul programului, puteți adăuga instrucțiuni de asamblare (specificația Intel pentru familia x86). Acest lucru este mai convenabil decât plasarea în text a codurilor de operare hexazecimale (sau zecimale) ale programului. În instrucțiunile de asamblare, puteți utiliza numele variabilelor. Restricțiile sunt impuse numai pe instrucțiunile care sunt interzise în modul protejat.

Instrucțiunile de asamblare sunt plasate pe linii separate după cuvântul cheie ASM sau între cuvintele cheie ASM și END ASM.

Sprijin pentru cele mai cunoscute biblioteci deschise

FreeBASIC poate folosi majoritatea bibliotecilor cunoscute scrise în C și nu necesită funcții de împachetare intermediară. Fișierele de antet și exemple de lucru cu astfel de biblioteci sunt incluse în distribuția versiunii 0.15. Iată o listă de biblioteci acceptate (link-urile către site-urile de dezvoltatori ale acestor biblioteci pot fi găsite pe site-ul oficial FreeBASIC din secțiunea Legături):
  • GTK + 2.0: GUI Toolkit cross-platform (mai mult de 1MB de fișiere de antet, inclusiv suport pentru Glade, libart și glGtk)
  • libxml și libxslt: Bibliotecile XML și XSL, care au devenit standard de facto.
  • GSL - GNU Biblioteca științifică: numere complexe, vectori, matrice, transformare rapidă Fourier, algebră liniară, statistici, sortare, ecuații diferențiale și multe alte subrutine matematice.
  • GMP - Biblioteca aritmetică de precizie multiplă GNU: cunoscută ca cea mai rapidă bibliotecă pentru a lucra cu numere mari.
  • SDL - Layer Simplu DirectMedia: o bibliotecă pentru lucrul cu multimedia (sunet, intrare utilizator, grafică 3D și 2D, etc.).
  • OpenGL: o bibliotecă portabilă pentru crearea de jocuri și programe interactive utilizând grafică 2D și 3D.
  • Allegro: o bibliotecă pentru crearea de jocuri (grafică, sunet, intrare utilizator).
  • GD, DevIL, FreeImage, GRX și alte biblioteci grafice.
  • OpenAL, Fmod, BASS: Bibliotecile de sunet 2D și 3D care acceptă formatele mod, mp3, ogg, etc.
  • ODE și Newton: biblioteci pentru modelarea dinamicii substanțelor solide.
  • cgi-util și FastCGI: dezvoltarea de aplicații web.
  • DirectX și Windows API - cel mai complet set de fișiere antet (printre compilatoarele de bază binecunoscute), inclusiv funcții pentru lucrul cu Unicode.
  • DispHelper: lucrați cu interfețe COM IDispatch.
  • Și mult mai mult.

Argumentele funcțiilor implicite

Pentru argumentele întregi, reale și șir, este posibil să atribuiți valori implicite atunci când apelați funcții:

FreeBASIC susține aritmetica pointerului și permite un număr nelimitat de nivele de ierarhie de indicatori, adică un pointer la un pointer care este un pointer la un pointer. și așa mai departe.

Pentru a indica faptul că variabila este un pointer, în descrierea ei după tipul se adaugă cuvântul cheie ptr sau pointer. Pentru pointeri este acceptată operația de distribuție:

Preprocessor

FreeBASIC acceptă procesarea directivelor preprocesor care permit compilarea condiționată, conectarea fișierelor necesare, crearea de macrocomenzi și multe altele. În cele mai multe cazuri, directivele preprocesorului seamănă cu sintaxa utilizată în limba C:

Nume nelimitate de variabile și funcții

Compilatorul FreeBASIC este capabil să "digereze" codul sursă de până la 2 GB. Iar lungimea numelor variabilelor, constantelor și funcțiilor este limitată numai de dimensiunea memoriei disponibile la momentul compilării.

Inițializarea variabilelor

Compoziția kitului de distribuție

Suntem de acord că în viitor vom vorbi despre versiunea FreeBASIC 0.15 pentru platforma Win32. Mărimea pachetului de instalare al acestei versiuni este puțin mai mare de patru megabiți (4,27 MB). Pachetul include următoarele componente:
  • bin - dosarul în care se află asamblarea, link-ul și alte fișiere necesare pentru compilarea programelor.
  • docs - dosar cu fișiere text. Acestea sunt textele acordurilor de licență referitoare la componentele FreeBASIC, precum și o descriere a bibliotecii funcțiilor grafice și o listă de cuvinte cheie. Nu este necesar să căutați în acest dosar pachetul complet de documentație, acesta trebuie descărcat separat de pe site-ul oficial.
  • exemple - un dosar cu exemple de programe pe FreeBASIC. Iată exemple de lucru cu funcțiile FreeBASIC, cu multe biblioteci distribuite gratuit, precum și exemple de aplicații pentru Win32 (exemple / Windows).
  • inc - dosar cu fișiere antet.
  • lib - un dosar cu fișiere de bibliotecă.
  • În folderul rădăcină situat compilator fbc.exe FreeBASIC, care ar trebui să ruleze pentru a compila basorelief, fișiere text și changelog.txt readme.txt (cronologie a modificărilor recente), precum și link-uri către site-ul și forumul oficial tema FreeBASIC.

Pe site-ul oficial al proiectului în secțiunea de descărcare, puteți descărca distribuția dorită, prin selectarea opțiunii care este potrivit pentru sistemul de operare. Pachetul de instalare pentru Win32 este un fișier executabil (exe), care atunci când rulează asistentul de instalare apare de dialog. În timpul instalării, utilizatorul trebuie să specificați folderul în care va fi instalat pachetul (implicit este „C: \ Program Files \ FreeBASIC“), precum și să selectați tipul de instalare. Se recomandă în toate dialogurile care iau setările implicite (de exemplu, apasati butonul „Next“).

Crearea codului sursă și compilarea programelor

Compilatorul FreeBASIC este un program care rulează de la linia de comandă și are un număr de chei care controlează procesul de compilare. Puteți crea un fișier batch (fișier bat) în care să puneți linia de comandă pentru a rula compilatorul cu tastele necesare.

Luați în considerare procesul de compilare, prin crearea unui simplu GUI-aplicație Win32. Sursa fișier o astfel de aplicație, puteți lua exemplul dosarul aparținând FreeBASIC. Fileopen.bas Copiați folderul „C: \ Program Files \ FreeBASIC \ exemple Windows \ gui \“ (se presupune că FreeBASIC a fost instalat în directorul „C: \ Program Files“), în dosarul în cazul în care acestea vor fi localizate proiectele dvs. (de exemplu, "D: \ MyProgs"). Puteți compila exemple de cod sursă direct în dosarul în care au fost plasate în FreeBASIC procesul de instalare, dar dacă aveți de gând pentru a schimba codul sursă, este mai bine să lucreze cu copii ale acestor exemple într-o compilare separată papke.Dlya GUI aplicații de pe Win32 suficient în folderul cu dvs. proiecte pentru a crea un liliac-fișier (de exemplu, make.bat) după cum urmează:

Dacă apare un mesaj de eroare, afișajul va apărea în porțiuni cu așteptarea apăsării unei taste. Acest lucru vă va permite să citiți mesajul cu un screensaver (de exemplu, Jaws for Windows - trebuie doar să treceți la cursorul JAWS).

Rulați unul dintre aceste fișiere bat și, dacă nu există erori, fișierul fileopen.exe apare în dosar. Prima dvs. aplicație pe FreeBASIC este gata să fie lansată. Cel mai probabil, dimensiunea fișierului executabil rezultat (exe) vă va surprinde plăcut. Mai multe experimente cu exemple pe FreeBASIC puteți efectua pe cont propriu.

Link-uri conexe







Trimiteți-le prietenilor: