Sunteți pe pagina 1din 19

CEHTA

Metode de descriere a
construcțiilor gramaticale

Disciplina: Informatica
Grupul țintă: anul I
Țurcanu Alla, gr. did. II

2019-2020
Inițiere în limbajul Pascal
ANTET

PARTEA
DECLARATIVĂ

PARTEA
EXECUTABILĂ
Definirea unui limbaj de programare
Un limbaj de programare se definește prin sintaxa
și semantica lui.
 sintaxa este un set de reguli care guvernează alcătuirea
propoziţiilor;
 semantica este un set de reguli care determină
înţelesul, semnificaţia propoziţiilor.
În cazul limbajelor de programare, echivalentul
propoziţiei este programul.
Metalimbajul BNF
Cel mai răspîndit metalimbaj este BNF – Forma
Normală a lui Backus. El utilizează următoarele
simboluri:
 simbolurile terminale, adică simbolurile care apar
exact la fel și în programele PASCAL. De exemplu,
cifrele 0, 1, 2, ..., 9, literele A, B, C, ..., Z sînt
simboluri terminale;
 simbolurile neterminale, care desemnează unităţile
(construcţiile) gramaticale ale limbajului. Simbolurile
neterminale se înscriu între semnele “<” și “>”, de
exemplu <Litera>,<Cifra> sînt simboluri neterminale.
Formule metalingvistice
Descrierea sintaxei limbajului PASCAL constă
dintr-un set de formule metalingvistice.
Prin formulă metalingvistică vom înţelege o
construcţie formată din două părţi, stînga și dreapta,
separate prin simbolurile “::=” ce au semnificaţia de
“egal prin definiţie”. În partea stîngă a formulei se
găsește un simbol neterminal.
O formulă metalingvistică permite descrierea, în
partea ei dreaptă, a tuturor alternativelor posibile de
definire a simbolului neterminal, prin folosirea
caracterului “|” cu semnificaţia “sau”.
Exemple

sau
Formule metalingvistice
Î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.
Astfel:
definește construcţia gramaticală ca fiind o literă urmată
de o cifră.
Formule metalingvistice
În unele situaţii definirea unui simbol neterminal
se poate repeta de un număr oarecare de ori (chiar de
zero ori), fapt ce va fi marcat prin încadrarea lor în
acoladele {, }.
De exemplu, formula

Da: 0, 0000, 001, 1900, 35910


Nu: 3a5910
Exemplu
Formula

are următoarea semnificaţie: un identificator începe cu o


literă; după această literă poate urma o secvenţă finită de
litere sau cifre.

Da: a, a1, a1b, a23x, a14bxz


Nu: 2a
Formule metalingvistice
În cazul în care alternativele de definire a unui
neterminal sînt opţionale (pot lipsi), ele se încadrează în
parantezele drepte [, ]. De exemplu, formula

Da: 1, +1, –1, 20, +20, –20, +003


Nu: 3–5
Exercițiu
Sintaxa unui limbaj foarte simplu este descrisă
folosind următoarele formule metalingvistice:

Care din secvențele ce urmează sînt conforme defi


niției unității lexicale <Număr>?
Exercițiu
Care din secvențele ce urmează sînt conforme
definiției unității lexicale <Expresie aritmetică>?
Diagrame sintactice
Se consideră următoarele forme de reprezentare a
informației, utilizate în Egiptul Antic:
Prin ieroglife Prin imagini

Care din aceste forme de reprezentare a informației


este mai intuitivă? Argumentați răspunsul.
Diagrame sintactice
Este cunoscut faptul că comunicarea om-calculator
poate fi realizată prin utilizarea următoarelor tipuri de
interfețe:

Care din aceste interfețe este mai simplă și mai


comodă în utilizare? Argumentați răspunsul.
Diagrame sintactice
Diagramele sintactice descriu mai clar sintaxa
unui limbaj de programare.
Fiecărui simbol terminal îi corespunde un cerc sau
un oval în care se înscrie simbolul respectiv. Simbolurile
neterminale se înscriu în dreptunghiuri. Ovalurile și
dreptunghiurile se reunesc conform diagramelor de mai
jos.
Diagrame sintactice
Exercițiu
Reprezentați cu ajutorul diagramelor sintactice formula
BNF de mai jos:
<Zi> ::= Luni | Marți | Miercuri | Joi | Vineri | Sâmbătă | Duminică
Exercițiu
Scrieți formulele BNF care corespund
diagramelor sintactice din figura de mai jos.
Tema pentru acasă
Exercițiul 4, pag. 12 din manual de informatică,
clasa a noua.