Presentation is loading. Please wait.

Presentation is loading. Please wait.

Metalimbajul BNF. Vocabularul Profesor de informatic ă Cociorv ă Svetlana.

Similar presentations


Presentation on theme: "Metalimbajul BNF. Vocabularul Profesor de informatic ă Cociorv ă Svetlana."— Presentation transcript:

1 Metalimbajul BNF. Vocabularul Profesor de informatic ă Cociorv ă Svetlana

2 Metalimbajul BNF Un limbaj de programare se definete prin sintaxa i semantica lui. Sintaxa este un set de reguli care guvernează alcătuirea propoziţiilor, iar semantica este un set de reguli care determină înţelesul, semnificaţia propoziţiilor respective. În cazul limbajelor de programare, echivalentul propoziţiei este programul.

3 Cel mai răspîndit metalimbaj este cunoscut sub denumirea de BNF – Forma Normală a lui Backus. Metalimbajul BNF utilizează următoarele simboluri: simbolurile terminale, adică simbolurile care apar exact la fel i în programele PASCAL; Ex: cifrele 0, 1, 2,..., 9, literele A, B, C,..., Z simbolurile neterminale, care desemnează unităţile (construcţiile) gramaticale ale limbajului. Simbolurile neterminale se înscriu între semnele “ ”. Ex.:,

4 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”. De exemplu, formula ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 definește unitatea gramatical ă ca fiind unul din caracterele (simbolurile terminale) 0, 1,..., 9. Î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.

5 Astfel: ::= definește construcţia gramatical ă ca fiind o liter ă urmat ă de o cifr ă. Exemple:1) a9 2) x4; 3) a1 4) d0; 5) c3 6) e8 Sau ::= { | }

6 În unele situaţii alternativele 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 acoladele {, }. De exemplu, formula ::= { } definete simbolul neterminal ca o secvenţă nevidă de cifre. Secvenţele 0, 0000, 001, 1900, 35910 sînt conforme acestei definiţii, iar secvenţa 3a5910 – nu. Formula ::= { | } are următoarea semnificaţie: un identificator începe cu o literă; după această literă poate urma o secvenţă finită de litere sau cifre. Astfel, a, a1, a1b, a23x, a14bxz sînt conforme cu această definiţie, dar 2a – nu. Î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 ::= [+ | –] definete factorul de scală ca un număr întreg fără semn care poate fi precedat de + sau –. Astfel, 1, +1, –1, 20, +20, –20, +003 sînt conforme cu această definiţie, dar 3–5 – nu. Atragem atenţia asupra faptului că simbolurile [, ], {, } aparţin metalimbajului i nu trebuie confundate cu simbolurile corespunzătoare utilizate în limbaj

7 Alfabetul limbajului Alfabetul limbajului PASCAL este format din urm ă toarele caractere ale codului ASCII (American Standard Code for Information Interchange): cifrele zecimale; literele mari și mici ale alfabetului englez; semnele de punctuaţie; operatorii aritmetici și logici; caracterele de control și editare (spaţiu, sfîrșit de linie sau retur de car etc.). În unele construcţii ale limbajului pot fi folosite și literele alfabetelor naţionale, de exemplu literele ă, â, î, ş, ţ ale alfabetului român.

8 Vocabularul limbajului Cele mai simple elemente, alc ă tuite din caractere și înzestrate cu semnificaţie lingvistic ă, se numesc lexeme sau unit ă ţi lexicale. Acestea formeaz ă vocabularul limbajului PASCAL. Distingem urm ă toarele unit ă ţi lexicale: simboluri speciale și cuvinte-cheie; identificatori; numere; șiruri de caractere; etichete; directive

9 Simboluri speciale şi cuvinte-cheie

10

11 Unit ă ţile lexicale în studiu se definesc cu ajutorul urm ă toarelor formule BNF: ::= + | – | * | / | = | | ] | [ |, | ( | ) | : | ; | ^ |. | @ | { | } | $ | # | = | <> | := |.. | | ::= (* | *) | (. |.) ::= and | array | begin | case | const | div | do| downto | else | end | file | for | function |goto | if | in | label | mod | nil | not | of| or | packed | procedure | program | record| repeat | set | then | to | type | until |var | while | with De reţinut c ă simbolurile {, }, [ și ] utilizate în notaţia BNF sînt în același timp și elemente ale vocabularului PASCAL. Pentru a evita confuziile, aceste simboluri, ca elemente ale vocabularului, pot fi redate prin simbolurile echivalente (*, *), (. și respectiv.)


Download ppt "Metalimbajul BNF. Vocabularul Profesor de informatic ă Cociorv ă Svetlana."

Similar presentations


Ads by Google