Documente Academic
Documente Profesional
Documente Cultură
01 Curs 05.10.2015
**************************
Importana domeniului Error: Reference source not found pag. 7
Ce este un compilator Error: Reference source not found pag. 11
Limbajele de programare Error: Reference source not found
pag. 3
**************************
02 Curs 12.10.2015
**************************
Descrierea sintaxei i semanticii unui limbaj Error:
Reference source not found pag. 3
| <expresie> <expresie>
| <variabila >
| NUMR
Aici apar dou tokenuri: LITERA i NUMR. Acestea pot la rndul lor s fie descrise prin
acelai mecanism:
LITERA > a | b | c | d | e | f | g | h | i | j | k | 1 | m | n | o | p | q | r | s | t | u | v | w | x | y | z
NUMR > < cifra > | NUMR < cifra >
<cifra> > 0|1|2|3|4|5|6|7|8|9
**************************
03 Curs 19.10.2015
**************************
1.3. Specificarea unui limbaj de programare
2.
ANALIZA LEXICAL 22
22
18
if (x==z) {x = y;}
Etapa de clasificare necesit ca fiecrui atom lexical s i se asocieze o singur clas de
apartenen. n cazul n care un atom nu poate fi asociat nici unei clase, adic nu respect condiiile
de apartenen la clasa respectiv, atunci analiza lexical se termin cu insucces: a fost detectat o
eroare lexical.
Algoritmul 2.1 Analiza lexical - versiunea 1
while (mai exist caractere necitite n surs) do
detectare (atom);
clasificare(atom);
codificare(atom)
end while
Clasele de atomi
Clasele de atomi corespunztoare oricrui limbaj de programare au menirea de a descrie toate
entitile importante dintr-un limbaj:
identificatori;
constante;
operatori;
separatori (delimitatori).
expresii regulare;
automate finite.
2.2. Codificare
Tabelul urmtor prezint o astfel de codificare parial. n realitate, fiecare atom lexical are un
cod ataat.
Tabel de coduri
Astfel
rezultatul
Atom
Cod
Identificato
r
Constant
==
10
11
12
13
14
15
16
if
17
else
18
for
19
while
20
do
21
...
...
analizei
lexicale,
numit
Forma
Intern
if (x==z) {x = y;}
Cod Atom
17
11
1
10
1
12
13
1
15
1
16
14
Poziie n TS
0
0
1
0
3
0
0
1
0
2
0
0
if (x==z) {x = y;}
27
**************************
04 Curs 26.10.2015
**************************
Gramatic
Definiie:
Ansamblul G = ( N, , P, S ) unde:
Teorem: 3
Soluia ecuaiei de forma X = X.a + b
este X = b.a*
Se d automatul finit urmtor, care reprezint o gramatic regular. S se calculeze expresia
regular corespunztoare.
Error: Reference source not found. Error: Reference source not found
Error: Reference source not found. Error: Reference source not found
3
Error: Reference source not found. Error: Reference source not found
2
05 Curs 02.11.2015
**************************
SUBIECT DE EXAMEN S se explice forma regular a constantei
ntregi fr semn.
2.
Prima cifr este nenul, exceptnd constanta 0 sau numerele subunitare, de exemplu 0.56.
Forma BNF a unei constante:
<cifra_nenula> > 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<cifra> > <cifra_nenula> | 0
<intreg> > <cifra_nenula> | <intreg><cifra>
n limbajul BNF nu am introdus <intreg> egal cu numrul 0.
Error: Reference source not found. Error: Reference source not found
Error: Reference source not found. Error: Reference source not found
| <expresie> <expresie>
| <variabila >
| NUMR
Aici apar dou tokenuri: LITERA i NUMR. Acestea pot la rndul lor s fie descrise prin
acelai mecanism:
LITERA > a | b | c | d | e | f | g | h | i | j | k | 1 | m | n | o | p | q | r | s | t | u | v | w | x | y | z
NUMR > < cifra > | NUMR < cifra >
<cifra> > 0|1|2|3|4|5|6|7|8|9
SUBIECT DE EXAMEN
Un exemplu de program n minilimbajul de programare descris mai sus este urmtorul:
Se va da o alt secven de program.
gramatic (BNF) ce descrie un minilimbaj de programare
begin a = b + c; d = 5 a end
Compilatorul folosete doar atomi recunoscui de el.
derivare a acestui program n gramatica dat este (Pentru fiecare derivare s se scrie
producia corespunztoare):
<program>
(=> derivare)
<lista de instructiuni> > <lista_de_instructiuni> <instructiune>
(> producie)
=>
begin
begin
=>
begin
<variabila>
=>
begin
<expresie>
=>
begin
begin
begin
begin
begin
<variabila>
=>
> LITERA
<expresie>
=>
<variabila>
=>
<expresie>
=>
> LITERA
> LITERA
begin
variabila>
=>
begin
<expresie>
=>
begin
begin
begin
begin
<variabila>
=>
> NUMR
<expresie>
=>
<expresie>
=>
> LITERA
> LITERA
(=> derivare)
<instructiune> > <variabila> = <expresie>
(> producie)
=>
<variabila> = <expresie>
<variabila>
=>
=>
=>
> NUMR
=>
=>
> LITERA
> LITERA
06 Curs 09.11.2015
**************************
SUBIECT DE EXAMEN
Automat_finit_identificator
2. Identificator:
Identificator: ir de caractere care ncepe obligatoriu cu o liter, conine doar caractere
alfanumerice (litere sau cifre) i eventual unele caractere speciale (_, #), dar n mod
categoric nu spaiu.
Regula BNF pentru Identificator:
<cifra > > 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<litera> = A | B | ... | Z | a | b | ... | z
<special> = _ | #
<identificator> = <litera> | <identificator><litera> | <identificator><cifra> |
<identificator><special>
Gramatic regular pentru Identificator:
cifra = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9
litera = A + B + ... + Z + a + b + ... + z
special = _ + #
identificator =litera (litera + cifra + special) *
(un identificator este o secven de caractere alfanumerice sau speciale, din care prima
este obligatoriu liter).
Identificator
3. Cuvinte rezervate:
Rezervat = if + else + for + do + ...
4. Operatori:
operator = + + + * + ... + < + > + == + ... + && + ! + |
+ ...
5. Separatori:
separator = ( + ) + { + } + ; + ...
1.4.
Tabela de simboluri
adresare deschis;
nlnuire (sau zon auxiliar),
6
Error: Reference source not found. Error: Reference source not found pag. 30.
Subiecte de exmen
Tabele de dispersie cu nlnuire
07 Curs 16.11.2015
**************************
3.1. Analizor sintactic descendent cu reveniri
46
**************************
08 Curs 23.11.2015
**************************
3. Automate finite7
Mulimea configuraiilor
(s, i, , )
configuraie [er87):
Expandare
Avans
Revenire
Alt ncercare
Succes
7
8
Error: Reference source not found. Error: Reference source not found
Error: Reference source not found. Error: Reference source not found pag. 49.
**************************
09 Curs 30.11.2015
**************************
Sfntul Andrei
zi liber
**************************
10 Curs 07.12.2015
**************************
**************************