Documente Academic
Documente Profesional
Documente Cultură
Atomi lexicali:
– identificatori
– constante (literali)
– cuvinte cheie (cuvinte rezervate) spatiile "albe"
– operatori aritmetici, relationali, …
separatori
FIP TS
Cod atom Pozitie in TS Pozitie Atom Alte
Cod Atom lexical informatii
4
lexical 1 a …
0 1
0 ID 2 b …
3
1 CONST
0 2
2 :=
5
3 <
0 2
4 if
2
5 then 0 1
10/3/2022 3
Analiza lexicala (versiunea 1)
detecteaza
10/3/2022 4
Analiza lexicala (versiunea 2)
10/3/2022 5
Analiza lexicala (versiunea 3)
Altfel
Daca e identificator sau constanta
Daca nu exista deja in TS atunci adauga-l ; Sf. Daca
adauga in FIP codul coresp. atomului si pozitia in TS
altfel
Eroare
Sf.Daca
Sf. Daca
Sf.cattimp
10/3/2022 6
Analiza lexicala (versiunea 4)
Cat timp (mai exista caractere necitite in prg. sursa) ex
detecteaza atom
Daca atom e cuvant-cheie sau operator sau separator atunci
adaugaFIP(cod(atom), 0)
Altfel
Daca atom e identificator atunci
indice:=poz(atom,TS)
adaugaFIP((cod_id, indice)
altfel Daca atom e constanta atunci
indice:=poz(atom,TS)
adaugaFIP((cod_const, indice)
altfel
MesajEroare:, indicatie asupra erorii
sfDaca
Sf.Daca
Sf. Daca
Sf.cattimp
10/3/2022 7
Obs.: multe cautari in TS
++ urmatoarele faze !!
• TS fara organizare
- cautare secventiala
• organizare pt. cautare mai rapida
– ordonare (ordonata lexicografic)
• tabel ordonat lexicografic Probleme ?
• arbore binar de cautare echilibrat
– tabela de dispersie
cautare – fct. de dispersie
(hash)
.
10/3/2022 8
TS si programe cu mai multe blocuri
Obs.:
noi vom lucra doar cu
un singur bloc program
Cum se modifica
algoritmul de cautare
in TS?
10/3/2022 9