ETAPELE PRELUCRARII PROGRAMELOR. EFECTELE DECLARARII DATELOR
Practica programarii identifica doua nivele importante ale programelor. Nivelul a este al "limbajului uman", in care exprimarea este simbolica. Din acest nivel fac parte si limbajele de programare procedurale si cele de asamblare. La acest nivel se codifica algoritmii printr-o expresie simbolica atat a operanzilor cat si 646h75g a operatorilor. Operanzii se adreseaza simbolic (a,b, cant, pret adr simbolice).
Al doilea nivel este al masinii, in care programul se regaseste codificat numeric. Atat operanzii cat si operatiile sunt exprimate binar.
Compilator
Link-editor
Compilatorul si link-editorul sunt componente software.
Compilatorul=software care are la
intrare fisier scris in limbaj evoluat si la iesire un fisier binar.
.PAS .OBJ
Pt a-si realiza functiile se folosesc o serie de tabele, printre care si tabela simbolurilor de date. Se foloseste si un contor de adrese si mai multe pe masura rezervarii zonelor de memorie. Rezervarea poate fi logica sau fizica.
Var
a:word; [0] RVF1
b:word; RVF1+[2] RVF1
c:word; RVF1 [4]
... RVF=reg virgula fixa
c:=a+b;
....
Valoarea adresei de la compilare =valoarea ofsetului de la executie.
Exista 3 tipuri de instuctiuni in cod masina: instr v.f, instr v.m, instr de prelucrare a sirurilor de caractere. Primele doua au un operand in registru si celalalt in memorie, ultima foloseste ambii operanzi in memorie.
Var
a,b,c:real; [0]ÞRVM1
.... RVM1Å[6]ÞRVM1
c:=a+b; RVM1Þ[12]
...
Tipul de data indica care sa fie instructiunea cod masina care trebuie efectuata.
Var
a,c:real; Apel S1([12]) [50]
b:word; [50]ÞRVM1
... RVM1Å[0]ÞRVM1
c:=a+b; RVM1Þ[6]
....
AT-adresa temporara
S1- subprogramul 1
Exista rutine specializate pt conversia din v.f in v.m.
Apelurile de la compilare s.n referinte externe nerezolvate. De aceea un program .obj nu poate fi executat. Referintele externe sunt rezolvate de catre link editor.
Declararea datelor are efct la momentul compilarii. Efecte:
Rezeva zone de memorie (fizic si logic)
Indica compilatorului modul in care sa-si genereze structura cod masina a instructiunilor care refera operanzi
Var
a,c:real;
const
b:word=14
.....
c:=a+b;
.....
Compilatoarele au incluse in ele reguli implicite. In cadrul descrierii unui program pot fi declarari implicite si explicite. Declararile explicite sunt rezolvate de compilator.
Link editorul =componenta software
care in principal revolva referintele externe generate la compilare astfel:
incarca din biblioteca sistemului o singura data rutinele invocate de
compilator; fixeaza in instructiuni de apel adresele de incarcare a rutinelor.
Incarcarea si executarea programului: pt a fi executat programul este incarcat in memoria principala, componenta registrului de segment pt date primind o valoare.
Adresele de la compilare sunt ofseturi la momentul executiei.
|