Sunteți pe pagina 1din 30

Limbaje de programare

inginereti
Tema 2
Tipuri de limbaje

Un limbaj de programare este un sistem de convenii


adoptate pentru realizarea unei comunicri ntre
programator i calculator . Limbajele folosite pentru
programarea unui calculator sunt extrem de asemntoare
limbajelor naturale . Ele sunt compuse din :
cuvinte (rezervate) ;
punctuaie ;
propoziii i fraze ;
reguli sintactice etc

Limbaje de nivel sczut de nivel nalt


Nivelul unui limbaj este apreciat prin poziia pe care o ocup
pe scara constituit
de limbajul recunoscut de microprocesor ( limbaj main ) i
limbajul natural al programatorului ( limba romn , limba
englez ) .
Un limbaj de nivel sczut este foarte apropiat de main ,
el manipuleaz cu elemente de nivel hardware , fizic , cum ar fi :
registru , microprocesor , locaie de memorie , port de intrare /
ieire etc .
Un limbaj de nivel nalt sau foarte nalt manipuleaz cu
concepte apropiate de limbajul natural , concepte de nivel logic ,
cum ar fi : colecie de date , nume de operaie ( sort , writeln ,
open ) , variabile , constante ( asemntoare ca neles cu cele din
matematic).

Cu ajutorul unui limbaj de nivel nalt programatorul se face


mult mai uor neles de ctre calculator. Uneori o singur
linie de program scris cu un astfel de limbaj poate
echivala cu sute de linii de program scrise n limbaj main
. Deci din punct de vedere al reducerii timpului de realizare
a unui program i al siguranei n funcionare ( absena
erorilor de programare ) este de preferat un limbaj de nivel
ct mai ridicat ( nalt sau foarte nalt ) .n schimb, pe
msur ce limbajul are un nivel mai ridicat execuia
programului conceput cu ajutorul su va fi mai lent , dect
a unui program ce realizeaz aceleai operaii dar este scris
n limbaj de asamblare

O alt diferen esenial ntre cele dou tipuri de limbaje


o reprezint portabilitatea , adic posibilitatea transferrii
programelor pe un alt tip de main dect cea pe care au
fost construite . Din acest punct de vedere limbajul de
asamblare este neportabil deoarece el este specific
microprocesorului . Programele realizate pe un tip de
main trebuie rescrise integral pentru noul tip de main ,
folosind un nou set de instruciuni care de obicei difer
foarte mult . Lucrurile stau altfel cu programele concepute
cu ajutorul unui limbaj de nivel nalt , deoarece acestea
sunt detaate de main . ntre un astfel de program i
calculator se interpune compilatorul ( sau interpretorul )
care rezolv corect transformarea fiierului-surs n fiierexecutabil .

Limbaje procedurale neprocedurale


Limbajele neprocedurale sunt concepute pentru a gndi un program la
nivel de instruciune , pe cnd cele procedurale , oblig programatorul s
conceap programe la nivel de bloc . ntr-un limbaj procedural (numit i
limbaj structurat) programele sunt scrise instruciune cu instruciune , dar
ele sunt organizate logic n blocuri (grupuri de instruciuni ) ce realizeaz
o aciune bine determinat .n general un bloc are un punct de intrare i un
punct de ieire nu mai multe .
Un limbaj procedural ofer posibilitatea utilizrii unui nivel ridicat
de concepere a unui program i duce la realizarea de programe coerente i
protejate la erori . Prin contrast , limbajele neprocedurale nu favorizeaz
programatorul n a se desprinde de nivelul instruciune i duc deseori la
programe greu de controlat mai ales n cazul programelor de dimensiuni
mari .
Limbajele neprocedurale sunt nc preferate de unii utilizatori
datorit timpului foarte scurt ct decurge nvarea i utlizarea lor .

Limbaje orientate
Din punctul de vedere al aplicabilitii unui limbaj , limbajele pot
fi orientate pe o anumit problem sau concepute pentru
soluionarea oricrui tip de problem limbaje de uz general sau
altfel spus , neorientate pe o problem .
Limbajele orientate prezint un grad nalt de specificitate
pe cnd un limbaj neorientat reprezint un cadru general ce
permite introducerea de ctre utilizator a conceptelor i
prelucrrilor dorite.
Deci , diferena esenial dintre cele dou tipuri de limbaje
o constitue nivelul conceptual definit . Cele specializate posed
deja integral suportul necesar i permit programatorului s se
concentreze la ansamblul problemei , pe cnd cele nespecializate
las n sarcina programatorului manevrarea nivelelor inferioare ale
problemei .

Limbaje concurente
Un limbaj concurent permite definirea de procese
(prelucrri ) paralele , execuia sa fiind ramificat la
un anumit moment de timp .
Prin contrast limbajele neconcurente ( majoritatea
limbajelor ) au o desfurare liniar , fiind activ un
singur proces la un moment dat . Procesele
concurente presupun n mod obligatoriu un sistem
multi-tasking ce poate gestiona mai multe sarcini
la un moment dat .

Exemple de limbaje
Limbaje de nivel sczut .
Aceast categorie de limbaje are un reprezentant autoritar i anume : limbajul de
asamblare . Diferenierile care se pot face pentru limbajele de nivel sczut sunt
urmtoarele :
a) dup tipul de main ;
Regulile respectate de versiunile limbajului de asamblare sunt :
- o nou versiune o include complet pe cea anterioar ,
- versiunea nou ofer funcii suplimentare i le realizeaz pe cele vechi mai
rapid .
b) dup mediul de programare oferit .
Aspectul unui limbaj poate fi schimbat radical de mediul de programare oferit .
Pentru
limbajul de asamblare exist mai multe implementri disponibile , ncepnd cu
pachete ce opereaz n mod linie i culminnd cu medii integrate n care toate
operaiile se pot declana de la un acelai pupitru de comand .
Nu sunt luate n considerare dect aceste medii integrate ( denumite generic
medii Turbo) , dintre care se detaeaz Turbo Asamblorul firmei Borland TASM

Limbaje de nivel nalt neorientate .


1. BASIC
A fost creat n 1964 la Darmooth College (S.U.A.) . Denumirea sa
provine de la iniialele cuvintelor Beginners Allpurpose Symbolic
Instruction Code ( Cod de instruciuni simbolice , de uz general ,
destinat nceptorilor ) .
Are urmtoarele caracteristici fundamentale :
simplu de nvat ; instruciunile sale sunt cuvinte din limba englez
sau prescurtri ale acestora ;
neorientat pe un anumit tip de problem ; permite construirea de
aplicaii;
este un limbaj nestructurat , ceea ce i permite s fie uor nvat .
Din cauz c a cunoscut o larg rspndire , au fost implementate noi
versiuni de Basic :
GW-BASIC , QUICK BASIC , TURBO BASIC , VISUAL BASIC
(Basic for Windows ) .

2. FORTRAN
Limbajul Fortran este decanul de vrst al limbajelor de larg
folosin . A aprut n 1956 i i datoreaz numele prescurtrii
cuvintelor : FORmula TRANslation ( Traducere de formule ).
Iniial reprezenta un limbaj orientat pe calcule tiinifice avnd
definite concepte precum : matrice , funcii trigonometrice , numere
reale n dubl precizie . Versiunile ulterioare care au cunoscut o
mare popularitate au extins posibilitile limbajului trasformndu-l
ntr-un limbaj eficient , de uz general .n prezent exist pentru IBMPC dou implementri mai importante ale limbajului : Microsoft
Fortran , Fortran for Windows .
Dei nu poate fi considerat depit din punct de vedere
conceptual ( este un limbaj algoritmic structurat ) este neindicat
folosirea lui datorit absenei unor medii de programare
performante i pentru c tendina actual i este defavorabil

3. PASCAL
Conceptualizat n anul 1970 de ctre Niklaus Wirth ,
limbajul PASCAL poart numele matematicianului i
filosofului BLAISE PASCAL , n semn de recunoatere a
meritelor sale n teoretizarea mainilor de calcul .
Creat dup acumularea de cunotiine temeinice n tiina
limbajelor formale , din confruntarea cu probleme concrete
ale programrii , limbajul PASCAL a constituit la vremea
respectiv un limbaj modern , meninndu-se ca atare i n
prezent , datorit faptului c posed o solid baz
conceptual.
Limbajul PASCAL a introdus n versiunea sa iniial noiunea
de programare structurat i ulterior noiunile de date
(structuri) dinamice , date (structuri ) definite de utilizator

Standardul implementrilor PASCAL cuprinde urmtoarele elemente :


programare structurat de tip algoritmic ;
definirea de noi funcii sau proceduri ;
tipuri de date definibile de ctre utilizator ;
structuri de date dinamice ;
adresri indirecte ale datelor ;
recursivitate ;
rutine complete de intrare / ieire ;
funcii de conversie a datelor din ASCII n format intern i invers ;
set complet de funcii matematice ;
funcii elementare de grafic 2D ;
posibilitatea inserrii direct n surs a instruciunilor n limbaj de asamblare ;
posibilitatea definirii de overlay-uri pentru program .
Versiunile standard ale implementrilor PASCAL sunt cele oferite de
Microsoft i Borland , cu avantaj pentru cele din urm ( TURBO PASCAL 5.0
, TURBO PASCAL 5.5 ) datorit mediului de lucru performant (de tip
TURBO ) . Combinaia PASCAL + TURBO a reprezentat un succes imens
n rndul programatorilor avnd ca singur rival cealalt combinaie :
C+TURBO .

4. Limbajul C
Acest limbaj de programare , cu cel mai scurt nume , a fost creat n 1971 de ctre
Dennis Ritchie i Brian Kernigham pentru dezvoltarea sistemului de operare UNIX .
Principalele caracteristici ale limbajului sunt :
limbaj structurat de nivel nalt ;
posed concepte de nivel sczut , ceea ce permite exploatarea portabil a
caracteristicilor intime unei maini ;
rutine de conversie a datelor foarte evoluate ;
tipuri de date definibile de ctre utilizator ;
gestionarea elaborat a datelor de tip dinamic ;
definirea de noi funcii ;
adresri indirecte ale datelor , variabilelor ( pointer-i ) ;
recursivitate ;
set complet de funcii matematice ;
funcii pentru realizarea de grafic elementar 2D;
funcii de apel servicii DOS ;
posibilitatea definirii de overlay-uri pentru un program ;
concizie deosebit a limbajului .
Pentru versiunile standard ale implementrilor limbajului C exist medii de
programare de tip TURBO ce aparin firmelor : Microsoft produsul QUICK C i
firmei Borland produsele TURBO C .

5. Limbajul ADA
A fost creat special pentru a gestiona totalitatea aplicaiilor
dezvoltate i utilizate de N.A.S.A. Noutatea limbajului ( de tip
structurat , algoritmic ) o constitue concurena , deci
posibilitatea lansrii de procese paralele ( sincronizate
interactiv n finalul execuiei lor ) . Saltul calitativ este evident
i deschide un nou domeniu n programare dar nu pentru
IBM-PC . Versiunile implementrilor limbajului ADA pe IBMPC nu posed tocmai acest parte de concuren , reducnd
limbajul la un simplu limbaj structurat de uz general . Deci ,
ADA este un limbaj ultramodern din punct de vedere teoretic
dar ineficient din punct de vedere practic pentru IBM-PC-uri .

Limbaje orientate pe gestiunea bazelor de date


Necesitile actuale n practica utilizrii calculatoarelor se ndreapt cu
precdere spre gestionarea bazelor de date de mari dimensiuni . O explicaie
a acestei orientri e dat de faptul c o baz de date reprezint o informaie ,
iar cel ce deine informaii complete i rapide ntr-o anumit problem este
indiscutabil cu un pas naintea celorlali . Concurena din domeniul economic
poate fi numit pe bun dreptate o btlie informaional .
Un sistem de gestionare a bazelor de date ( S.G.B.D.) de tip clasic
opereaz cu urmtorii termeni fundamentali :
cmp o locaie n care se poate memora o informaie bine determinat
nregistrare mai multe cmpuri alctuiesc mpreun o nregistrare ;
baza de date colecie de nregistrri

Tendina modern n exploatarea bazelor de date const n deplasarea


interesului ctre bazele de date relaionale . Diferena esenial const n
definirea unui nivel logic suplimentar ntre datele gestionate . Acestea nu
mai sunt privite ca simple fie izolate ntre ele ci pot fi analizate pe baza
legturilor ( relaiilor ) ce exist ntre ele .
Noiunile cu care opereaz un S.G.B.D. relaional sunt urmtoarele :
tabel structur fundamental de depozitare a datelor ;
linie n tabel echivalentul unei nregistrri clasice ;
coloan n tabel echivalentul unui cmp de tip clasic ;
baz de date o colecie de tabele , conectate prin valorile anumitor
coloane .

Spre deosebire de S.G.B.D. urile clasice , un mediu relaional


presupune ca cerin minimal posibilitatea manipulrii datelor prin
intermediul conexiunilor logice stabilite . Pentru aceasta exist definit
( i impus ca standard unanim recunoscut ) limbajul de interogare SQL
( Structured Query Language limbaj de cereri structurate ) .
Prin intermediul su sunt permise urmtoarele operaii :
regsire date ( conexate logic ) ce ndeplinesc o anumit condiie ;
definire ordine de returnare a datelor ;
redefinire conectri logice ale datelor ;
exploatare ;
programare .

Avantajele unui S.G.B.D. clasic sunt :


simplitate n manevrare ; deci efort de studiu redus ;
pot funciona pe un sistem de calcul ce nu implic
resurse speciale , ci doar spaiu de stocare extern
suficient pentru problema dat ;
pre de cost redus fa de cele relaionale .
Avantajele unui S.G.B.D. relaional sunt :
nivel logic superior ( corelaii , structuri 1 : n ) ,
prelucrri ( regsiri ) de date cu un nalt nivel de
complexitate ;
nivel superior de portabilitate a aplicaiilor , datelor
AICI CURS VIITOR

S.G.B.D. uri clasice .


1. dBASE III
Cel mai rspndit sistem de gestiune a bazelor de date este dBASE , n
diversele lui versiuni . El poate fi considerat un BASIC al bazelor de
date. La momentul apariiei a constituit o adevrat revoluie n domeniul
S.G.B.D.-urilor .
Meritele sale principale care l-au impus ateniei utilizatorilor i
programatorilor sunt :
foarte simplu de utilizat ;
limbaj de nivel foarte nalt , simplu de nvat ;
interactivitate bun a sistemului ;
poate funciona cu resurse extrem de restrnse ;
Dezavantajele principale ale dBASE ului sunt :
vitez de lucru extrem de sczut ;
limbaj de programare cu lacune greu de surmontat ( nu posed salturi ,
funcii matematice reduse , erori de implementare ) ;
aplicaiile create slab interactive ;
imposibilitateta conectrii cu un alt limbaj .
Cele mai importante implementri ale sale sunt : dBASE III Plus i dBASE
IV .

2. COBOL
A fost creat n 1950 i reprezenta singura posibilitate
de gestionare a unei baze de date .
Reprezint n primul rnd un limbaj de programare
special conceput pentru informatica de gestiune . Dac
facem o comparaie , sugestiv , COBOL este
echivalentul FORTRAN-ului pentru sistemele de
gestiune a bazelor de date ( din punct de vedere istoric i
al performanelor ) .
Limbajul este considerat greoi i inflexibil , iar
pentru crearea unui program foarte simplu e nevoie de
scrierea unui adevrat eseu .
Singurul avantaj real al COBOL-ului este
portabilitatea sa ridicat .

3. FOXBASE
Sistemul dBASE a incantat firmele productoare de
soft , datorit popularitii sale i pe de alt parte a calitilor
sczute ale implementrilor originale furnizate de firma
Ashton-Tate . Au aprut noi implementri ale limbajului care
au ncercat s furnizeze unelte profesionale pe baza acestui
suport conceptual .
Versiunile FOXBASE 2.10 i FOXBASE PRO se
constitue n medii performante att pentru programatori ct
i pentru utilizatori

4. ISIS
Este distribuit gratis de ctre UNESCO , ceea ce l face
cu adevrat distinct .
Caracteristicile ce l fac interesant sunt :
interactivitate bun ;
posibilitate definire structuri 1 : n ;
suport de reea local ;
un limbaj intern( o versiune de PASCAL ) cu care se
prelucreaz datele ;
adaptabilitate foarte bun .

S.G.B.D. uri relaionale


1. ORACLE
Se poate afirma fr teama de a grei c ORACLE reprezint cel mai
performant S.G.B.D. disponibil la momentul actual . Pe lng faptul c
posed avantajele unui mediu de tip relaional, ORACLE este gndit ca
un sistem exhaustiv pentru rezolvarea problemelor de utilizare sau
programare .
Limbajul intern folosit este SQL Plus i este permis conectarea cu
alte limbaje externe evoluate ( orientate ctre C ) . Putem meniona :
vitez de lucru foarte bun ;
exploatare interactiv la nivel SQL ;
limitri de lucru greu sau imposibil de atins ( maxim 65535
caractere ntr-un cmp , numr nelimitat de cmpuri , de
nregistrri ) ;
exploatare eficient a spaiului pe disc ( memorarea cmpurilor n
format variabil ) .
Oracle este implementat pe majoritatea tipurilor de computere mari ,
ceea ce ofer portabilitatea aplicaiilor , dar mai ales posibilitatea
conectrii la calculatoare puternice

2. PARADOX
Reprezint un S.G.B.D. cu adevrat profesional . El
ndeplinete toate cerinele unui produs cu adevrat modern i
performant i anume :
interactivitate foarte bun ;
vitez de lucru mare ;
servicii i auxiliare ;
limbaj de programare evoluat ( PAL Paradox
Application Language ) , dotat cu compilator .

Limbaje orientate pe calcul tabelar .


1. LOTUS 1-2-3
Lotus 1-2-3 , produs al firmei Lotus Development este n mod sigur cel
mai rspndit produs din aceast categorie . Datorit popularitii sale el s-a
constituit ntr-un adevrat standard ( neoficial ) pentru spread-sheet-uri . La
nivel de ansamblu , LOTUS se preuint ca o aplicaie cu bun interactivitate .
Reprourile ce i se pot aduce sunt : meniurile ( uneori stufoase i nelogic
ramificate ) i help-ul care nu totdeauna este la obiect .
2. QUATRO PRO 2.0
Spread-sheet-ul QUATRO , realizat de firma Borland este cel mai nou i
puternic produs din categoria sa . El combin ntr-un mod fericit tot ceea ce
este pozitiv la rivalii si adugnd i multe faciliti proprii.
3. EXCEL
Produsul firmei Microsoft , EXCEL este o aplicaie care funcioneaz
sub Windows . De aici rezult n mod direct unele din caracteristicile sale
( utilizare mai comod , meniuri foarte clare i standardizate , funcii grafice
deosebit de puternice , vitez de lucru inferioar lui Quatro ) .

Limbaje orientate pe calcul matematic simbolic


Specialitii din domeniul cercetrii matematice au la dispoziie
unelte de lucru extrem de utile pentru eliminarea calculului
matematic rutinier . n acest scop au fost create limbaje de
programare care pot recunoate i rezolva formule sau ecuaii
matematice complexe . Expresiile manevrate pot conine operaii
algebrice elementare , operatori de derivare , de integrare ,
operatori difereniali care sunt recunoscui de sistem ca atare . n
plus sunt oferite instruciuni absolut necesare pentru a controla
un program .
Cele mai importante produse de acest gen sunt REDUCE ,
SYMNON , MATHCAD , MATHEMATICA , MATHLAB .

Limbaje orientate pe programarea inteligenei artificiale


Acest tip de limbaje difer esenial de cele algoritmice . Modalitatea de
programare este descriptiv i are intenia declarat de simulare a
raionamentului uman . Pentru rezolvarea unei probleme sunt furnizate
seturile de reguli i informaii necesare , iar apoi se descrie n ce const
problema ca atare . Limbajul este capabil s opereze deduciile ( deciziile )
necesare pentru a rezolva problema ntr-un caz particular ce apare n
practic .
Aadar , aceste limbaje descriu problema de rezolvat ( n termenii
deduciilor logice ) pe cnd limbajele de tip algoritmic descriu metoda de
rezolvare a problemei . Domeniile de aplicabilitate pentru limbajele de
programare a inteligenei artificiale sunt cu predilecie : realizarea de sisteme
expert ( programe ce nlocuiesc experii umani ) , computerizarea procesului
de producie , robotic , tratarea limbajelor naturale .
Cele mai importante limbaje de acest tip sunt :
PROLOG ( PROgramming in LOGic ) creat n 1973 i implementat pe
PC-uri abia n 1986 de firma Borland sub forma Turbo-Prolog .
LISP ( LISt Processing language ) conceput n 1976 i implementat pe
PC-uri de firma Microsoft sub forma MuLISP .

http://www.scriptol.com/programming
/list-programming-languages.php