Limbaje formale si translatoare

Trimis la data: 2010-03-01
Materia: Informatica
Nivel: Facultate
Pagini: 96
Nota: 10.00 / 10
Downloads: 1
Autor: Bogdan Floea
Dimensiune: 312kb
Voturi: 1
Tipul fisierelor: doc
Acorda si tu o nota acestui curs:
Limbajele de nivel inalt au o serie de avantaje in raport cu limbajele de asamblare. Pentru a putea insa folosi limbaje de nivel inalt, trebuie sa existe posibilitatea de a converti programele scrise in aceste limbaje intr-o forma binara. Aceasta necesitate a dus la dezvoltarea translatoarelor sau compilatoarelor - programe care accepta o reprezentare textuala a unui algoritm exprimat printr-un program sursa si care produc o reprezentare a aceluiasi algoritm exprimat intr-un alt limbaj, limbajul obiect sau un limbaj echivalent.

Cursuri similare:

In faza de translatare, calculatorul executa programul compilator, iar in faza de executie propriu-zisa, calculatorul executa programul obiect, adica citirea datelor initiale, prelucrarea lor si memorarea sau tiparirea rezultatelor.Pentru scrierea unui compilator, trebuiesc foarte bine definite atat limbajul sursa, cat si limbajul tinta. Aceasta inseamna ca ambele limbaje trebuie sa fie formale.
Un limbaj are doua aspecte: sintaxa si semantica. Sintaxa stabileste care text este corect din punct de vedere gramatical, iar semantica stabileste modul in care se deriva semnificatia unui text corect din punct de vedere gramatical.

Exista numeroase formalisme si instrumente software pentru descrierea sintaxei unui limbaj formal. Pentru descrierea semanticii insa, formalismele si instrumentele existente nu sunt atat de simple si usor de utilizat ca si specificatiile de sintaxa.2. Clasificarea si structura translatoarelor Un translator poate fi definit formal ca o functie avand domeniul de definitie limbajul sursa si multimea valorilor functiei limbajul obiect sau un limbaj echivalent (destinatie).

Asamblorul. Termenul de asamblor este asociat cu translatoarele care transforma instructiuni scrise in limbaj de nivel coborat in cod masina, care poate fi executat direct. De obicei liniile individuale ale programului sursa corespund cu o instructiune la nivel masina. Rolul asamblorului este deci sa converteasca reprezentarile simbolice ale instructiunilor in configuratii de biti, reprezentand echivalentele in cod-masina ale instructiunilor. Macroasamblorul este un asamblor care permite utilizarea macrodefinitiilor. El utilizeaza o prima trecere si pentru colectarea macrodefinitiilor.

Rezultatul asamblarii este un text in forma binara in care doar referintele externe sunt pastrate in forma simbolica in tabele asociate sectiunilor. Codul binar al sectiunilor este insotit de informatii ce indica locul referintelor relocabile pentru ca, in momentul incarcarii, valorile acestora sa se poata transforma in referinte absolute.
Combinarea acestor sectiuni intr-un program executabil se face prin rezolvarea referintelor externe (inlocuirea numelor simbolice cu adrese de memorie) si adaugarea eventual a rutinelor din bibliotecile standard, si ele pastrate sub forma relocabila.
Home | Termeni si conditii | Politica de confidentialitate | Cookies | Help (F.A.Q.) | Contact | Publicitate
Toate imaginile, textele sau alte materiale prezentate pe site sunt proprietatea referat.ro fiind interzisa reproducerea integrala sau partiala a continutului acestui site pe alte siteuri sau in orice alta forma fara acordul scris al referat.ro. Va rugam sa consultati Termenii si conditiile de utilizare a site-ului. Informati-va despre Politica de confidentialitate. Daca aveti intrebari sau sugestii care pot ajuta la dezvoltarea site-ului va rugam sa ne scrieti la adresa webmaster@referat.ro.