Cuprins
- Limbaje - introducere
Extras din curs
Evolutia vietii este insotita de o permanenta acumulare de experienta statistica, dobandita prin incercari directe ale unor subiecti activi. Pastrarea experientei si transmisia ei spre generatiile urmatoare prin diferite semne prezinta avantajul de a le furniza aceastora date, scutindu-le de efortul intregului proces de experimentare.
Suportul si forma de organizare a informatiei transmise a evoluat perpetuu, precum si mecanismele asociate de acumulare, pastrare si emisie. Forme de compresie si de protectie a informatiei au marit randamentul acestor mecanisme. Primele semne au fost concepute ca modificari ale unor stari stationare, pe un suport chimic, ADN, avand avantajul unei sigurante in functionare exceptionale, dar cu o durata mare intre innoiri. Semnalele au evoluat in diferite forme, generate si verificate de experienta umana indelungata si nemijlocita. Cea mai complexa organizare de semne grupeaza semnale sonore in sisteme lingvistice, folosind siruri de sunete, cuvintele, alcatuind dialecte sau limbaje, intervenind in comunicarea directa intre oameni pentru transmiterea de experienta.
Limbajul nu a facut decat sa reflecte mecanisme de gandire logica, inteleasa ca o reflectare a regulilor statisticii observatiilor, conform eperientei dobandite atat nemijlocit cat si prin acumulare de la generatiile anterioare. Fiecare limbaj este o varianta de mecanism de conservare si de transmisie de informatie, avand la baza un set de reguli de functionare construite conform legilor logicii. Setul de reguli proprii unui limbaj alcatuiesc gramatica acelui limbaj.
Activitatea de programare a masinilor de calcul este exercitata de un programator, in vederea exploatarii resurselor specifice de mecanisme rapide si fiabile de pastrare, redare si prelucrare de procese intelectuale, destinamdu-le rezolvarii unei aplicatii concrete.b
Semnul este o modificare a unei stari stationare.
Semiotica se ocupa cu studiul semnelor.
Semantica este o parte a semioticii care studiaza relatia intre semn si realitatea semnificata.
Limbajul este o colectie organizata de semne.
Sintaxa este o parte a semioticii care se ocupa cu regulie de definire a semnelor unui limbaj si cu relatiile stabilite intre cestea.
Gramatica este un set de regili de definire si de compunere a semnelor exprimand sintaxa unui limbaj.
Legile lexicate sunt un set de reguli gramaticale prin care de stabilesc tipurile si structura elementelor lexicale permise in reprezentarea limbajului.
Legile sintactice sunt setul de reguli gramatile care stabilesc regulile de compunere a elementelor lexicale in reprezentarea unui limbaj, in conformitate cu natura lexicala a semnelor.
Compilatorul este un program de transfer de la un limbaj de nivel inalt, care respecta legile unei gramatici relativ complexe, apropiata de mecanismele logice ale unui limbaj natural, la o reprezentare in cod masina, executabil pe o masina concreta.
Compilatorului simplifica activitatea unui programator de masini de calcul, folosind un limbaj apropiat de limbajul natural, structurat pe legile generale ale logicii.
Compilatorul asista programatorul in activitatea de conceptie, specificare, punere la punct si intretinere.
Analiza lexicala este operatia de examinare a unui text sursa din punct de vedere al diferitelor componente (tokens), implicand operatii de recunoastere si de clasificare.
Partea compilatorului care se ocupa cu analiza lexicala se numeste scaner .
Analiza sintactica este operatia de examinare a constructiei asertiunilor din elemente lexicale .Partea compilatorului care se ocupa cu analiza sintactica se numeste parser .
Generatorul de cod este un utilitar software care dispune de rezultatele analizei lexicale si a analizei sintactice a unui program sursa scris intr-un limbaj de nivel inalt in vederea transpunerii efective a programului sursa intr-o forma compatibila cu structura hardware a unei masini concrete. Generatorul de cod transpune un program abstract intr-un modul executabil de o masina, facand legatura de la conceptia abstracta la realitate.
Cele trei tipuri de activitati se indeplinesc de regula in sectiuni seprate ale unui compilator. Existenta celor trei zone ale compilatorului nu presupune obligatoriu trei parcurgeri succesive ale programului sursa, fiind uneori posibila o singura trecere, ca in cazul compilatoarelor interpretoare .
De exemplu, in expresia:
I := J + K I, J, K: integer
variabilele sunt identice din punctul de vedere lexical, astfel ca se aplica regula sintactica de compunere prin adunare in cadrul restrans al variabilelor intregi.
In expresia putin schimbata:
I := J + K I: integer; X, Y:real
variabilele sunt diferite punct de vedere lexical, astfel ca se aplica regulile gramaticale de conversie, prin care se specifica operatia de transformare a tipului intreg la tipul real.
Unitatea lexicala este token-ul. Token-urile sunt formatiuni de simboluri dispuse in siruri delimitate precis. Token-urile sunt caramizile cu care se construiesc asertiunile intr-un limbaj. Ele pot fi cuvinte rezervate, nume de variabile, operatori aritmetici sau logici.
Preview document
Conținut arhivă zip
- Compilatoare.DOC