|
Limbaje de programare: componente si sintaxa
Un limbaj de programare este un limbaj artificial care exprima operatii specifice (logice, aritmetice, computationale - relative la computere) ce pot fi realizate de un computer.
Cu ajutorul limbajelor de programare se creeaza programe care pot fi executate de un computer; ele permit omului sa se adreseze computerului in vederea rezolvarii unor probleme.
Limbajele de programare contin termeni (combinatii de simboluri, alese cat mai apropiate de termenii limbajului natural) cu o anumita semantica (intelesuri, semnificatii), termeni care se pot compune in anumite forme, prin respectarea unor reguli apartinand sintaxei.
Deosebim deci, in cadrul oricarui limbaj de programare, cele doua componente:
semantica: sensurile combinatiilor de simboluri (termeni) si
sintaxa: regulile de compozitie ale acestor termeni.
Multe limbaje sunt textuale, folosind secvente de texte care cuprind cuvinte, numere, semne de punctuatie.., toate asemanatoare celor din limbajul natural; altele sunt mai mult grafice, folosind legaturile vizuale dintre simboluri pentru a crea un program.
Odata ce datele sunt specificate, computerul trebuie sa primeasca instructiunile - modul cum sa procedeze cu aceste date.
Semantica (semnificatia continutului de termeni ai limbajului) defineste strategia prin care anumite expresii capata anumite valori si care sunt etapele de transformare (prelucrare) a acestora.
Termenii limbajului de programare vor fi alesi depinzand de domeniul problemelor pe care le imbratiseaza limbajul respectiv, existand o mare varietate a limbajelor.
Nu exista nici o clasificare a limbajelor de programare, in afara datarii lor calendaristice (anul de aparitie) care constituie generatiile de limbaje de programare si eventual dupa gradul de raspandire.
Crearea limbajelor a fost, de cele mai multe ori, impusa de schimbarea modului de abordare a lucrului cu computerul dar si de evolutia generala a societatii umane (din toate punctele de vedere).
Intre evolutia generatiilor de calculatoare si a limbajelor de programare exista o legatura absolut explicabila.
Din cele cinci generatii ale limbajelor de programare, le prezentam succint pe primele patru grupe, urmand apoi prezentarea evolutiei generatiilor de limbaje, asa cum au fost tratate de specialisti in acest domeniu.
- Limbaj masina
Aportul omului este in proportie de peste 90%.
Instructiunile si datele sunt reprezentate prin digiti binari (a serie de 1 si 0).
Programele puteau fi executate numai pe masina pentru care au fost scrise.
- Limbaj de asamblare
El are la baza un set de mnemonice care sunt reprezentari simbolice ale reprezentarile masina.
Asamblorul translateaza aceste mnemonice in binar astfel incat sa poata fi intelese si realizate de computer.
Ambele tipuri de limbaje sunt mai mult tehnice si flexibile dar foarte putin prietenoase.
- Limbje procedurale
Sunt numite si limbaje de nivel inalt, sunt flexibile si destul de prietenoase cu utilizatorul.
Nu depind de masina si, deci au un grad mare de portabilitate.
Instructiunile lor sunt cuprinse in liste de pasi sau proceduri si ne arata ce trebuie sa facem si cum trebuie sa facem fiecare operatie.
Importanta acestor limbaje este recunoscuta prin aria lor de aplicabilitate: calcule stiintifice, economice .etc.
Astfel, o sumara trecere in revista a celor mai reprezentative este necesara:
FORTRAN (FORmula TRANslation) este inca cel mai raspandit limbaj de programare.
Aparut in 1956, a avut diferite versiuni de-a lungul timpului.
Implementarile pe diferite sisteme nu sunt identice si de aceea portabilitatea sa este relativ coborata.
Pentru computerele personale (PC), produsul cel mai des utilizat este cel al firmei Microsoft.
BASIC (Beginner`s All Purpose Symbolic Instruction Code) conceput in 1964 pentru nespecialisti a cunoscut o explozie spectaculoasa in perioada `75 ÷ 80 odata cu aparitia microinformaticii.
A cunoscut diferite versiuni, dar cele mai recente (Quick Basic al firmei Microsoft, Turbo Basic al firmei Borland) sunt utilizate cu succes pentru dezvoltarea diferitelor aplicatii.
Cobol (Common Business Oriented Language) este regele informaticii de gestiune.
Dezvoltat in 1958, a cunoscut diferite versiuni, cele mai recente fiind implementate pe microcalculatoare; de exemplu, Microsoft ofera un compilator sub sistemele de operare MS-DOS si OS/2.
PASCAL, aparut in 1970 este un concurent serios al BASIC-ului deoarece are implementate instrumentele de programare structurata.
De asemenea, el poseda facilitati de recursivitate a procedurilor si lucrul cu structuri de date proprii complexe, cum ar fi: liste, tablouri, structuri dinamice.
Actualmente, exista versiuni pentru prelucrarea orientata pe obiecte.
C, creat in 1970 pentru scrierea unor parti ale sistemului de operare UNIX, are cateva paradoxuri:
- este de nivel scazut, efectuand operatii rezervate in general limbajelor de
asamblare,
este limbaj evoluat deoarece trateaza toate structurile utilizate in programare,
este structurat si permite descompunerea oricarei probleme intr0o suita de sarcini elementare care genereaza module simple,
nu dispune, in general, de functii de calcul si de I/O, acestea fiind asigurate de o biblioteca vasta.
Versiunile actuale sunt normale sau profesionale (Turbo C, Borland) si sunt furnizate impreuna cu un mediu complet de programare.
RPG (Report Program Generator) a fost introdus de IBM in 1964 pentru a genera rapoarte economice si a tine la zi fisierele de date.
A cunoscut si el diferite versiuni ajungandu-se ca acesta sa extraga rapoarte dintr-un sistem de baze de date.
Modula-2 dezvoltat de Niklaus Wirth (1980) este mai bun decat limbajul Pascal pentru a rezolva probleme economice si poate fi utilizat ca instrument de dezvoltare a software-ului aplicativ.
Deoarece este un limbaj relativ nou, aria lui de raspandire este destul de restransa.
Din aceasta generatie mai fac parte o serie de limbaje (ADA, PL/I, ..), compilatoarele si interpretoarele.
Limbaje neprocedurale
Acestea cunosc o dezvoltare continua si viitoare.
Ele sunt de nivel foarte inalt, cu elemente imperative.
Programele sunt compuse din definitii descriptive primare ale unui set de relatii si/sau functii.
Tot aceasta generatie contine si instrumente/medii de dezvoltare software.
Ele sunt pachete software complexe oferind utilizatorului nu numai un serviciu directionat ci si facilitati suplimentare.
Pachetele nu mai pot fi clasificate strict si riguros, insa dam o clasificare de la simplu la complex. Astfel exista:
instrumente PC: dBASE IV, Framework, Supercalc, Symphony,..
limbaje orientate pe problema: Intelect, Quick Query, SQL, ORACLE,.
generatoare de rapoarte: Gis, Marck IV, NOMAD,.
sisteme de suport decizional si limbaje de planificare financiara: FCS, Metaphor, Stratagem, Express, aplicatii de sistem,..
generatoare de aplicatii pentru utilizatori: Focus, Fusion, Powerhouse,.
generatoare de aplicatii pentru profesionisti: UFO, INFO, CSP, Speedware.
PROLOG (PROgramming Logic) creat in anul 1973, este un limbaj destinat realizarii sistemelor expert.
El nu este procedural ci descriptiv si i se prevede o larga raspandire odata cu aparitia calculatoarelor din generatia a cincea.
LISP (LISt Processing Language) numit uneori "Limbaj Inteligent cu Stupide Paranteze" are trei atuuri puternice:
- frumusetea formala a programelor,
- structuri variate si profunde,
- caracteristici proprii care il fac adecvat informaticii de viitor.
A inceput sa patrunda si pe calculatoare personale dar el se "simte" cel mai bine in problemele de inteligenta artificiala (IA) si tratarea limbajelor naturale.