1. Material didactic pentru elevii din cadrul
Colegiului Pedagogic “Ion Creangă”
la disciplina “Informatica”
Metode de descriere a
construcțiilor gramaticale.
Metalimbajul BNF.
Diagrame sintactice
Profesor:
Masliuc Alina
2. Un limbaj de programare se defineşte prin
sintaxa şi semantica lui:
Sintaxa este un set de reguli care guvernează
alcătuirea programelor;
Semantica este un set de reguli care determină
înţelesul, semnificaţia programelor respective.
2
3. Metalimbajul BNF
Sintaxa oricărui program poate fi descrisă cu
ajutorul unui limbaj de comunicare între oameni, de
exemplu limba română, engleză ect.
Pentru o descriere concisă și exactă a sintaxei
limbajelor de programare, s-au elaborat
limbajele speciale, denumite metalimbaje.
Cel mai răspîndit metalimbaj este cunoscut sub
denumirea de BNF – Forma Normală a lui
Backus.
3
5. 5
Simbolurile terminale sunt simbolurile
ce apar exact la fel şi în programul
Pascal;
Exemplu: cifrele 0, 1, 2, 3, ..., 9;
literele A, B, C, D, ..., Z .
6. 6
Simbolurile neterminale – desemnează
unităţile (construcţiile) gramaticale ale
limbajului;
Simbolurile neterminale se scriu între semnele
„<” şi „>”.
Exemplu: <cifra>
<litera>
7. 7
Descrierea sintaxei limbajului PASCAL constă dintr-un
set de formule metalingvistice.
Prin formulă metalingvistică vom înţelege o
construcţie formată din 2 părţi:
stînga - se găseşte un simbol neterminal;
dreapta - se găsesc simboluri terminale
separate prin anumite simboluri specifice cu o
anumită semnificaţie.
separate prin simbolul „::=” ce are semnificaţia egal
prin definiţie.
8. 8
Simbolurile specifice
│ - simbol cu semnificaţia sau;
{ } – alternativa cuprinsă între acolade poate fi
repetată de un număr oarecare de ori (chiar şi de zero
ori);
[ ] – alternativa între parantezele pătrate pot lipsi sau
pot să apară.
9. 9
Exemple de formule metalingvistice:
<Cifră> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<Literă> ::= a | b | c | d | e | f | g | h | i | j | k | l |m |
n | o | p | q | r | s | t | u | v | w | x | y | z
10. 10
În partea dreaptă a unei formule metalingvistice pot
apărea două și mai multe simboluri consecutive.
Situaţia corespunde operaţiei de concatenare
(alipire) a lor.
Exemplu: <Id> ::= <Literă><Cifră>
Acest exemplu definește construcţia gramaticală
<Id> ca fiind o literă urmată de o cifră.
exemple: a4
x9
e7
11. În unele situaţii alternative de definire a unui simbol
neterminal se pot repeta de un număr oarecare de ori
(chiar de zero ori), fapt ce va fi marcat prin încadrarea
lor în acolade { }.
11
Exemplu:
<Întreg fără semn> ::= <Cifră> {<Cifră>}
Acest exemplu definește simbolul neterminal
<Întreg fără semn> ca o secvenţă de cifre.
exemple: 0000 3a5910 - incorect
001
1900
12. În cazul în care alternativele de definire a unui
neterminal sînt opţionale (pot lipsi), ele se încadrează
în parantezele drepte [ ].
12
Exemplu:
<Factor scală> ::= [+ | –] <Întreg fără semn>
Acest exemplu definește factorul de scală ca un
număr întreg fără semn care poate fi precedat de
+ sau – .
exemple: + 1 3 - 5 - incorect
- 20
30
17. 17
Simbolurile terminale se înscriu în
cerc sau oval .
Simbolurile neterminale se înscriu în
dreptunghiuri.
Simbolurile specifice (operaţiile) – se
înscriu cu săgeţi.