Bazele Informaticii, Limbaje de Programare, Baze de Date Relationale
Limbaje de Programare
-
Upload
florica-nicoleta-benea -
Category
Documents
-
view
4 -
download
0
description
Transcript of Limbaje de Programare
S ncercm s rspundem pentru nceput (fr a da un rspuns exact sau
definitiv) la cteva ntrebri:
1 ) n primul rnd la ce este bun un limbaj de programare n
general?
2) Cum putem clasifica limbajele de programare?
3 ) De ce apar noi limbaje de programare?
4) De ce cineva i-ar propune s nvee un limbaj de programare?
5) Care ar fi primele limbaje de programare pe care un tnr ar
trebui s le nvee?
1) La acest ntrebare se poate rspunde cu alta: ce aport au
sistemele de calcul n zilele de astzi?
Un limbaj de programare ar fi un set de instrumente prin care se
poate rezolva o anumit mulime de probleme concrete. Dac punem n aa
fel problema avem o definiie pragmatic asupra limbajelor de
programare. Bineneles c fr existena noiunii de limbaj de programare
nu ar mai avea sens noiunea de sistem de calcul, astfel
explicndu-se apariia primelor limbaje de programare odat cu cea a
computerelor electronice. Dac ne referim la primele sisteme de
calcul (care erau mecanice, cum ar fi calculatorul lui Pascal sau
alte maini simple de socotit) ideea de program nu era bine definit,
identificndu-se cu construcia mainii. Totui, dac reflectm puin
asupra mainii proiectate de Ada Lovelace, se poate observa o
separare destul de clar a noiunii de program (entitate software) de
noiunea de construcie dedicat abordrii unei familii mari de
probleme. Dac ne uitm un pic pe Wikipedia, gsim c la ora actual
exist multiple abordri a acestui subiect. Oricum, se pare c numrul
limbajelor de programare depsete la ora actual cifra de 400.
2) Criteriile dup care poate fi clasificat un limbaj de programare
n raport cu altul ar fi urmtoarele :
-flexibilitatea- caracteristic creia i-ar corespunde unui anumit
limbaj de programare de a fi aplicat unei ct mai mare varieti de
arhitecturi hardware (ceea ce poate fi rezumat la portabilitatea pe
diverse arhitecturi hardware). Haide s ne punem ntrebarea ce
limbaje de programare vor fi utilizate n cazul calculatoarelor
cuantice? (la ora actual exist cteva n faz experimental, cum ar fi
QCL, qGCL i cteva axate pe programare funcional, de exemplu, QFC,
QPL i QML). O alt perspectiv a flexibilitii ar fi dat de
capacitatea de a rezolva o anumit problem prin mai multe ci
distincte. Putem aprecia flexibilitatea prin capacitiatea unui
limbaj de programare de a conlucra cu alte limbaje de programe. De
exemplu Java conine biblioteca JNI ce permite apelarea de funcii
scrise ntr-un alt limbaj de programare, de pild limbajul C sau ASM,
sau cazul limbajului Python ce poate fi extins prin funcii scrise n
C sau poate servi ca suport de legare a diverselor alte programe n
alte limbaje, i un alt exemplu-limbajul HTML, ce poate fi descris
ca o platform standard de dezvoltare a paginilor Web pe care pot fi
utilizate alte limbaje de script, de exemplu JavaScript, PHP, Perl,
etc.
-familia de algoritmi ce pot fi implementai - aceasta fiind practic
una din cele mai importante caracteristici ale unui limbaj de
programare. n zilele noastre limbajele de programare ce au devenit
cele mai populare sunt capabilile s implementeze structuri de date
de complexitate foarte ridicat.
-popularitatea- cu ct un limbaj de programare este mai popular n
momentul de fa, cu ct avem mai muli developeri dedicai utilizrii
unui anumit limbaj de programare cu att programul pe care l vom
crea va avea un ciclu de via mai dinamic. Dac reflectm de exemplu
la dezvoltarea n timp a kernel-ului sistemului de operare Linux
(dezvoltat de regul n C), vom constata c acesta reprezint unul din
cele mai dinamice i de amploare proiecte din lumea opensource. Cu
ct limbajul de programare va avea o popularitate mai ridicat cu att
vom gsi mai multe resurse de informare i de colaborare cu ali
programatori. Deasemeni, dac ne oprim la un anumit limbaj de
programare vom vedea cte IDE-uri (Medii de Dezvoltare Integrate)
exist pe pia (la disputa C versus Java, C dispune de mai multe
IDE-uri, i poate asta c C a dispus de mai mult timp de cnd exist).
Oricum, gradul de popularitate a unui limbaj este o chestiune
variabil, ce ine de dezvoltarea tehnologic a platformelor hardware
a sistemelor de calcul i de apariiile concurente a altor limbaje de
programare.
-simplitatea sau expresivitatea- n raport cu limbajul uman obinuit
i fa de numrul de caractere ce ar trebui introdus n codul surs nct
acest limbaj s poat rezolva o anumit problem. De exemplu, un atu al
limbajului de script Python este capacitatea unui program scris n
acest limbaj de a rezolva o anumit sarcin printr-un program cruia i
corespunde un numr mic de instruciuni (dei la partea grafic se pare
c nu st aa de bine).
-apropierea de componenta hardware aceast caracteristic marcnd dac
n lmbajul de programare exist funcii ce pot apela diverse
componente ale calculatorului i cum acestea trateaz respectivele
componente. Aceast caracteristic poate fi corelat cu flexibilitatea
respectivului limbaj de programare.
-disponibilitatea tehnologic i aici a sugera s v gndii la
dezvoltarea tehnologiilor opensource. Unix, i mai trziu Linux, au
reprezentat medii de creare i dezvoltare a multor limbaje. Multe
din companiile cu tradiie n software comercial prefer s prezinte
limbajele de programare ca nite produse free sau liber deschise
spre dezvoltare, crecnd astfel ratingul asociat acestor produse
precum i ansa lor de a evolua.
-paradigmele de programare disponibile Exist mai multe paradigme de
programare, cum ar fi paradigma programrii imperative, funcionale,
etc. n cazul limbajelor de nivel nalt actuale putem discuta despre
paradigma programrii procedurale sau de paradigma programrii
orientate pe obiecte. n cazul limbajelor low-level (ASM) nu se
poate discuta despre programare orientat pe obiect. Oricum, exist
limbaje axate exclusiv pe paradigma programrii procedurale (de
exemplu limbajul C sau BASIC), alte orientate pe programare pur pe
obiecte (limbajul Java), ct i limbaje n care se pot utiliza ambele
paradigme (limbajul PHP).
-rapiditatea cu care ruleaz codul scris Pentru nceput vom spune c
am putea deosebi dou mari familii de limbaje de programe: prima ar
fi cea a limbajelor de script, pentru care codul surs este rulabil
printr-o aplicaie suplimentar, adugat sistemului de operare, iar a
doua categorie ar fi limbajele destinate producerii de cod binar.
La rndul su, cea de-a doua categorie, se ramific n limbaje de
programare a cror cod surs este interpretat de ctre un interpretor,
i a limbajelor ce sunt compilate. Ultima clasificare nu este rigid
i nici definitiv i cel mai bun exemplu ar fi cel al limbajului Java
(codul surs este compilat apoi interpretat de maina virtual Java).
Se pare c limbajele de script sunt cele mai puin rapide, i de aceea
multe din scripturile realizate nu sunt deosebit de complexe.
Interpretoarele asigur o portabilitate a codului scris, ns viteza
codului produs va fi n principiu mai mic dect n cazul programelor
compilate.
-securitatea programelor scrise- i aici ne gndim dac la un anumit
program scris ar putea fi adugat o procedur, nct acesta s schimbe
ntr-un mod nedorit i neplcut funcionarea respectivului program.
Trebuie spus c limbajele de script stau cel mai prost la acest
capitol.
3) Limbaje de programare apar datorit factorilor descrii la
ncercarea de clasificare de mai sus. ntotdeauna vor exista idei noi
care vin s mbunteasc unii dintre aceti parametri. i ca exemplu,
primul care mi vine n minte, este limbajul C++00X. Acesta, de fapt
o extensie a binecunoscutului limbaj C++, vine ca un nou standard,
aducnd faciliti mai ridicate n ceea ce privete expresivitatea,
apropierea de probleme reale i mbuntirea productivitii de creare a
noilor biblioteci. n contrast, cine i mai amintete despre Algol sau
COBOL?
4) Rspunsul, dei poate fi dat n mai multe feluri, este formulat la
acelai nivel de simplitate ca i ntrebarea. n primul rnd, fiindc are
o problem sau o clas de probleme pe care le vrea s le rezolve cu
ajutorul calculatorului. Un alt rspuns ar fi c este curios despre
cum ar funciona respectiva tehnologie.
5) n primul rnd prin atributul de tnr nu m refer neaprat la vrsta
biologic, putnd fi vorba despre contactul unui individ cu un anumit
tip de sistem de calcul sau cu anumite probleme. Oricum, rspunsul
la ntrebare l vei gsi cnd o s fii fa n fa cu situaia respectiv, i
dac nu o s l gsii singuri ntr-un timp rezonabil o sa v ajute
alii.
i acum o mic ideea despre ce vom discuta n acest blog. Pentru
nceput despre limbajele cele mai populare (C++ i Java), apoi despre
altele...
http://manufactoryprogramming.blogspot.ro