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.