Documente Academic
Documente Profesional
Documente Cultură
Cursul 6
LIMBAJE DE PROGRAMARE
Concepte de baz
Limbajele de programare:
sunt limbaje artificiale, destinate implementrii algoritmelor n
cadrul programelor de calcul
Caracteristici:
manipuleaz structuri de date
controleaz modul de execuie a calculelor
Elemente:
sintaxa reguli de scriere
semantica interpretarea structurilor sintactice
codul main
limbaj de asamblare
limbaje de nivel nalt: compilatoarele, interpretoarele
programare modular biblioteci de funcii, proceduri, link-editorul
programarea structurat
era multimedia
programarea vizual
programarea imperativ (procedural) versus declarativ
programarea orientat pe obiecte i pe evenimente scheletul
programului
limbaje pentru baze de date, pentru simulare, conducere n timp real,
concurente
paradigma client - server
Compilatorul
cod surs translator de limbaj cod obiect
translator de limbaj: (de)compilator, interpretor
fazele compilrii:
tratarea erorilor
ALTE DISPOZITIVE
PERIFERICE DE
INTRARE
EDITOR
TEXTE
PROGRAM
SURS
TRANSLATOR
CORECII
DA
ERORI ?
NU
PROGRAM
OBIECT
BIBLIOTECI
UTILIZATOR
EDITOR
DE LEGTURI
PROGRAM
OBIECT
EXECUTABIL
NCRCTOR
LANSARE N EXECUIE
BIBLIOTECI
DE SISTEM
Identificatori
Identificatorii sunt nume folosite pentru a identifica
datele din memorie, zone de memorie, blocuri din
program:
sufer modificri pe parcursul calculelor variabile
rmn neschimbai pe parcursul calculelor:
literali
constante
Tipuri de date
sunt descrise n seciunea de declaraii a modulului
tipul datei stabilete:
modul de interpretare a irului de bii asociat datei
operaiile pe care le suport data
tipuri de date predefinite (principale) recunoscute automat:
tipul ntreg
fr semn: byte, word, dword
cu semn: shortint, integer, longint
tipul real: real, double, extended etc.
tipul caracter: char
tipul ir de caractere: string
tipul logic: boolean, longbool etc.
tipul reper (vizor): pointer
compatibilitatea tipurilor:
identice
echivalente
incompatibile
Structuri de date
Zon continu de memorie n care datele sunt grupate unitar din
punct de vedere logic, n conformitate cu necesitile programului
tipuri de structuri de date:
vectorul indice
matricea sau tabloul (array) indici multipli
nregistrarea (articolul): record cmpul (field)
obiectul (object) date & cod
Instruciunea de atribuire
Cea mai folosit instruciune imperativ
Variabil simbolul_operaiei_de_atribuire expresie_calculabil
X := 70 * sin (40*y + Psi)
expresii calculabile
regula de preceden a operatorilor stabilete ordinea operaiilor
parantezele rotunde (....) pe mai multe niveluri
suprancrcarea simbolurilor operaiilor
Instruciunile de control
Sunt instruciuni imperative care modific ordinea secvenial de execuie a
instruciunilor din program.
instruciuni de oprire a programului: STOP, HALT, ABORT cod eroare
(error level)
instruciuni de oprire a secvenei de program EXIT, RETURN
Instruciuni condiionale
Instruciuni repetitive
Comentariile
au doar valoare explicativ fiind obligatorii pentru o
ntreinere uoar a programului
nu au nici un rol n funcionarea programului
sunt ignorate de compilator
forme de comentarii:
pe o ntreag linie de text surs marcaj linie C % etc.
zon din textul surs marcaje pereche: (* *) /* */
pertinent
clar
concis
pstreaz lizibilitatea codului surs
Procedurile
Module de program scrise independent fa de programul principal
(main program), avnd un rol de sine stttor.
Este legat de programul apelant (principal) printr-un proces de
transfer a execuiei codului i apoi de revenire la acesta.
procedura poate fi privit ca un mini program de sine stttor cu:
antetul procedurii
lista de parametrii de apel
variabile locale
variabile globale
corpul procedurii
instruciuni de revenire la programul principal
alte proceduri sau funcii ncuibate (nested) (imbricate).
avantajele pe care le are programarea modular:
reutilizarea simpl a codului compilat
bun lizibilitate
ntreinere uoar
permite lucrul n echip
Revenire
Proceduri recursive
proceduri care se autoapeleaz
bucl iterativ: iniializare modificare revenire
caz de baz (caz degenerativ) ncheie autoapelul
calculele se fac fie pe ramura de apel, fie la revenire, fie combinat
DA
cazul de baz
Factorial := 1
n := 1
cazul recursiv
Factorial := n * Factorial(n - 1)
REVENIRE
Proceduri reentrante
Procedurile reintrabile pot fi ntrerupte de un proces i
apoi reapelate de alt proces specifice multitaskingului.
Condiii necesare:
datele proceselor simultane care o apeleaz nu trebuie
s se interfereze
fiecare proces trebuie s aib propria zon de date care
s fie accesate complet separat de apelurile diferite ale
aceleai proceduri reentrante
Corutine
2 (sau mai multe) proceduri care se apeleaz una pe
cealalt
nu exist diferen ntre modul apelant i modul apelat,
fiecare corutin avnd alternativ n timp cele 2 roluri
necesitatea declarrii antetului naintea descrierii
procedurii declaraia forward
problema depirii capacitii stivei
limitarea numrului de apeluri la o valoare rezonabil
evitarea utilizrii parametrilor formali, caz n care stiva pentru
apeluri a calculatorului nu mai este folosit
Funcii
sunt proceduri speciale care asociaz valoarea calculat la
numele funciei, returnnd-o n mod automat la revenirea
din procedur
variabila referit de funcie furnizeaz valoarea memorat
n urma apelului funciei se furnizeaz valoarea calculat:
mai lent
valoarea returnat depinde de context, pe cnd valoarea
memorat se pstreaz pn n momentul actualizrii ei
unele limbaje nu fac diferena ntre funcii i proceduri
Urmeaz cursul 7 !