Limbaje Formale și Translatoare

Curs
7/10 (2 voturi)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 78 în total
Cuvinte : 28497
Mărime: 327.61KB (arhivat)
Publicat de: Eva Marton
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Ecaterina Vladu
Cursul intreg pentru sectia Calculatoare: la materia LIMBAJE FORMALE SI TRANSLATOARE.

Extras din curs

1. Introducere Curs1 LFT

Limbajele de nivel înalt au o serie de avantaje în raport cu limbajele de asamblare. Pentru a putea însă folosi limbaje de nivel înalt, trebuie să existe posibilitatea de a converti programele scrise în aceste limbaje într-o formă binară. Această necesitate a dus la dezvoltarea translatoarelor sau compilatoarelor – programe care acceptă o reprezentare textuală a unui algoritm exprimat printr-un program sursă şi care produc o reprezentare a aceluiaşi algoritm exprimat într-un alt limbaj, limbajul obiect sau un limbaj echivalent.

Translatorul este deci un program care traduce programele scrise de utilizator (într-un limbaj) în programe echivalente (într-un alt limbaj). Dacă acestea din urmă sunt programe în cod maşină sau un limbaj apropiat de limbajul calculatorului, translatorul se numeşte compilator.

Programul utilizatorului se numeşte program sursă, iar programul în cod maşină obţinut se numeşte program obiect. Între cele două programe trebuie să existe o relaţie de echivalenţă în ceea ce priveşte efectul lor asupra calculatorului.

Execuţia unui program în limbaj simbolic are loc în două faze:

Faza 1. Compilarea: Program sursă  Compilator  Program obiect

Faza 2. Execuţia propriu-zisă: Date iniţiale ale programului  Program obiect  Rezultate

În faza de translatare, calculatorul execută programul compilator, iar în faza de execuţie propriu-zisă, calculatorul execută programul obiect, adică citirea datelor iniţiale, prelucrarea lor şi memorarea sau tipărirea rezultatelor.

Pentru scrierea unui compilator, trebuiesc foarte bine definite atât limbajul sursă, cât şi limbajul ţintă. Aceasta înseamnă că ambele limbaje trebuie să fie formale.

Un limbaj are două aspecte: sintaxă şi semantică. Sintaxa stabileşte care text este corect din punct de vedere gramatical, iar semantica stabileşte modul în care se derivă semnificaţia unui text corect din punct de vedere gramatical.

Există numeroase formalisme şi instrumente software pentru descrierea sintaxei unui limbaj formal. Pentru descrierea semanticii însă, formalismele şi instrumentele existente nu sunt atât de simple şi uşor de utilizat ca şi specificaţiile de sintaxă.

2. Clasificarea şi structura translatoarelor

Un translator poate fi definit formal ca o funcţie având domeniul de definiţie limbajul sursă şi mulţimea valorilor funcţiei limbajul obiect sau un limbaj echivalent (destinaţie).

În dezvoltarea translatoarelor, sunt implicate cel puţin trei limbaje: limbajul sursă de translatat, limbajul obiect sau destinaţie şi limbajul gazdă folosit la implementarea translatorului. Dacă translatarea are loc în mai multe etape, pot exista şi alte limbaje intermediare. Desigur, limbajul gazdă şi limbajul obiect nu sunt cunoscute de utilizatorul limbajului sursă.

2.1. Diagrame T

Pentru descrierea programelor şi în particular a compilatoarelor, există o reprezentare schematică consacrată, numită diagramă T, introdusă de Bratman în 1961.

O diagramă T pentru un program general este de forma:

O diagramă T pentru un translator general este de forma:

2.2. Clasificarea translatoarelor.

- Asamblorul. Termenul de asamblor este asociat cu translatoarele care transformă instrucţiuni scrise în limbaj de nivel coborât în cod maşină, care poate fi executat direct. De obicei liniile individuale ale programului sursă corespund cu o instrucţiune la nivel maşină. Rolul asamblorului este deci să convertească reprezentările simbolice ale instrucţiunilor în configuraţii de biţi, reprezentând echivalentele în cod-maşină ale instrucţiunilor.

- Macroasamblorul este un asamblor care permite utilizarea macrodefiniţiilor. El utilizează o primă trecere şi pentru colectarea macrodefiniţiilor.

Rezultatul asamblării este un text în formă binară în care doar referinţele externe sunt păstrate în formă simbolică în tabele asociate secţiunilor. Codul binar al secţiunilor este însoţit de informaţii ce indică locul referinţelor relocabile pentru ca, în momentul încărcării, valorile acestora să se poată transforma în referinţe absolute.

Combinarea acestor secţiuni într-un program executabil se face prin rezolvarea referinţelor externe (înlocuirea numelor simbolice cu adrese de memorie) şi adăugarea eventual a rutinelor din bibliotecile standard, şi ele păstrate sub formă relocabilă. Aceste operaţii sunt deobicei făcute de un editor de legături ( linkage editor). Programul furnizat de acesta este adus în memorie de încărcător (loader).

- Compilatorul este de obicei un translator care traduce instrucţiuni de nivel înalt în cod maşină, care poate fi executat direct. Liniile individuale din programul sursă corespund de obicei cu mai multe instrucţiuni la nivel maşină.

- Preprocesorul este un translator care traduce dintr-un superset al unui limbaj de nivel înalt în limbajul de nivel înalt original, sau care face simple substituiri de text înainea procesului de translatare propriu-zis. De exemplu, există numeroase preprocesoare de FORTRAN structurat care traduc din versiuni structurate ale FORTRAN-ului în FORTRAN obişnuit.

- Translatorul de nivel înalt este un translator care traduce un limbaj de nivel înalt într-un alt limbaj de nivel înalt, pentru care există deja compilatoare sofisticate pentru un număr mare de maşini.

- Interpretorul este un program care, primind un program sursă, îl prelucrează în prealabil pentru a-l aduce într-o formă mai simplă, după care îl execută simulând execuţia în limbaj sursă. Forma intermediară executată de de interpretor este de fapt un alt limbaj mai simplu, mai apropiat de limbajele de asamblare. Principalul avantaj al folosirii unui interpretor este portabilitatea foarte simplă a unui limbaj, prin implementarea maşinii virtuale pe un nou hardware. În plus, deoarece instrucţiunile sunt interpretate şi executate în timpul rulării, pot fi implementate limbaje foarte flexibile.

- Compilatoarele incrementale îmbină calităţile compilatoarelor cu cele ale interpretoarelor. Programul sursă este divizat de compilator în mici porţiuni numite incremente. Acestea prezintă o oarecare independenţă sintactică şi semantică faţă de restul programului. Incrementele sunt traduse de compilator. Execuţia are loc interpretativ, permiţându-se intervenţia utilizatorului atât în timpul compilării cât şi în timpul execuţiei.

- Decompilatorul sau dezasamblorul sunt tremeni care se referă la translatoare care au ca intrare un cod obiect şi regenerează codul sursă într-un limbaj de nivel mai înalt. În timp ce acest lucru se poate realiza destul de bine pentru limbaje de asamblare, este mult mai dificil de implementat pentru limbaje de nivel înalt cum ar fi C, Pascal.

Preview document

Limbaje Formale și Translatoare - Pagina 1
Limbaje Formale și Translatoare - Pagina 2
Limbaje Formale și Translatoare - Pagina 3
Limbaje Formale și Translatoare - Pagina 4
Limbaje Formale și Translatoare - Pagina 5
Limbaje Formale și Translatoare - Pagina 6
Limbaje Formale și Translatoare - Pagina 7
Limbaje Formale și Translatoare - Pagina 8
Limbaje Formale și Translatoare - Pagina 9
Limbaje Formale și Translatoare - Pagina 10
Limbaje Formale și Translatoare - Pagina 11
Limbaje Formale și Translatoare - Pagina 12
Limbaje Formale și Translatoare - Pagina 13
Limbaje Formale și Translatoare - Pagina 14
Limbaje Formale și Translatoare - Pagina 15
Limbaje Formale și Translatoare - Pagina 16
Limbaje Formale și Translatoare - Pagina 17
Limbaje Formale și Translatoare - Pagina 18
Limbaje Formale și Translatoare - Pagina 19
Limbaje Formale și Translatoare - Pagina 20
Limbaje Formale și Translatoare - Pagina 21
Limbaje Formale și Translatoare - Pagina 22
Limbaje Formale și Translatoare - Pagina 23
Limbaje Formale și Translatoare - Pagina 24
Limbaje Formale și Translatoare - Pagina 25
Limbaje Formale și Translatoare - Pagina 26
Limbaje Formale și Translatoare - Pagina 27
Limbaje Formale și Translatoare - Pagina 28
Limbaje Formale și Translatoare - Pagina 29
Limbaje Formale și Translatoare - Pagina 30
Limbaje Formale și Translatoare - Pagina 31
Limbaje Formale și Translatoare - Pagina 32
Limbaje Formale și Translatoare - Pagina 33
Limbaje Formale și Translatoare - Pagina 34
Limbaje Formale și Translatoare - Pagina 35
Limbaje Formale și Translatoare - Pagina 36
Limbaje Formale și Translatoare - Pagina 37
Limbaje Formale și Translatoare - Pagina 38
Limbaje Formale și Translatoare - Pagina 39
Limbaje Formale și Translatoare - Pagina 40
Limbaje Formale și Translatoare - Pagina 41
Limbaje Formale și Translatoare - Pagina 42
Limbaje Formale și Translatoare - Pagina 43
Limbaje Formale și Translatoare - Pagina 44
Limbaje Formale și Translatoare - Pagina 45
Limbaje Formale și Translatoare - Pagina 46
Limbaje Formale și Translatoare - Pagina 47
Limbaje Formale și Translatoare - Pagina 48
Limbaje Formale și Translatoare - Pagina 49
Limbaje Formale și Translatoare - Pagina 50
Limbaje Formale și Translatoare - Pagina 51
Limbaje Formale și Translatoare - Pagina 52
Limbaje Formale și Translatoare - Pagina 53
Limbaje Formale și Translatoare - Pagina 54
Limbaje Formale și Translatoare - Pagina 55
Limbaje Formale și Translatoare - Pagina 56
Limbaje Formale și Translatoare - Pagina 57
Limbaje Formale și Translatoare - Pagina 58
Limbaje Formale și Translatoare - Pagina 59
Limbaje Formale și Translatoare - Pagina 60
Limbaje Formale și Translatoare - Pagina 61
Limbaje Formale și Translatoare - Pagina 62
Limbaje Formale și Translatoare - Pagina 63
Limbaje Formale și Translatoare - Pagina 64
Limbaje Formale și Translatoare - Pagina 65
Limbaje Formale și Translatoare - Pagina 66
Limbaje Formale și Translatoare - Pagina 67
Limbaje Formale și Translatoare - Pagina 68
Limbaje Formale și Translatoare - Pagina 69
Limbaje Formale și Translatoare - Pagina 70
Limbaje Formale și Translatoare - Pagina 71
Limbaje Formale și Translatoare - Pagina 72
Limbaje Formale și Translatoare - Pagina 73
Limbaje Formale și Translatoare - Pagina 74
Limbaje Formale și Translatoare - Pagina 75
Limbaje Formale și Translatoare - Pagina 76
Limbaje Formale și Translatoare - Pagina 77
Limbaje Formale și Translatoare - Pagina 78

Conținut arhivă zip

  • Limbaje Formale si Translatoare.doc

Alții au mai descărcat și

Placă de Rețea

Cum sa realizam - conexiune a mai multor calculatoare la un modem de cablu TV. Dupa realizarea acestei conexiuni se va verifica daca...

Baze de Date Access

Capitolul 1. Utilizarea aplicaţiei Access Concepte generale privind bazele de date Evoluţia diferitelor metode şi tehnici de organizare a...

Bazele Matematice ale Graficii 2D

Transformarea de vizualizare. Pentru a prezenta grafic figuri şi imagini trebuie să dispunem de informaţii despre acestea. În general, aceste...

Ingineria programării

În “Ghidul cunoștințelor esențiale referitoare la Ingineria Programării” (Guide to the Software Engineering Body of Knowledge -...

Sisteme informatice și gestiunea bazelor de date

Capitolul 1 Sisteme de gestiune a bazelor de date. Funcţii. Arhitectură. Tipuri de SGBD-uri Un sistem de gestiune a bazelor de date (SGBD)...

Tehnici avansate de programare

Capitolul 1. Algoritmi. Elemente de analiză a complexităţii algoritmilor 1.1. Algoritmi. Recapitulare Etapele rezolvării unei probleme cu...

Algoritmi și Structuri de Date

ALGORITMI. METODE DE DESCRIERE A ALGORITMILOR 1.1 Scurt istoric În secolul al IX-lea d.Hr., un matematician persan, Abu Abdullah Muhammed bin...

Baze de Date

CAPITOLUL I. PROIECTARE (DESIGN) DE DATE CURS 1. Preliminarii Bazele de date reprezintă un instrument indispensabil pentru sistemele...

Te-ar putea interesa și

Instrumente UML

Smart Choice UML este o lucrare de cercetare care are ca scop analiza instrumentelor UML disponibile pentru proiectarea sistemelor informatice de...

Procesarea informației nestructurate

I. EXPRESII REGULATE 1. Introducere Ce este o expresie regulată- O expresie regulată, pe scurt denumită şi RegEx sau RegExp, este un şir de...

Diferențe culturale în cercetările de marketing

1. Cercetarea de marketing international În conditiile complexe ale pietei internationale, cercetarea de marketing devine vitala pentru...

Aplicație grafică - conquest

I. 1. Descrierea Programului Programul reprezinta o aplicatie a unit-ului graph, un joc simplu de strategie (gen TBS, daca ar fi sa-l incadram in...

Analiza și proiectarea obiectuală

CAPITOLUL1 METODOLOGII MODERNE DE REALIZARE A SISTEMELOR INFORMATICE 1.1. Concepte de bază ale paradigmei obiectuale Aplicată mai întâi în...

Conceptele Fundamentale ale Limbajelor de Programare

INTRODUCERE Obiectul disciplinei: limbajele de programare Obiective: · Studiul conceptelor fundamentale care stau la baza proiectării...

Inginerie Software

Fazele dezvoltării unui produs software 1 Ce este ingineria programării? 2. Fazele ingineriei programării 2.1. Faza de analiză 2.2. Faza de...

Technici Euristice

Automate finite. Rolul lor în modelarea activităţilor din analiza lexicală[1] Un program de recunoastere pentru un limbaj este acel program care...

Ai nevoie de altceva?