Extras din curs
În acest capitol vom vedea ce este un compilator si vom descrie pe scurt fazele si componentele unui compilator.
Spus simplu, un compilator este un program care citeste un alt program scris într-un anumit limbaj, numit limbaj sursa si îl traduce într-un program echivalent în alt limbaj, numit limbaj destinatie (vezi Fig. 1.1.). O parte importanta a procesului de traducere o constituie si atentionarea utilizatorului asupra erorilor din programul sursa.
&1.1. Introducere
Principiile si tehnicile folosite în scrierea unui compilator sunt atît de cuprinzatoare încât multe dintre acestea pot fi folosite cu succes în multe alte cazuri. Scrierea unui compilator necesita cunostinte de programare, arhitectura calculatoarelor, limbaje formale si algoritmica.
Tehnicile utilizate în constructia compilatoarelor pot folosi si în alte domenii cum ar fi: editoare de texte, sisteme de regasire a informatiilor si recunoasterea formelor. De asemenea, limbajele independente de context si definitiile orientate pe sintaxa pot fi folosite pentru a construi minilimbaje ca acelea de tiparire sau de desenare a figurilor. Tehnicile de optimizare a codului au fost folosite în verificarea programelor si în producerea de programe structurate din unele nestructurate.
Un compilator este un program care are ca intrare un program sursa, scris într-un limbaj evoluat, iar ca iesire furnizeaza un program obiect. În timpul traducerii, compilatorul afiseaza mesajele de eroare, putând chiar sa corecteze anumite erori.
Exista mii de limbaje de programare, de la cele traditionale (FORTRAN, PASCAL) pâna la limbaje specializate aparute în diferite domenii ale aplicatiilor calculatoarelor. Cu cât programul sursa este scris într-un limbaj mai evoluat (mai apropiat de limbajul natural), cu atât structura compilatorului este mai complicata.
Limbajul obiect poate avea mai multe acceptiuni: alt limbaj de programare sau un limbaj masina pentru orice calculator între un microprocesor si un supercomputer.
Desi compilatoarele pot fi într-un singur pas, multi-pass, load-and-go (evita trecerea prin faze necesare numai programelor complexe – forma direct executabila) si altele, tehnicile de baza folosite sunt aceleasi.
Compilatoarele single-pass efectueaza o singura trecere asupra programului sursa, pe când cele multi-pass proceseaza de mai multe ori sursa
Primele compilatoare au început sa apara prin anul 1950, experimentarea si implementarea lor fiind facuta independent de grupuri diferite. Primele încercari de compilare au început cu traducerea expresiilor aritmetice în cod masina. În aceasta perioada, compilatoarele erau considerate programe deosebit de dificile. De exemplu, compilatorul FORTRAN (Backus s.a., 1957) a necesitat 18 ani de munca în echipa pentru implementare. De atunci s-au descoperit tehnici pentru rezolvarea principalelor probleme care apar în compilare, tehnici care au facut posibila scrierea unui compilator în cadrul unui proiect studentesc.
Compilatorul se compune din doua parti principale: analiza si sinteza. Partea de analiza realizeaza descompunerea programului sursa în parti constituente si crearea reprezentarii intermediare. Partea de sinteza construieste programul obiect dorit din reprezentarea intermediara.
Preview document
Conținut arhivă zip
- Tehnici de Compilare
- cap1
- Tehnici de Compilare.DOC
- cap2
- Cap2var-sem2.doc
- cap3
- cap-3-formule-28.doc
- cap4
- a-sim2.doc
- cap5
- Generare cod.doc