Analiza sintactica
extrage componentele gramaticale ale codului sursa si constuieste arborele de derivare (parse tree)
genereaza codul executabil al aplicatiei analizate
identifica atomii lexicali si le asociaza valoarea preluata din aplicatia care se compileaza
identifica atomii lexicali si le asociaza o valoare unica
T* reprezinta
multimea tuturor sirurilor finite din T
multimea tuturor sirurilor din T
concatenarea tuturor sirurilor din multimea T
multimea vida
Optimizarea codului reprezinta
o etapa a asezarii in pagina a programului scris
o caracteristica a IDE-ului care se executa pentru reducerea amprentei de memorie a programului
o etapa a decompilatorului
o etapa a compilatorului
Care din urmatoarele faze nu fac parte din structura unui compilator
gestionarea tabelei de simboluri
analiza sintactica
analiza lexicala
JIT(just-in-time)
In teoria limbajelor formale, "<b>*</b>" reprezinta
operatorul de multiplicare
pointer
operatorul Kleene
operatorul concatenare
Un program translator este:
o componenta a sistemului de operare care incarca fisierele binare in memoria sistemului
o componenta a sistemului de operare care compileaza modulele progamului utilizator
un program care converteste programele scrise de utilizatori intr-un limbaj de programare in alt limbaj de programare
un program care converteste programele scrise de utilizatori intr-un limbaj accesibil calculatorului (cod-masina)
Daca masina destinatie(cea pentru care compilatorul trebuie sa genereze cod) poate sa difere de masina-sursa (cea pe care se executa compilatorul), procesul se numeste
just-in-time compiling
revenire din eroare a programului
cross-compiling
bytecode compiling
Gramatica reprezinta
o descriere precisa a unui limbaj, definita cu ajutorul unui alfabet
setul de caractere utilizat pentru definirea operatorilor pe multimile finite de simboluri
setul de caractere utilizat pentru implementarea unui alfabet
o descriere a regulilelor de derivare pentru un limbaj dat
O expresie regulata este
o secventa de caractere cu rol de sablon(pattern)
un identificator numeric
o variabila
un tip de instructie
Atomii lexicali sunt caracterizati prin
cantitatea de memorie ocupata
tip si valoare
constanta de memorie
lungime (nr. de caractere)
Arborele de derivare este
reprezentarea grafica a unei secvente de derivari
reprezentarea regulilor de derivare utilizant operatorul Kleene
reprezentarea grafica a unei reguli de productie
reprezentarea interna a starii unui program
Limbajul unei gramatici formale va defini
toate sirurile care pot fi generate cu simbolul de start dat si aplicand regulile de productie specificate, pana la epuizarea tuturor simbolurilor neterminate
tipul de simboluri care pot fi utilizate in cadrul acelei gramatici(terminale sau non-terminale)
atat alfabetul cat si cuvintele-cheie necesare descrierii unui limbaj formal
alfabetul necesar descrierii unui limbaj formal
In definirea gramaticilor P din tupla G(N,T,P,S) reprezinta
tipul limbajului de programare pe care se bazeaza respectiva gramatica
setul finit de reguli de productie
multimea nula
Compilatorul este
o aplicatie software care translateaza un program scris intr un limbaj de programare intr-o forma executabila de catre calculator
o aplicatie software care interactioneaza cu memoria sistemului pentru a determina arhitectura acestuia (32/64 biti)
o aplicatie software rezidenta in memoria care executa instructiuni preluate de la utilizator, scrise intr-un limbaj de programare de nivel inalt
o aplicatie software care incarca in memorie un program scris intr-un limbaj de nivel inalt
"Revenirea din eroare" semnifica
afisarea codului de eroare pentru eroarea curenta detectata in codul sursa
oprirea executiei unui program care s-a blocat prin utilizarea combinatiei de taste "Ctrl+c"
tratarea erorilor detectate si continuarea procesului de compilare(daca e posibil)
resetarea memoriei sistemului
Outputul unui compilator consta din
un fisier c/c++
un fisier executabil
fisier(e)-obiect sau erori
un scanner de stringuri
Un alfabet reprezinta
o baza de numeratie
o multime finita de simboluri(caractere si cifre)
literele(fara semnele speciale) ce se pot utiliza pentru a scrie un program
caracterele ASCII de baza ce se pot utiliza pentru a scrie un progam
Identificatorii utilizati in programul-sursa sunt stocati
nu sunt stocati, ci elimnati imediat dupa cifre
in macrouri
in memoria swap
in tabela de simboluri
In definirea gramaticilor S din tupla G(N,T,P,S) reprezinta
multimea de simboluri ce vor fi utilizate in gramatica, inclusiv multimea vida
simbol de start pentru gramatica
multimea de simboluri ce vor fi utilizate in gramatica
simbol de stop pentru gramatica
O gramatica specifica
setul de operatiuni ce se pot efectua asupra unui limbaj
setul de siruri ce pot fi considerate ca fiind cuvinte sau declaratii valide in limbajul respectiv
caracterele utilizate pentru descrierea unui limbaj
setul de operatiuni ce se pot efectua asupra unui alfabet
O gramatica se poate utiliza pentru
determinarea apartenentei unui caracter din alfabet la un limbaj dat
determinarea apartenentei unui sir la un limbaj dat
generarea de noi alfabete finite, mai avansate
generarea de noi alfabete, mai avansate
Arborele de derivare se poate construi
top-down sau bottom-up
circular
right-to-left
left-to-right
Iesirea analizatorului lexical consta din
un sir de atomi lexicali
un program executabil
un sir de perechi cheie-valoare
un sir de valori numerice ce descriu instructiunile din codul-surs
Expresiile regulate permit
detectia pozitiei tuturor subsirurilor identificate, identice cu subsirul cautat
detectia pozitiei tuturor subsirurilor identificate ce au aceeasi lungime ca substringul cautat
analiza lexicala a unui program
extragerea tuturor subsirurilor care au aceeasi structura cu sablonul definit