Analizatorul Lexical

Proiect
8/10 (1 vot)
Conține 2 fișiere: doc, cpp
Pagini : 17 în total
Cuvinte : 1493
Mărime: 78.50KB (arhivat)
Publicat de: Alin Ardeleanu
Puncte necesare: 7
Profesor îndrumător / Prezentat Profesorului: Marusic Galina
UNIVERSITATEA TEHNICA a MOLDOVEI FACULTATEA CALCULATOARE, INFORMATICA si MICROELECTRONICA CATEDRA:Automatica si tehnologii informationale

Extras din proiect

Scopul lucrarii:

1. În descrierea neformală a unui limbaj dată să se evidenţieze lexemele. Pentru fiecare tip de lexemă să se construiască un automat finit, care acceptă lexeme corecte.

2. Determinaţi dacă automatele construite sunt deterministe.

3. Dacă automatul finit nu este detrminist, să se construiască pentru el un automat finit determinist echivalent.

4. Construiţi schema analizatorului lexical pentru limbajul dat.

5. Testaţi lucrul analizatorului lexical pe 5 şiruri de intrare corecte şi 3 şiruri, care conţin lexeme incorecte sau simboluri neacceptate de limbaj, construind pentru aceste şiruri:

- Vectorul sintaxic;

- Vectorul semantic;

- Completarea tabelului pentru fiecare tip de lexemă.

6. Elaboraţi un program pentru analizatorul lexical şi demonstraţi lucrul programului pentru şirurile de intrare construite.

Sarcina lucrarii

. Se examinează un limbaj simplu de programare, obţinut din limbajul ALGOL-68.

<program> → BEGIN <consecutivitate de descrieri> ;

<consecutivitate de instrucţiuni>

END

<consecutivitate de descrieri> → <descriere>

<consecutivitate de descrieri> → <descriere>, <consecutivitate de descrieri>

<descriere> → <tip><listă de identificatori>

<tip> → BOOL

<tip> → INT

<tip> → REF<tip>

<listă de identificatori> → <identificator >

<listă de identificatori> → <identificator>,<listă de identificatori>

<consecutivitate de instrucţiuni> → <instrucţiune>

<consecutivitate de instrucţiuni> → <instrucţiune>; <consecutivitate de instrucţiuni>

<instrucţiune> → <instrucţiune de atribuire>

<instrucţiune> → <instrucţiune IF> |

<instrucţiune> → <instrucţiune WHILE>

<instrucţiune de atribuire> → <identificator>:=<expresie>

< instrucţiune IF> → IF <expresie> THEN <consecutivitate de instrucţiuni> FI

< instrucţiune IF> → IF <expresie> THEN <consecutivitate de instrucţiuni > ELSE

<consecutivitate de instrucţiuni> FI

<instrucţiune WHILE> → WHILE<expresie> DO

<consecutivitate de instrucţiuni>

END

Gramatica: G = {VN,VT,P ,S }

VN= {P,A,B,C,T,L,I,N,R,F,W,E }

VT = {begin,bool,int,ref,end, ; , , , :=, then,else,if,while,fi,do }

P={ 1.P->begin A;B end

2.A->C,A

3.C->TL

4.T->bool

5.T->int

6.T->ref T

7.L->I

8.L->I,L

9.B->N

10.B->N,B

11.N->R

12.N->F

13.N->W

14.R->F:=E

15.F->if E then B fi

16.F->if E then B else B fi

17.W->while E do B}

1. Tabelul şi codul lexemelor pentru limbajul dat:

LEXEMA COD

begin 0

end 1

bool 2

int 3

ref 4

:= 5

if 6

while 7

then 8

else 9

do 10

fi 11

<identificator> 12

<expresie> 13

Automatele finite, care acceptă lexeme corecte pentru identificatori,expresii , сuvinte auxiliare:

AF pentru cuvinte auxiliare (determinist).

Preview document

Analizatorul Lexical - Pagina 1
Analizatorul Lexical - Pagina 2
Analizatorul Lexical - Pagina 3
Analizatorul Lexical - Pagina 4
Analizatorul Lexical - Pagina 5
Analizatorul Lexical - Pagina 6
Analizatorul Lexical - Pagina 7
Analizatorul Lexical - Pagina 8
Analizatorul Lexical - Pagina 9
Analizatorul Lexical - Pagina 10
Analizatorul Lexical - Pagina 11
Analizatorul Lexical - Pagina 12
Analizatorul Lexical - Pagina 13
Analizatorul Lexical - Pagina 14
Analizatorul Lexical - Pagina 15
Analizatorul Lexical - Pagina 16
Analizatorul Lexical - Pagina 17

Conținut arhivă zip

  • Analizatorul Lexical.CPP
  • Analizatorul Lexical.doc

Alții au mai descărcat și

Grilă sisteme informaționale de gestiune - Access

Adăugarea de câmpuri la o tabelă se face în modul de vizualizare:...... Previzualizare inaintea imprimarii Aplicarea unei restrictii de...

Hackeri

Hackerii sunt pasionati ai informaticii, care, de obicei au ca scop „spargerea” anumitor coduri, baze de date, pagini web etc. Ei sunt considerati...

Baze de Date

3.Introducere in bd si sgbd-uri Definitie: Numim baza de date o colectie partajata de date aflata in interdependenta logica impreuna cu o...

Limbaje Formale și Automate

1 Introducere - organizarea unui compilator Un compilator este un program complex care realizează traducerea unui program sursă într-un program...

Te-ar putea interesa și

Dificultăți de Traducere a Textelor Juridice din Engleză în Română

ADNOTARE Dificultăți de traducere a textelor juridice din engleză în română. Structura tezei. Teza cuprinde adnotări în limbile engleză și...

Sisteme de operare

Argument În general, interacţiunea dintre calculator şi utilizator poate fi descrisa la nivel simplist astfel: primul lansează în execuţie...

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...

Lexical Difficulties în Translating Legal Texts

INTRODUCTION The Course Paper Lexical Problems in Technical Translation is devoted to highlight the continuing evolvement of the translation...

Analiza lexicală a romanului Vetrele fumegă în amurg de Bogdan Stihi

Introducere Actualitatea temei. În scrierea artistică, în opera literară de orice gen şi spe¬cie, cuvântul e singurul mijloc prin care sânt...

Compilatoare

Grace Murray Hooper a fost o figură importantă în domeniul informaticii. Aceasta a fost un ofiţer în marina militară a Statelor Unite ale Americii...

Macroprocesoare

Macroinstrucţiunea este o scriere comodă a unor grupuri de instrucţiuni folosite mai des. Într-un asamblor, care corespunde unui limbaj construit...

Java

Clase pentru aplica]ii Execu]ia programului unei aplica]ii începe prin apelul metodei main() din clasa primar. - Dac nu exist metoda main...

Ai nevoie de altceva?