Sunteți pe pagina 1din 14

Capitolul 1.

Introducere
Clasificarea calculatoarelor este o problem[ controversat[ ]n literatura de specialitate. Una din
clasific[rile general acceptate, f[cut[ dup[ criteriul “puterii de calcul”, cuprinde:
• microcalculatoare;
• minicalculatore;
• calculatoare mari (mainframe);
• supercalculatoare.
O alt[ clasificare, care are ]n vedere num[rul problemelor ce pot fi rezolvate, cuprinde:
• calculatoare de uz general;
• calculatoare specializate sau dedicate (embbeded computers).
}n sf`r=it, o clasificare dup[ criteriul cronologic ]mparte calculatoarele ]n patru genera\ii:
• genera\ia I – calculatoare realizate cu tuburi electronice;
• genera\ia II – calculatoare cu tranzistoare;
• genera\ia III – calculatoare realizate cu circuite integrate pe scar[ redus[ sau cu microprocesoare
pe 8 bi\i;
• genera\ia IV – calculatoare cu microprocesoare pe 16 (sau mai mul\i) bi\i.

1.1
Capitolul 1. Introducere

1.1. Date =i informa\ii


Data este reprezentarea unui lucru, fenomen, faptã sau idee într-o manierã formalizatã sau codificat[,
susceptibilã de a fi tratatã, pãstratã sau comunicatã printr-un procedeu oarecare.
Sistemul este o colecàie de obiecte aflate în interacàiune în scopul atingerii unui obiectiv.
Teoria matematic[ a informa\iei precizeaz[ c[ informa\ia este o no\iune fundamental[, care nu se poate
defini (a=a cum nu se poate defini, ]n matematic[, no\iunea de mul\ime) [A.1].
Informa\ia este un mesaj, o transmitere de =tiri care ]nl[tur[ o nedeterminare.
Surs[ Informa\ie Traductor Semnale Canal de comunica\ie Semnale Traductor Informa\ie Receptor

Perturba\ie

Figura 1.1. Schema general[ a unui sistem de transmitere a informa\iei.


Numai con\inutul mesajului, nu =i energia lui determin[ cantitatea de informa\ie pe care o poart[.
Atunci c`nd un emi\[tor transmite informa\ii unui receptor, emi\[torul nu pierde aceste informa\ii. }n
concluzie, informa\ia nu este nici materie nici energie; ea este un tip special de raport ]ntre procesele
materiale.
}ntre informa\ie =i nedeterminare exist[ o str`ns[ leg[tur[. O informa\ie este o informa\ie ]n adev[ratul
sens al cuv`ntului dac[ =i numai dac[ ]nl[tur[ o anumit[ nedeterminare.
}n plus, no\iunea de informa\ie este str`ns legat[ =i de transmiterea ei. }ntr-un sistem de transmitere a
informa\iei, emi\[torul codifica semnalele care con\in informa\ia surs[. Receptorul urmeaz[ s[ decodifice
semnalele recep\ionate pe canalul de comunica\ie pentru a extrage informa\ia.
Codificarea ]nseamn[ ]nlocuirea fiec[rui semnal, dintr-o anumit[ mul\ime (mul\imea semnalelor
ini\iale), printr-o succesiune de semnale dintr-o alt[ mul\ime (semnale simple). Codificarea este necesar[
din dou[ motive importante.
Un prim motiv este cel legat de structura sistemului concret de transmitere a informa\iei care se
utilizeaz[. De exemplu, indiferent de tehnologia de realizare, toate reprezent[rile folosite ]ntr-un
calculator numeric sunt codific[ri binare.
Al doilea motiv \ine de prezen\a perturba\iilor pe canalul de comunica\ie. Codificarea adecvat[ a
semnalelor permite mic=orarea efectului perturba\iilor asupra transmiterii de informa\ii.
}n concluzie, simplific`nd pu\in lucrurile, se poate spune c[ informa\ia este semnifica\ia pe care omul
o d[ datelor. Nu trebuie uitat ]ns[ c[ schimbul de informa\ii este foarte r[sp`ndit ]n natur[ =i societate,
]ntre om =i om, om =i ma=in[, ]ntre ma=in[ =i ma=in[ etc. }ntr-un schimb de informa\ii nu este obligatorie
interven\ia omului sau a unei fiin\e ]nsufle\ite [A.1].
Datele se clasific[ astfel:
• date simple;
• date structurate;
• date de tip pointer.
O dat[ simpl[, fie nu con\ine sub-componente (dat[ atomic[), fie are sub-componente dar accesul la
acestea nu prezint[ interes pentru utilizator.
Principalele tipuri simple de date sunt:
• logic (boolean);
• caracter;
• octet;

1.2
Capitolul 1. Introducere
• ]ntreg;
• real.
O dat[ structurat[ este alc[tuit[ din mai multe sub-componente, utilizatorul dispun`nd de un procedeu
bine precizat de acces la fiecare component[.
Principalele tipuri structurate de date sunt:
• tablou;
• ]nregistrare;
• fi=ier.
Datele de tip pointer con\in adrese de memorie.

1.3
Capitolul 1. Introducere

1.2. Calculatoare =i microprocesoare


}n Dic\ionarul explicativ al limbii rom`ne (DEX) g[sim c[ un calculator este “o ma=in[ sau instala\ie
cu ajutorul c[reia se efectueaz[ automat opera\ii matematice =i logice”.
O defini\ie mai riguroas[ a calculatorului (numit =i sisem de calcul sau sistem digital programabil) este
“un sistem electronic destinat prelucr[rii, memor[rii =i transmisiei datelor”.
Programul este o secven\[ finit[ de instruc\iuni (comenzi) prin care, dintr-un set de date numite date
de intrare, se ob\ine un alt set de date numite date de ie=ire.

Calculator
Date de intrare =i Date de ie=ire
program

Figura 1.2. Modelul software


Structura general[ a unui microcalculator de uz general este prezentat[ ]n figura 1.3.

A AB
CPU D DB
C CB

A D C A D C
MEM PIO

DI DO
Figura 1.3. Structura general[ a unui microcalculator:
CPU – unitatea central[ de prelucrare;
MEM – memoria principal[;
PIO – periferice de intrare-ie=ire;
DI – date de intrare;
DO – date de ie=ire
AB – magistral[ de adrese;
DB – magistral[ de date;
CB – magistral[ de comenzi;
A- adrese, D – date, C – comenzi;
Unitatea central[ de prelucrare (CPU – Central Processing Unit) este subsistemul prin care se
realizeaz[, ]n principal, prelucrarea datelor. De asemenea, majoritatea transferurilor de date ]ntre
subsisteme se face sub supravegherea CPU. Excep\ie face tehnica DMA (Direct Memory Access – acces
direct la memorie) prin care se realizeaz[ un transfer direct de date ]ntre un dispozitiv de intrare-ie=ire =i
memorie, f[r[ interven\ia CPU.
Memoria principal[ (MEM) este subsistemul prin care se realizeaz[ func\ia de memorare a datelor.
La microcalculatoarele de uz general, memoria principal[ este de tip RAM (Random Access Memory –
memorie cu acces aleator) cu o mic[ parte de tip ROM (Read Only Memory – memorie ce poate fi numai
citit[).
Datele =i programele sunt memorate pe un suport extern (de obicei de tip magnetic – unit[\ile de disc
dur sau flexibil) care formeaz[ memoria auxiliar[.

1.4
Capitolul 1. Introducere
Accesul la datele =i programele din memoria auxiliar[ se face prin intermediul unui periferic
specializat (controller de disc).
Forma sub care sunt p[strate datele =i programele ]n memoria auxiliar[ se nume=te fi=ier.
Componenta ROM a memoriei principale con\ine:
• rutine de test =i ini\ializare a sistemului (POST – Power On Self Test);
• programe de ini\ializare =i acces la dispozitivele periferice de baz[ (BIOS – Basic Input –
Output System).
La ini\ializarea sistemului, dup[ execu\ia rutinelor POST, componenta BIOS permite ]nc[rc[rea
sistemului de operare, din memoria auxiliar[ ]n memoria principal[. Sistemul de operare cuprinde
programe de configurare a sistemului, de gestiune a memoriei auxiliare, etc.
Aceast[ arhitectur[ permite realizarea unor sisteme deosebit de flexibile din punct de vedere software,
capabile s[ execute unui num[r teoretic nelimitat de programe.
Perifericele de intrare-ie=ire (PIE) sunt subsistemele prin care microcalculatorul comunic[ cu lumea
exterioar[. Ele se clasific[ ]n periferice de baz[ (tastatura, monitorul =i unit[\ile de disc) =i periferice
auxiliare (imprimanta, mouse-ul, unitatea de CD-ROM, MODEM-ul, etc.).
Conectarea perifericelor la magistrala microcalculatorului se face prin intermediul unei interfe\e
(figura 1.4.). Unele periferice utilizeaz[ interfe\e specializate (monitorul, tastatura sau unit[\ile de disc),
altele, interfe\e de uz general (interfe\e standard, seriale sau paralele).

A D C

PORT de
intrare-ie=ire

Interfa\[
Interfa\[
electric[

Dispozitiv
periferic

Figura 1.4. Periferic de intrare-ie=ire =i interfa\[.


Interfe\ele de uz general permit conectarea la sistem a oric[rui periferic ce respect[ un anumit standard
ca de exemplu RS232C, Centronix sau USB (Universal Serial Bus).
Apari\ia circuitelor integrate pe scar[ larg[ sau foarte larg[ a permis integrarea unei mari p[r\i din
unitatea central[ de prelucrare, dispozitivul numindu-se microprocesor (MPU – Micro Processor Unit).
}n realizarea func\iei de CPU, microprocesorul este “ajutat” de un num[r de circuite suport:
oscilatorul (ceasul sistem), controllerul DMA, controllerul de ]ntreruperi, etc.

1.5
Capitolul 1. Introducere

1.3. Microcontrollere =i sisteme dedicate


Sistemele dedicate apar at`t ]n structura sistemelor de calcul de uz general c`t =i ca sisteme de sine
st[t[toare din componen\a diverselor aparate (televizoare, cuptoare cu microunde, ma=ini, telefoane
mobile, etc.).
}n prima situa\ie ele reflect[ tendin\a realiz[rii de periferice “inteligente”, care efectueaz[ prelucr[ri
primare ale datelor, degrev`nd microprocesorul central de unele sarcini mari consumatoare de timp sau
resurse de calcul (MODEM-ul, mouse-ul, controllerul de disc, controllerul video, controllerul USB, etc.).
}n al doilea caz putem vorbi despre sisteme care incorporeaz[ un calculator (embedde systems –
sisteme cu logic[ de control incorporat[).
De=i exist[ unele asem[n[ri ]ntre arhitectura unui microcalculator =i ce a unui sistem dedicat, sunt =i
multe deosebiri care vor fi eviden\iate ]n cele ce urmeaz[.
Una din caracteristicile de baz[ ale sistemelor dedicate este specializarea. Aceste sisteme realizeaz[ o
singur[ func\ie sau un num[r redus de func\ii.
O alt[ deosebire este dat[ de modul de realizare a unit[\ii centrale de prelucrare (CPU). Sistemele
dedicate sunt realizate de regul[ cu microcontrollere (MCU – Micro Controller Unit) =i se numesc
sisteme cu microcontroller (embeddes systems).
Microcontrollerul este un sistem de calcul ]ntr-un singur chip care integreaz[ procesorul, circuite
suport, memoria =i dispozitive de intrare-ie=ire [A.4].
Microcontrollerele ofer[ posibilitatea realiz[rii unor sisteme de comand[ =i control cu un num[r foarte
mic de componente, lucru care conduce la pre\uri de cost mici =i fiabilitate ridicat[. Un alt aspect deosebit
de important este acela c[ sistemele cu microcontroller permit, cu acea=i structur[ hardware, realizarea
unei game largi de aplica\ii, fiecare cu software-ul corespunz[tor.
Exist[ un num[r foarte mare tipuri de microcontrollere ce se deosebesc at`t prin arhitectur[ c`t =i prin
modul de func\ionare. Acest fapt poate conduce la dificult[\i ]n alegerea microcontrollerului potrivit
pentru realizarea unui sistem dedicat. Unul din obiectivele acestui curs este acela de a prezenta avantajele
=i dezavantajele fiec[rei arhitecturi, facilit`nd ]n acest fel alegerea microcontrollerului “cel mai potrivit”
pentru realizarea unei aplica\ii date.
}n sf`r=it, o alt[ deosebire ]ntre microcalculatoare =i sistemele cu microcontroller este aceea c[
realizarea unui sistem dedicat presupune implementarea unor func\ii aflate tradi\ional ]n sarcina
sistemului de operare sau a circuitelor suport.

1.6
Capitolul 1. Introducere

1.4. Proiectarea programelor


Programele modific[, memoreaz[ =i transfer[ datele cu ajutorul variabilelor.
Variabila este, din punct de vedere al implement[rii, o zon[ de memorie destinat[ memor[rii unei date.
Din punct de vedere logic, o variabil[ pote reprezenta (]n func\ie de problema de rezolvat) o presiune,
o densitate, o durat[ de timp etc.
Prin declara\ii ]n cadrul programelor se stabilesc atributele variabilelor.
Principalele atribute ale unei variabile sunt:
• identificatorul (numele) variabilei;
• tipul variabilei;
• structura variabilei.
Tipul unei variabile este atributul care precizeaz[ domeniul de valori pe care le poate lua variabila
precum =i opera\iile care se pot efectua cu aceste valori.
Structura unei variabile este atributul care precizeaz[ dac[ variabila con\ine date simple sau date
structurate.
1.4.1. Etapele proiect[rii unui program
Pentru rezolvarea unei probleme se parcurg urm[toarele etape:
• analiza problemei
• proiectarea programului
• implementarea programului
• ]ntre\inerea =i documentarea programului
Analiza problemei
}n aceast[ etap[:
• se identific[ datele de intrare =i datele de ie=ire;
• se precizeaz[ tipul =i structura variabilelor care con\in datele de intrare;
• se precizeaz[ tipul =i structura variabilelor care con\in datele de ie=ire;
• se precizeaz[ tipul =i structura variabilelor auxiliare;
• se stabile=te func\ia programului (modul ]n care se ob\in datele de ie=ire din datele de intrare).
}n majoritatea cazurilor func\ia programului este precizat[ sub forma unui model matematic.
Modelul matematic este ansamblul de rela\ii =i principii pe baza c[rora se calculeaz[ datele de ie=ire
din datele de intrare.
Rezultatul etapei de analiz[ se nume=te specifica\ia programului.
Proiectarea programului
Scopul acestei etape este ob\inerea algoritmului de rezolvare a problemei.
Algoritmul constituie “re\eta” de rezolvare a problemei.
Pentru reperezentarea algoritmului se utilizeaz[:
• limbajul natural;
• schema logic[;
• pseudocodul
• limbaje de programare.

1.7
Capitolul 1. Introducere
Implementarea programului
}n acest[ etap[ se codific[ algoritmul ]n limbajul de programare ales. Programul ob\inut ]n urma
codific[rii se depaneaz[ (eventual) =i se testeaz[.
Depanarea este opera\ia prin care se elimin[ eventualele erori din program.
Pricipalele tipuri erori sunt:
• erori sintactice;
• erori de link-editare;
• erori ]n faza de execu\ie;
• erori logice.
Majoritatea erorilor sunt u=or de eliminat av`nd ]n verere faptul c[ mediile integrate utilizate ]n
realizarea programelor ofer[ instrumente pentru identificarea lor.
Cele mai dificile sunt erorile logice. Pentru eliminarea lor se utilizeaz[ de obicei simulatoare sau
depanatoare specializate.
Testarea programului ]nsemn[ execu\ia lui cu un set de date de intrare astfel ales ]nc`t datele de ie=ire
s[ fie previzibile sau u=or de calculat. Testarea constituie un instrument foarte bun pentru ]nl[turarea
erorilor logice.
}ntre\inerea =i documentarea programului
}ntre\inerea programului ]nseamn[ operarea unor mici modific[ri ]n program (care nu schimb[
specifica\ia programului), pe baza observa\iilor f[cute de utilizator asupra modului de func\ionare.
Documentarea programului presupune elaborarea unei documenta\ii care precizeaz[ modul de
instalare, condi\iile de func\ionare, modul de utilizare =i de ]ntre\inere a programului.
Un alt nivel de documentare ]l constituie comentarea programului care se realizeaz[ ]n programul
surs[ prin utilizarea comentariilor.
1.4.2. Algoritmi
Algoritmul este o succesiune finit[ de pa=i care se execut[ ]ntr-un timp finit =i ]ntr-o ordine bine
stabilit[. Pa=ii unui algoritm se mai numesc =i (pseudo-)instruc\iuni.
Un algoritm este alc[tuit din:
• opera\ii de baz[;
• structuri de control.
Opera\iile de baz[ sunt cele care permit prelucrarea, memorarea =i transferul datelor. Cele trei opera\ii
de baz[ sunt:
• atribuirea;
• citirea;
• scrierea.
Opera\ia de atribuire are forma general[ v←e ]n care “v” este o variabil[ iar “e” este o expresie.
Atribuirea se execut[ ]n dou[ etape: mai ]nt`i se evalueaz[ expresia “e” dup[ care, valoarea expresiei
este atribuit[ variabilei “v”.
Opera\iile de citire =i scriere permit citirea datelor de intrare, respectiv scrierea datelor de ie=ire.
Structurile de control precizeaz[ ordinea ]n care se execut[ pa=ii algoritmului.
Teorema Bohm – Jacopini precizeaz[ c[ orice algoritm poate fi realizat cu numai trei structuri de
control numite structuri de control fundamentale: secven\a, decizia =i itera\ia.
Secven\a este o succesiune de pa=i care se execut[ ]n ordinea scrierii lor.

1.8
Capitolul 1. Introducere
Decizia permite “ramificarea” algoritmului ]n func\ie de ]ndeplinirea unei anumite condi\ii. Decizia
poate fi simpl[ sau cu alternativ[.
Itera\ia permite execu\ia repetat[ a unei secven\e, numit[ corpul ciclului.
Exist[ trei tipuri de itera\ii:
• itera\ia cu test ini\ial;
• itera\ia cu test final;
• itera\ia cu contor.
Itera\ia cu test ini\ial execut[ corpul ciclului c`t timp este ]ndeplinit[ o anumit[ condi\ie.
Itera\ia cu test final execut[ corpul ciclului p`n[ c`nd este ]ndeplinit[ o anumit[ condi\ie.
Itera\ia cu contor permite execu\ia corpului ciclului pentru toate valorile unei variabile speciale
(numit[ variabil[ contor) ]ntr-un interval dat.
1.4.3. Reprezentarea algoritmilor
Cele mai utilizate modalit[\i de reprezentare a algoritmilor sunt pseudocodul =i schema logic[.
Pseudocodul
Este o modalitate de reprezentare a algoritmului sub form[ de text. Pa=ii algoritmului, numi\i pseudo-
instruc\iuni, sunt reprezenta\i prin cuvinte-cheie.
Cuvintele-cheie utilizate ]n pseudocod sunt:
ALTFEL, ATUNCI, CITEŞTE, CÂT TIMP, DACĂ, ENDSEQ, EXECUTĂ, PENTRU,
PÂNĂ CÂND, REPETĂ, SCRIE, SEQ, START, STOP.
Opera\iile de intrare-ie=ire se reprezint[ ]n pseudocod astfel:
CITEŞTE <listă variabile>
SCRIE <listă variabile>
]n care “list[ variabile” este o succesiune de identificatori (de variabil[) separa\i prin virgul[.
Atribuirea se codific[ astfel:
v←e
]n care “v” este un identificator de variabil[ iar “e” este o expresie cu valori de acela=i tip cu variabila.
Pentru reprezentarea unei secven\e se utilizeaz[ cuvintele-cheie SEQ =i ENDSEQ pentru a marca
]nceputul, respectiv sf`r=itul secven\ei. Secven\a este numit[ =i (pseudo-)instruc\iune compus[.
Decizia simpl[ se codific[ astfel:
DACĂ c ATUNCI instr
]n care “c” este o expresie cu valori de tip logic (numit[ condi\ie logic[) iar “instr” este orice instruc\iune
(inclusiv una compus[).
Decizia cu alternativ[ are sintaxa:
DACĂ c ATUNCI instr1
ALTFEL instr2
]n care “c” este o expresie cu valori de tip logic iar “instr1” =i “instr2” sunt instruc\iuni.
Itera\ia cu test ini\ial se codific[ ]n pseudocod astfel:
CÂT TIMP c EXECUTĂ instr
]n care “c” este o expresie cu valori de tip logic, iar “instr” este orice instruc\iune (corpul ciclului).
Itera\ia cu test final se codific[ astfel:

1.9
Capitolul 1. Introducere
REPETĂ instr PÂNĂ CÂND c
]n care “c” este o expresie cu valori de tip logic iar “instr” este orice instruc\iune (corpul ciclului).
Sintaxa itera\iei cu contor cresc[tor este:
PENTRU v=e1,e2 EXECUTĂ instr
]n care “v” este un identificator de variabil[ (variabil[-contor), “e1” =i “e2” sunt expresii cu valori de
acela=i tip cu “v” iar “instr” este orice instruc\iune (corpul ciclului).
Sintaxa itera\iei cu contor descresc[tor este:
PENTRU v=e1↓e2 EXECUTĂ instr
}n ambele cazuri, corpul ciclului se execut[ pentru toate valorile variabilei “v”, cuprinse ]ntre valorile
“e1” =i “e2”. }n primul caz, contorul este incrementat la fiecare parcurgere a ciclului iar ]n al doilea caz,
contorul este decrementat.
Cuvintele-cheie “START” =i “STOP” se utilizeaz[ pentru a marca ]nceputul, respectiv sf`r=itul
algoritmului.
Schema logic[
Este o modalitate grafic[ de reprezentare a unui algoritm.
Simbolurile utilizate ]n reprezentare sunt:

Blocul de start.
START DA NU
Marcheaz[ ]nceputul C Bloc de decizie
algoritmului.

Blocul de stop. Simbol utilizat ]n


STOP Marcheaz[ sf`r=itul definirea =i apelul
algoritmului. subprogramelor.
Bloc de calcul. Con\ine
una sau mai multe Simboluri utilizate la
instruc\iuni de atribuire. interconectarea
diverselor p[r\i ale
Bloc de intrare-ie=ire schemei logice.

Opera\iile de baz[ de intrare-ie=ire se reprezint[ prin blocuri de intrare-ie=ire iar opera\iile de atribuire
utilizeaz[ blocuri de calcul.
Secven\a nu necesit[ un simbol special pentru reprezentare ]n schema logic[.
}n figurile 1.1 =i 1.2 se prezint[ modul de reprezentare ]n schema logic[ a deciziei.

DA
C

instr NU

Figura 1.1. Reprezentarea deciziei simple.


1.10
Capitolul 1. Introducere

DA NU
C

instr1 instr2

Figura 1.2. Reprezentarea deciziei cu alternativ[.


Principalul dezavantaj al schemei logice este faptul c[ nu ofer[ simboluri specifice pentru
reprezenatrea structurilor de control de tip iterativ.
Itera\iile se reprezint[ ]n schema logic[ prin combina\ii de blocuri.
}n figurile 1.3 =i 1.4 sunt prezentate schemele logice echivalente pentru itera\ia cu test ini\ial, respectiv
pentru itera\ia cu test final.

instr

C
DA

NU

Figura 1.3. Itera\ia cu test ini\ial.

instr

C
NU

DA

Figura 1.4. Itera\ia cu test final.


}n figura 1.5 este exemplificat[ itera\ia cu contor cresc[tor:
PENTRU i=1,n EXECUTĂ instr

1.11
Capitolul 1. Introducere

i=1

instr

i=i+1

i n
DA

NU

Figura 1.5. Exemplu de itera\ie cu contor cresc[tor.

1.12
Capitolul 1. Introducere

1.5. Limbaje de programare


O categorie important[ de programe o constituie limbajele de programare. Un limbaj de programare
permite utilizatorului s[ creeze propriile programe (numite programe utilizator).
Limbajul de programare este un intermediar ]ntre problema de rezolvat =i calculator.

Algoritm Limbaj de Asamblor


Problem[ programare Calculator
Compilator

Figura 1.6. Rezolvarea unei probleme cu ajutorul calculatorului.


Algoritmul face trecerea de la problem[ la limbajul de programare iar asamblorul sau compilatorul
realizeaz[ trecerea de la limbaj la calculator.
Limbajele de programare se clasific[ dup[ apropierea de limbajul natural ]n:
• limbaje de nivel ]nalt;
• limbaje de nivel cobor`t.
Limbajele de nivel ]nalt permit programarea independent[ de arhitectura calculatorului =i sunt mai
apropiate de specificul problemei. Ele ofer[ urm[toarele avantaje:
• portabilitatea programelor;
• sunt mai apropiate de limbajul natural.
Principalele dezavantaje sunt:
• necesit[ configura\ii hardware complexe;
• vitez[ mic[ de execu\ie.
Limbajele de nivel cobor`t, numite =i limbaje de asamblare, depind de structura calculatorului =i
descriu opera\ii specifice acestuia. Ele ofer[ urm[toarele avantaje:
• vitez[ mare de execu\ie;
• utilizarea la maximum a resurselor hardware.
Principalele dezavantaje ale limbajelor de nivel cobor`t sunt:
• lipsa portabilit[\ii programelor;
• tehnicitatea program[rii.
1.5.1. Etapele compil[rii
Prima form[ a programului utilizator este programul surs[. Acesta este un fi=ier text realizat cu
ajutorul unui editor de text.
Programul surs[ con\ine instruc\iunile necesare rezolv[rii problemei, scrise ]n limbajul de programare
ales. El este “tradus” (translatat) ]n instruc\iuni recunoscute de calculator fie cu ajutorul asamblorului, fie
cu ajutorul compilatorului.
Forma ob\inut[ ]n urma translat[rii se nume=te program obiect relocabil.
Programul obiect relocabil este o form[ intermediar[ a programului care nu este direct executabil[. El
are proprietatea de a putea fi a=ezat oriunde ]n memoria calculatorului (este relocabil).
Programul obiect relocabil este transformat ]n program obiect absolut (sau executabil) cu ajutorul
link-editorului.
Pentru a putea fi executat, programul obiect absolut trebuie ]nc[rcat ]n memoria principal[ cu ajutorul
]nc[rc[torului de programe.

1.13
Capitolul 1. Introducere
Utilizarea formei intermediare de program obiect relocabil ofer[ c`teva avantaje care sunt prezentate ]n
continuare.
}n primul r`nd, programele complexe pot fi “sparte” ]n mai multe module ce pot fi compilate =i testate
separat. Aceast[ tehnic[ se nume=te programare modularizat[.
Utilizarea program[rii modularizate conduce la cre=terea eficien\ei program[rii =i, ]n plus, permite
reutilizarea codului. Un modul, odat[ compilat =i testat, poate fi utilizat ]n mai multe proiecte, f[r[ a fi
necesar[ recompilarea sa.
Pe de alt[ parte, modulele precompilate pot fi organizate ]n biblioteci de programe.
}n acest fel, utilizatorul ]=i poate construi propriile biblioteci de programe care pot fi utilizate ]n faza de
link-editatare, al[turi de bibliotecile sistem (bibliotecile furnizate de limbajul de programare).
De men\ionat c[ exist[ o deosebire ]ntre utilizarea unui modul precompilat =i a unei biblioteci. La link-
editarea unui modul precompilat, modulul este incorporat ]n ]ntregime ]n program pe c`nd, ]n cazul unei
biblioteci, sunt incluse doar func\iile utilizate de program.
}n figura 1.7 sunt prezentate principalele faze ale compil[rii unui program.

Editor

file2.asm main.c file1.c mod1.obj

Asamblor Compilator Bibliotecar

file2.obj main.obj file1.obj mylib.lib

mod2.obj Link-editor syslib.lib

prog.exe

Figura 1.7. Compilarea unui program.


1.5.2. Medii integrate de programare
Un mediu integrat pentru dezvoltarea programelor (Integrated Development Environment - IDE)
con\ine toate instrumentele necesare realiz[rii unui program utilizator: editor de text, asamblor,
compilator, link-editor, bibliotecar, ]nc[rc[tor de programe, depanator, simulator etc.

1.14

S-ar putea să vă placă și