Extras din referat
Un compilator este un program traducător ce transformă programe scrise într-un limbaj sursă în echivalentele lor scrise într-un limbaj obiect. Limbajul sursă este de obicei un limbaj de programare de nivel înalt, iar limbajul obiect este de obicei limbajul mașină al computerului. Prin translator (compilator) se definește o anumită semantică a limbajului de programare și transformă operațiile date în mod sintactic în operații ale modelului de calcul al unei mașini virtuale sau reale. Deoarece traducerea este ghidată de sintaxa limbajului sursă, traducerea aceasta este numită ”syntax-directed translation” adică ”traducere bazată pe sintaxă” sau, mai bine zis, ”traducere dirijată de sintaxă”.
De foarte mult timp, oamenii încearcă să programeze computerele pentru a trata limbile naturale, limbile vorbite de oameni mai degrabă decât de computere, o sarcină care se dovedește extrem de dificilă.
Parsarea este procesul de potrivire a simbolurilor gramaticale cu elementele din datele de intrare, în conformitate cu regulile gramaticii.
Există o mulțime de generatoare de compilatoare mai sofisticate decât perechea Flex, Bison, unele folosite în medii universitare. Există și metode de specificare mai evoluate (de exemplu Viena Definition Method). Din nefericire ori softul este inaccesibil cititorilor, ori are licență proprietară, ori rulează pe cine știe ce computer Sun Sparc Station pe care nu-l avem la dispoziție noi, utilizatorii de pc-uri. Ori pur și simplu nu putem găsi software-ul ori documentația.
Bison este un produs al Free Software Foundation disponibil sub licența GNU General Public License, care permite utilizarea codului său generat fără a declanșa cerințele copyleft ale licenței.
Gramatica limbilor naturale este extrem de complexă și nu este ușor de scris sau de manipulat în software.
Bison este un generator de parser (analizor sintactic) scris între 1975 și 1978 de către Stephen C. Johnson la Bell Labs. Acesta primește la intrare gramatica unui limbaj pe care îl translatează unui parser pentru acel limbaj. Gramaticile pentru Bison sunt descrise folosind o variantă a BNF (Backus Naur Form).
Gramaticile BNF pot fi folosite pentru limbaje independente de context.
Parserele generate cu Bison pot folosi una din următoarele metode de parsare:
LALR(1) - Look Ahead Left to Right with a one-token lookahead
GLR - Generalized Left to Right
Majoritatea parserelor folosesc LALR(1) care are mai puține capabilități însă este semnificativ mai rapid și mai ușor de folosit decât GLR.
Preview document
Conținut arhivă zip
- Translator Bison.docx