Definirea si
clasificarea limbajelor de programare
Un limbaj de programare este o tehnica
de comunicare
standardizata pentru transmiterea de instructiuni catre un computer.
Un limbaj de programare are definite un set de reguli sintactice si
semantice. Un limbaj da posibilitatea programatorului sa specifice cu
ce fel de date va lucra computerul si ce actiuni va executa acesta in
anumite situatii precizate.
Dupa cum am
precizat anterior, exista mai multe categorii de limbaje, pe care le vom
clasifica in continuare:
- Dupa modul de specificare a instructiunilor:
limbaje
procedurale; ex. C, Java, Perl
limbaje
neprocedurale: ex. LISP, Haskell, Clips, Prolog
- Dupa nivelul de abstractizare
(care cuantifica usurinta cu
care pot fi citite de catre programatori):
limbaje
de generatia I: limbajele cod-masina
limbaje
de generatia a doua: limbajele de asamblare
limbaje
de generatia a treia: limbaje de nivel inalt, cum ar fi C-ul
(si toate derivatele sale: C++, Java,
), Pascal,
Fortran,
etc.
limbaje
de generatia a patra: limbajele neprocedurale, orientate pe
rezolvarea unei anumite clase de probleme: SQL
limbaje
de generatia a cincea: limbaje utilizate in domenii precum logica
fuzzy, inteligenta artificiala,
sau retelele neuronale: Prolog, LISP,
Pentru
executarea unui program scris intr-un limbaj oarecare, exista, in
principiu, doua abordari: compilare sau interpretare.
Unele limbaje se preteaza bine la
compilare; de exemplu limbajele clasice: Pascal, Fortran,
C.
Alte limbaje sunt in mod predilect interpretate, de ex. BASIC, PHP, SQL. Multe
limbaje moderne combina compilarea cu interpretarea: codul sursa este
compilat intr-un limbaj binar numit bytecode, care la rulare este interpretat de catre
o masina virtuala.
De remarcat faptul ca unele interpretoare de limbaje pot folosi
compilatoare just-in-time, care transforma codul in
limbaj masina chiar inaintea executarii.
O alta
clasificare a limbajelor de programare se poate face dupa destinatia lor:
R
Limbaje generale - care pot fi folosite (cel putin
teoretic) in scrierea oricarui tip de programe:
BASIC (Beginners All-purpose Symbolic Instruction
Code) este un limbaj de programare de nivel inalt a
calculatoarelor, foarte asemanator cu limba
engleza, ceea ce il face usor de memorat si ideal
pentru incepatori. Limbajul de programare a fost dezvoltat in de catre John G. Kemeny si Thomas E. Kurtz la Dartmouth College. Unul dintre cele mai bune
editoare, compilatoare si depanatoare pentru incepatorii in acest
limbaj este QBASIC (Quick Beginners All-purpose Symbolic
Instruction Code) care poate fi descarcat gratuit. O
varianta de BASIC foarte populara este si Visual Basic,
creata de catre Microsoft. Aceasta este adresata mai mult avansatilor.
Visual Basic permite crearea de aplicatii relativ complexe prin
manipularea vizuala a unor componente.
C este un limbaj de programare standardizat,
compilat, de nivel mediu. Este implementat pe marea majoritate a platformelor
de calcul existente azi, si este cel mai popular limbaj de programare
pentru scrierea de software de sistem. Este apreciat pentru eficienta codului obiect pe care il poate genera, si
pentru portabilitatea sa. A fost dezvoltat la
inceputul anilor 1970 de Ken Thompson si Dennis
Ritchie, care aveau nevoie de un limbaj simplu si portabil
pentru scrierea nucleului sistemului de operare UNIX. Sintaxa limbajului C
a stat la baza multor limbaje create ulterior si inca populare azi:
C++, Java, JavaScript, C#.)
C++ : pronuntat 'si plas plas',
este un limbaj de programare general. Este un
limbaj multi-paradigma cu verificarea statica a tipului variabilelor
ce suporta programare procedurala, abstractizare a datelor,
programare orientata pe obiect. In anii '90, C++ a devenit unul din cele
mai populare limbaje de programare comerciale. Nimeni nu detine C++
insa, acesta fiind gratuit. Bjarne
Stroustrup de la
Bell Labs a dezvoltat C++ (initial denumit "C cu Clase")
in anii
ca o serie de imbunatatiri ale limbajului C.
Acestea au inceput cu adaugarea de clase apoi de functii virtuale,
supraincarcarea operatorilor, mostenire multipla, template-uri
si exceptii. Limbajul de programare C++ a fost standardizat in ca si ISO 14882:1998, versiunea
curenta fiind din 2003, ISO 14882:2003.
- C# este un limbaj de programare orientat-obiect
conceput de Microsoft la sfarsitul anilor 90. A
fost conceput ca un concurent pentru limbajul
Java. Ca si acesta, C# este un derivat al limbajului de
programare C++.)
- Clips - Limbajul de programare CLIPS este un shell
evoluat pentru dezvoltarea de sisteme expert. El se incadreaza in
paradigma limbajelor bazate pe reguli de productie si
implementeaza o cautare
inainte. CLIPS a fost dezvoltat de Software Technology Branch la NATO Lyndon B.
Johnson Space Center. Prima versiune aparand in 1986, in august 1998
ajunsese la versiunea 6.10, aceasta evolutie semnificand un
sir impresionant de imbunatatiri si extinderi ale
limbajului.
- Cobol (Common
Business - Oriented Language): este unul dintre primele limbaje de programare importante
proiectat pentru calcule economice.
- Fortran (sau FORTRAN) este un limbaj de programare nascut in
anul 1950 si care este inca folosit dupa jumatate de
secol de existenta. Numele sau isi are originea din
'Formula Translator'. Desi la inceput a fost
un limbaj procedural, cele mai recente versiuni au
inclus suport pentru programarea obiectuala.
- Haskell: este un
limbaj de programare functionala.
Poarta numele lui Curry Haskell.
- Java este un limbaj de programare orientat-obiect,
puternic tipat, conceput de Sun Microsystems la inceputul anilor
90. Un program Java compilat, corect scris, poate fi rulat fara
modificari pe orice computer (PC, PDA etc.) pe care e
instalata o masina virtuala Java (JVM=Java Virtual
Machine). Acest nivel de portabilitate (inexistent pentru limbaje mai
vechi cum ar fi C)
este posibil deoarece sursele Java sunt compilate intr-un format standard
numit cod de octeti (byte-code) care este intermediar intre codul
masina (dependent de tipul computerului) si codul
sursa. Masina virtuala Java este un mediu in care se
executa programele Java. In prezent, exista mai multi
furnizori de JVM, printre care Sun, IBM, Bea, Oracle, FSF. In 2006,
Sun a anuntat ca
face disponibila varianta sa de JVM ca open-source.
Exista 3 platforme Java definite de Sun Microsystems:
Java
Platform, Micro Edition (Java ME) - pentru hardware cu resurse limitate, gen
PDA sau telefoane
mobile,
Java
Platform, Standard Edition (Java SE) - pentru sisteme gen workstation, este
ceea ce se gaseste pe PC-uri,
Java
Platform, Enterprise Edition (Java EE) - pentru sisteme de calcul mari,
eventual distribuite.
JavaScript : este un limbaj de programare orientat obiect, bazat pe
conceptul prototipurilor. Limbajul este binecunoscut
pentru folosirea in construirea siturilor web, dar de asemenea este folosit pentru acesul la
obiecte incastrate (embedded objects) in alte aplicatii. La inceputuri a
fost dezvoltat de catre Brendan Eich de la Netscape Communications Corporation
sub numele de Mocha, apoi LiveScript, si denumit in final
JavaScript. In ciuda numelui si a unor oarecare similaritati in
sintaxa, intre JavaScript si limbajul Java nu exista nici o
legatura. Ca si Java, JavaScript are o sintaxa ca si C-ului. Pana la
inceputurile lui 2005, ultima versiune existenta a fost JavaScript 1.5,
care corespunde cu Editia a 3-a ECMA-262, ECMAScript, in alti termeni, o
editie standardizata de JavaScript. Versiunile Mozilla
incepand cu 1.8 Beta 1 de asemenea au avut suport pentru E4X, care este o extensie a limbajului care are de a face cu XML, definit in
standardul ECMA-357. Versiunea curenta de Mozilla, 1.8.1 (pe care sunt
construite Firefox
si Thunderbird versiunile 2.0) suporta
JavaScript versiunea 1.7.
LISP: este un limbaj de programare
functional cu un lung istoric. Conceput initial ca un model de calcul
(asemanator celui construit de Turing), a devenit limbajul cel mai
folosit la crearea aplicatiilor de inteligenta
artificiala in anii de glorie ai acestui domeniu (1970-1980).
Denumirea provine de la 'LISt Processing'. Specificat initial in
1958, Lisp este cel de-al doilea ca vechime limbaj de programare de nivel
inalt; doar Fortran
este mai vechi. Precum Fortran, LISP s-a schimbat mult fata de forma
initiala, existand de-a lungul vremii o serie de dialecte.
Astazi, cele mai raspandite dialecte Lisp sunt Common Lisp si Scheme.
Pascal (si ObjectPascal, folosit de Borland
Delphi) : este unul dintre limbajele de programare de
referinta in stiinta calculatoarelor,
fiind cel care a definit programarea
calculatoarelor. Pascal a fost dezvoltat de elvetianul Niklaus Wirth
in 1970 pentru a pune in practica programarea structurata, aceasta
fiind mai usor de compilat. Unul din marile sale avantaje este asemanarea
cu limbajul natural limba engleza, ceea ce il face limbajul ideal pentru
cei care sunt la primul contact cu programarea. Pascal este bazat pe limbajul
Algol si a fost denumit astfel in onoarea matematicianului Blaise Pascal,
creditat pentru construirea primelor masini de calcul numeric. Wirth a mai
dezvoltat limbajele Modula-2 si Oberon, similare cu Pascal. Cele mai
populare implementari a acestui limbaj au fost Turbo Pascal si
Borland Pascal, ambele ale firmei Borland cu versiuni pentru Macintosh
si DOS,
care i-au adaugat limbajului obiecte si au fost continuate cu
versiuni destinate programarii vizuale pentru Microsoft Windows (limbajul Delphi) si pentru Linux (Kylix). In prezent
exista si alte implementari mai mult sau mai putin
populare, dar gratuite, printre care se remarca Free Pascal
si GNU Pascal.
- Perl : este un limbaj de programare dinamic, procedural creat de Lary Wall in 1987.
Perl imprumuta caracteristicile limbajelor C,
shell, AWK, sed, Lisp si ale multor alte limbaje intr-o
masura mai mica.
- PHP : este un limbaj de programare destinat in
primul rand Internetului, aducand dinamica unei
pagini de web. Este unul din cele mai importante limbaje de programare web
open-source si server-side. Numele PHP provine din limba engleza si este un
acronim recursiv : Php: Hypertext Preprocessor.
Exemple faimoase de utilizare a acestui limbaj sunt PhpBB (forum),
PhpNuke(CMS), chiar si MediaWiki, software-ul
din spatele Wikipedia. Folosirea PHP poate fi vazuta ca o
alternativa gratuita la utilizarea unor limbaje comerciale cum
sunt ASP de la Microsoft, ColdFusion
de la Macromedia,
sau chiar JSP de la Sun Microsystems.
- Prolog : este un limbaj specific
inteligentei artificiale ( Prolog - Programming in Logic ) Originea
lui apartine lui Alain Calmaureur de la Universitatea din Marsilia,
Franta.
Initial a fost conceput pentru analiza lexicala. Azi exista
mai multe implementari atat open source cat si proprietare.
Printre cele mai bune implementari open source existente azi se numara
swi-prolog.
- Tcl/TK: (Tool
Command Language) este un limbaj de scripting bazat pe
siruri de caractere, interpretate la rulare. Aceaste caracteristici
ii permit sa fie portabil pe diferite sisteme de operare. Sintaxa sa
are numai douasprezece reguli, dar are toate elementele necesare
pentru a crea rapid programe in aproape orice domeniu. Permite dezvoltarea
de aplicatii grafice care ruleaza pe Windows,
Linux,
MacOSX
si pe multe alte platforme.
- CSS : (Cascading
Style Sheets) este un standard pentru formatarea elementelor unui
document HTML.
Stilurile se pot atasa elementelor HTML prin intermediul unor
fisiere externe sau in cadrul documentului, prin elementul <style> si/sau atributul style. CSS se poate utiliza si pentru
formatarea elementelor XHTML, XML si SVGL. O resursa buna, in limba romana,
pentru incepatorii in CSS este site-ul CssPlaza
- XHTML : eXtensible HyperText Markup Language,
sau XHTML, este un limbaj de marcare ce are
aceleasi capabilitati expresive ca si HTML,
dar cu o sintaxa mai stricta. XHTML poate fi considerat ca
incrucisarea dintre HTML si XML in multe privinte, fiind o reformulare a HTML in
XML. XHTML 1.0 a devenit o recomandare World Wide Web Consortium
(W3C) pe data de 26 ianuarie .
R
Limbaje specifice - sunt limbaje cu o tinta bine
definita, folosite de obicei pentru interactiunea cu un anumit
program sau sistem.
- ActionScript - limbajul de scripting folosit de Macromedia
Flash.
Limbajul de programare are la baza standardul ECMA, fiind un limbaj foarte simplu de invatat
si inteles.
ASP (si ASP.NET) pentru scripting web, este o
tehnologie Microsoft
pentru crearea de aplicatii web si servicii web. ASP.NET este
succesorul lui ASP(Active
Server Pages) si beneficiaza de puterea platformei de dezvoltare .NET
si de setul de instrumente oferite de mediul de dezvoltare al
aplicatiei Visual Studio .NET. Cateva dintre avantajele ASP .NET sunt:
are
un set larg de componente, bazate pe XML, oferind astfel un model de programare orientat obiect (OOP).
ASP
.NET ruleaza cod compilat, ceea ce creste performantele
aplicatiei web. Codul sursa poate fi separat in doua fisiere,
unul pentru codul executabil, iar un altul pentru continutul paginii
(codul HTML
si textul din pagina) . ASP.NET este compatibil cu pese 20 de limbaje
diferite, cele mai utilizate fiind C#
si Visual Basic.
- Miva sau MivaScript este un limbaj de programare proprietar
utilizat in marea majoritate pentru aplicatii internet (e-commerce).
A fost dezvoltat de Miva Corporation (San Diego, California), o
filiala a Corporatiei FindWhat. Cu toate ca o multitudine de
companii au suport Miva pe serverele lor, Miva Script este mult mai putin
cunoscut decat concurentul sau notoriu PHP. Miva Script a
fost deseori descris ca fiind un XML modificat. Tagurile miva sunt prefixate cu <Mv.
In versiunea actuala se pot remarca tagurile specifice Miva (<MvAssign
Name='Variabila' Value='Valoare'>), insa
este de remarcat ca motorul proceseaza si tagurile html
(<img src=''>) Una dintre cele mai
importante functionalitati ale limbajului este suportul
nativ al bazelor dBase care au o metoda de indexare (foarte
puternica si rapida) proprietara Miva. Variabilele nu
au nevoie sa fie declarate pentru a fi initializate. Principalele
atuuri ale limbajului sunt:
Programare
rapida pentru a ajunge la un rezultat;
Foarte
usor de invatat;
Comunitate
de programatori solida;
Motor
gratuit si usor de instalat .
- SQL - (Structured Query Language - Limbaj
Structurat de Interogare) este un limbaj de programare specific lucrului
cu bazele de date, devenit un standard
in domeniu (standardizat ANSI-ISO), fiind cel mai popular limbaj utilizat pentru
crearea, modificarea, regasirea si manipularea datelor de
catre SGBD-urile (Sistemele de Gestiune a Bazelor de Date)
relationale. Pe langa versiunile standardizate ale limbajului,
exista o multime de dialecte si variante, unele proprietare,
fiind specifice anumitor SGBD-uri si de asemenea continand
extensii pentru a suporta SBD-urile (Sistemele de Baze de Date) obiectuale
(obiectual-relationale). SQL permite atat accesul la continutul
bazelor de date, cat si la structura acestora.
- FoxPro a fost inventat pe la mijlocul anilor ´80.
Creat pentru calculatoarele care foloseau sistemul de operare MS-DOS, era
pe atunci limbajul care oferea accesul cel mai rapid la date. In 1992,
compania care detinea acest produs a fost cumparata de
Microsoft. O data cu lansarea sistemului de operare Windows in anul
1995, Microsoft a realizat o noua versiune FoxPro, adaptata
pentru Windows. Din acest moment FoxPro devine OOP ('Object Oriented
Programming'), lucrand cu 'obiecte', 'ferestre';
cu alte cuvinte facand trecerea de la programarea in coduri la
programarea vizuala. Orice aplicatie scrisa in FoxPro
ruleaza nemodificata sub Visual FoxPro, dar motorul intern a
fost rescris din temelii pentru a oferi facilitati OOP, cum ar
fi mostenirea si polimorfismul. A doua revolutie in istoria
FoxPro s-a produs o data cu lansarea versiunii Visual FoxPro 8,
aceasta reprezentand inceputul vietii moderne a lui Visual FoxPro
pentru ca oferea posibilitatea conectarii la orice surse de
date. Visual FoxPro 9 a adus o noua schimbare importanta:
sistemul de raportare al limbajului a fost modificat pentru a permite
extinderea cu produse scrise chiar de dezvoltatori. In 2007 s-a lansat
noua versiune Sedna, care asigura interoperativitatea cu .NET,
platforma de programare apartinand firmei Microsoft.
Tot in
aceasta categorie putem aminti:
- Mediul de dezvoltare (engl. development environment,
sau integrated development environment - mediu integrat de dezvoltare)
este un set de programe care ajuta programatorul in
scrierea de alte programe. Un mediu de dezvoltare combina toti
pasii necesari crearii unui program (ex.: editarea codului sursa, compilarea, depanarea, testarea, generarea de documentatie) intr-un singur
soft, care, de regula, ofera o interfata cu
utilizatorul grafica, prietenoasa. Principalele componente ale
unui mediu de dezvoltare sunt editorul de cod sursa si depanatorul. Mediile de dezvoltare
apeleaza compilatoare, sau interpretoare,
care pot veni in acelasi pachet cu mediul insusi, sau pot fi
instalate separat de catre programator. Printre
facilitatile prezente in mediile de dezvoltare mai sofisticate
se numara: exploratoare de cod sursa,
sisteme de control al versiunilor, designere de interfete grafice,
sau unelte de ingineria programarii
(ex. generarea de diagrame UML). De obicei un mediu de dezvoltare este specific unui
anumit limbaj de programare, insa
exista la ora actuala si medii de dezvoltare care pot lucra
cu mai multe limbaje, de ex. Eclipse sau Microsoft Visual Studio.
Exemple de medii de dezvoltare:
C++
Builder este un mediu de dezvoltare in limbajul C++ produs de
firma americana Borland. Pe langa biblioteca standard C++ contine
si bibliotecile VCL
pentru componente vizuale.
Delphi (numit si Kylix sub Linux) - este un limbaj de programare si un mediu de dezvoltare pentru programe, produs de
firma americana Borland. Limbajul Delphi este cunoscut ca Pascal orientat pe obiecte (Pascal cu
obiecte). Initial a fost facut pentru sistemele de
operare Windows, dar acum se fac versiuni si pentru Linux (denumit Kylix) si Microsoft .NET Framework.
Eclipse este un mediu de dezvoltare open-source
scris in Java. De dezvoltarea sa se ocupa Fundatia Eclipse.
KDevelop este un mediu de programare liber
pentru KDE.
KDevelop nu include un compilator, folosindu-se in loc de compilatoare externe
Turbo Pascal: lansat in 1984, a ajuns repede unul
dintre cele mai populare medii de dezvoltare pentru PC. Borland Pascal
este numele compilatorului
si mediului integrat de dezvoltare pentru
limbajul Pascal produs de firma Borland.
Borland Pascal 7.0, lansat in 1992, a cuprins si un mediu de dezvoltare
pentru Microsoft Windows. Borland Pascal a fost
precursorul limbajului si mediului de dezvoltare Borland
Delphi.
Microsoft
Visual Studio (numit si Visual Studio.NET). Reuneste mediile
de dezvoltare mai vechi Visual Basic, Visual C++,
Visual J++, Visual InterDev)
- RPG (Report
Program GENERATOR) : a fost creat la inceputul anilor 1960
de IBM
pentru a raspunde necesitatii companiilor de a crea
rapoarte. La inceput, RPG era utilizat doar pentru tiparirea de rapoarte. In prezent RPG
este un limbaj de programare procedural si este utilizat in principal
pentru crearea de aplicatii in domeniul economic.
Programul RPG utilizeaza 3 tipuri de structuri:structuri
secventiale, structuri conditionale si structuri repetitive.