next up previous contents
Next: Folosire Up: Facultatea de Calculatoare Proiect Previous: Iteratia ``foreach''   Cuprins

Intepretorul PLINT

Un interpretor se poate analiza din perspectiva asemanarilor si deosebirilor fata de un compilator. Pana la un anumit punct, cele doua se aseamana, adica au in comun faza de analiza lexicala si sintactica; de aici insa cele doua incep sa se deosebeasca.
Un compilator bunaoara in momentul detectarii indeplinirii unei reguli, se foloseste de simbolurile corespunzatoare regulii respective pentru a genera o secventa de cod intr-un limbaj de nivel mai jos. Deci interpretarea semantica consta in generarea de cod.
Un interpretor, in aceleasi circumstante, va efectua o actiune ce este de fapt un cod C ce ruleaza in cadrul interpretorului, deviind firul principal al programului acestuia. Prin urmare un interpretor se erijeaza temporar in programul sursa interpretat, asa incat interpretorul si programul sursa sunt unul si acelasi lucru. Mai mult, timpul de rulare al ``procesului'' programului sursa este inclus in cel de rulare al procesului intepretorului; spre deosebire, programul compilat de un compilator ruleaza intr-un proces separat, intr-un moment de timp ulterior terminarii procesului compilatorului.

Interpretorul plint este un program de sine statator, concretizat intr-un fisier executabil cu acelasi nume. Pentru a ajunge in aceasta forma, codul sursa al interpretorului trece prin mai multe faze. Codul sursa este in principal cod C, insa sunt folosite niste ``instrumente'' software care au fisiere text de intrare cu sintaxa proprie.
Linux este un sistem de operare destinat programatorului, si prevede in mod natural instalarea unor tooluri de analiza lexicala si/sau gramatica. Astfel pentru descrierea lexicului este folosit toolul flex, un analizor lexical bazat pe un fisier de descriere a formelor lexicale ca expresii regulate gramaticii, pentru descrierea gramaticii se foloseste aplicatia bison, un analizor gramatical si generator de actiuni semantice. Rezultatul acestor programe este crearea unor fisiere sursa C care pot fi compilate impreuna cu restul aplicatiei; aceasta integrare este realizat automat sub controlul toolului make, un program de construire de aplicatii prin recompilarea doar acelor module care se schimba, in decursulu procesului de dezvoltare. Se mai folosesc shell scripturille pentru o serie de prelucrari de fisiere text intermediare.

Toate fisierele se gasesc intr-un director oarecare in cadrul directorului radacina. Relativ la respectivul director, exista o ierarhie de directoare proprie aplicatiei, organizata intr-un mod care sa faca cat mai utila parcurgerea lui, precum si din punct de vedere logic, urmarind separarea entitatilor care sunt oarecum independente.

Limbajul fiind extensibil sintactic si semantic, suportul acestei insusiri consta in diferite fisiere sursa C, de lexic, sintaxa, construire si shell script. Afara de acestea, restul fisierelor constituie miezul aplicatie, adica acele fisiere esentiale, care dau o functionare si reprezentare minimala, necesara si suficienta (nu chiar suficienta, vezi extensia ``blitin''). Prin urmare, in continuare se va vorbi separat, pe rand, despre miez, extensii si modul cum se integreaza impreuna pentru a rezulta aplicatia finala plint.


Subsections
next up previous contents
Next: Folosire Up: Facultatea de Calculatoare Proiect Previous: Iteratia ``foreach''   Cuprins
Sebastian Glita 2002-06-19