arqèc glwss¸n programmatismoucnomikos/courses/pl/programminglanguagesbnf.pdf · epanalamb nontac...

74

Upload: others

Post on 23-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Arqèc Glwss¸n Programmatismou

Qr stoc Nomikìc

Tm ma Mhqanik¸n H/U kai Plhroforik cPanepist mio IwannÐnwn

2015

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 1 / 74

Page 2: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perieqìmena

1 SÔmbola, Alf�bhta kai Suntaktikèc Domèc

2 Perigraf  sÔntaxhc me BNF (Backus-Naur Form)

3 Perigraf  sÔntaxhc me suntaktik� diagr�mmata

4 Metatrop  BNF se suntaktik� diagr�mmata

5 Metatrop  suntaktik¸n diagramm�twn se BNF

6 ShmasiologÐa Glwss¸n ProgrammatismoÔ

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 2 / 74

Page 3: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perieqìmena

1 SÔmbola, Alf�bhta kai Suntaktikèc Domèc

2 Perigraf  sÔntaxhc me BNF (Backus-Naur Form)

3 Perigraf  sÔntaxhc me suntaktik� diagr�mmata

4 Metatrop  BNF se suntaktik� diagr�mmata

5 Metatrop  suntaktik¸n diagramm�twn se BNF

6 ShmasiologÐa Glwss¸n ProgrammatismoÔ

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 3 / 74

Page 4: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

SÔmbola, Alf�bhta kai Suntaktikèc Domèc

Alf�bhto onom�zetai èna peperasmèno sÔnolo sumbìlwn.

SumbolÐzoume me Σ∗ to sÔnolo ìlwn twn peperasmènwn akolouji¸napì sÔmbola pou an koun Σ.

Par�deigma 1. An Σ = {a, b, c} tìte

abacab ∈ Σ∗, a ∈ Σ∗, daa /∈ Σ∗

Par�deigma 2. An Σ = {+,-,0,1,2,3,4,5,6,7,8,9} tìte

-90876 ∈ Σ∗, 023+45-+ ∈ Σ∗, 0.345 /∈ Σ∗

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 4 / 74

Page 5: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

SÔmbola, Alf�bhta kai Suntaktikèc Domèc

Onom�zoume gl¸ssa   suntaktik  dìm  apì to alf�bhto Σ ènauposÔnolo tou Σ∗.

Sth sunèqeia ja protimhjeÐ o ìroc suntaktik  dom , gia na mh gÐnetaisÔgqish me th gl¸ssa programmatismoÔ.

Par�deigma 3. An Σ = {a, b, c} tìte to sÔnolo twn sumboloseir¸n pouapoteloÔntai apì n suneqìmena a akoloujoÔmena apì n suneqìmena beÐnai mÐa suntaktik  dom  apì to Σ.

Par�deigma 4. An Σ = {+,-,0,1,2,3,4,5,6,7,8,9} tìte to sÔnolo twnsumboloseir¸n pou parist�noun proshmasmènouc akèraiouc eÐnai mÐasuntaktik  dom  apì to Σ.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 5 / 74

Page 6: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

SÔmbola, Alf�bhta kai Suntaktikèc Domèc

Oi suntaktikèc domèc apoteloÔn sÔnola sumbolakolouji¸n kai �ramporoÔn na perigrafoÔn ìpwc èna opoiod pote sÔnolo. Sun jwc ìmwcepilègetai ènac apì touc parak�tw trìpouc:

Perigr�fetai ènac susthmatikìc trìpoc paragwg c ìlwn twnsumboloseir¸n thc suntaktik c dom c. Autì mporeÐ na gÐneiqrhsimopoi¸ntac p.q. grammatikèc (sÔnola kanìnwn paragwg c),sumbolismì BNF   suntaktik� diagr�mmata.

DÐnetai ènac susthmatikìc trìpoc anagn¸rishc twnsumboloseir¸n pou an koun sth suntaktik  dom . Autì gÐnetaiperigr�fontac mÐa mhqan    ènan algìrijmo pou apofasÐzei anmÐa sumboloseir� an kei   ìqi sth gl¸ssa.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 6 / 74

Page 7: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

SÔmbola, Alf�bhta kai Suntaktikèc Domèc

O pr¸toc trìpoc perigraf c eÐnai pio kat�llhloc gia naperigr�youme   na katano soume th sÔntaxh miac gl¸ssacprogrammatismoÔ. O deÔteroc eÐnai aparaÐthtoc kat� thn ulopoÐhshthc gl¸ssac, afoÔ apaiteÐtai metaxÔ �llwn suntaktik  an�lush touprogr�mmatoc.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 7 / 74

Page 8: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

SÔmbola, Alf�bhta kai Suntaktikèc Domèc

To alf�bhto pou qrhsimopoieÐ mia gl¸ssa programmatismoÔ kat�kanìna perilamb�nei:

Ta gr�mmata tou latinikoÔ alfab tou a-z, A-Z.

Ta arijmhtik� yhfÐa 0-9.

Alla sÔmbola, ìpwc= + - * / ( ) , . & ' � ! < > %

Orismènec gl¸ssec programmatismoÔ diaqwrÐzoun ta kefalaÐa apìta mikr� gr�mmata kai onom�zontai case sensitive (p.q. C, Java,Haskell, Prolog, Python).

Se �llec gl¸ssec programmatismoÔ ta kefalaÐa gr�mmata eÐnaiisodÔnama me ta antÐstoiqa mikr� (p.q. Pascal).

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 8 / 74

Page 9: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

SÔmbola, Alf�bhta kai Suntaktikèc Domèc

Ta stoiqeÐa tou alfab tou qrhsimopoioÔntai gia th dhmiourgÐalektik¸n mon�dwn (p.q. arijmhtik¸n stajer¸n, anagnwristik¸n pouqrhsimopoioÔntai gia onìmata metablht¸n, tÔpwn   sunart sewn,telest¸n ìpwc eÐnai to <=   >=, klp)

Oi parap�nw lektikèc mon�dec qrhsimopoioÔntai gia to sqhmatismìtou progr�mmatoc.

O parap�nw qwrismìc thc sÔntaxhc se dÔo epÐpeda an kai den eÐnaiaparaÐthtoc gia thn perigraf  thc sÔntaxhc, eÐnai exairetik�qr simoc kat� th suntaktik  an�lush.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 9 / 74

Page 10: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

SÔmbola, Alf�bhta kai Suntaktikèc Domèc

Orismènec lexeic èqoun sugkekrimènh shmasÐa se mia gl¸ssaprogrammatismoÔ kai den mporoÔn na qrhsimopoihjoÔn apì tonprogrammatist  gia �llo skopì. Oi lèxeic autèc onom�zontaidesmeumènec lèxeic.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 10 / 74

Page 11: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

SÔmbola, Alf�bhta kai Suntaktikèc Domèc

Gia par�deigma oi desmeumènec lèxeic sthn Pascal eÐnai:

and array begin case constdiv do downto else endfile for function goto ifin label mod nil notof or packed procedure programrecord repeat set then totype until var while with

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 11 / 74

Page 12: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perieqìmena

1 SÔmbola, Alf�bhta kai Suntaktikèc Domèc

2 Perigraf  sÔntaxhc me BNF (Backus-Naur Form)

3 Perigraf  sÔntaxhc me suntaktik� diagr�mmata

4 Metatrop  BNF se suntaktik� diagr�mmata

5 Metatrop  suntaktik¸n diagramm�twn se BNF

6 ShmasiologÐa Glwss¸n ProgrammatismoÔ

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 12 / 74

Page 13: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

O sumbolismìc BNF eÐnai mÐa metagl¸ssa me thn opoÐa mporoÔme naperigr�foume th sÔntaxh miac suntaktik c dom c (gl¸ssac).

H perigraf  thc sÔntaxhc mÐac suntaktik c dom c se BNF apoteleÐtaiapì èna sÔnolo kanìnwn.

K�je kanìnac perigr�fei th kataskeu  mÐac sÔnjethc suntaktik cdom c, apì �llec suntaktikèc domèc kai sÔmbola tou alfab tou.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 13 / 74

Page 14: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

Oi suntaktikèc domèc parist�nontai me suntaktikèc metablhtèc pouonom�zontai kai mh termatik� sÔmbola. Mia suntaktik  metablht gr�fetai mèsa se < kai >, ¸ste na diaqwrÐzetai apì ta termatik�sÔmbola (stoiqeÐa tou alfab tou).

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 14 / 74

Page 15: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

'Enac kanìnac BNF èqei th morf V ::= X1,1. . . X1,k1 | . . . | Xn,1. . . X1,kn

ìpou

n > 0 kai k1, k2, . . . , kn ≥ 0.

V eÐnai mh termatikì sÔmbolo.

Xi ,j eÐnai mh termatikì sÔmbolo   sÔmbolo tou alfab tou.

::= kai | eÐnai metasÔmbola tou BNF (ìpwc kai ta <, >).

O parap�nw kanìnac dhl¸nei ìti h suntaktik  dom  pou antistoiqeÐsth metablht  V mporeÐ na èqei n enallaktikèc morfèc (diaqwrÐzontaime |). H i-sth enallaktik  morf  sumperilamb�nei ìlec ticsumboloseirec pou prokÔptoun apì thn par�jesh ki sumboloseir¸n.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 15 / 74

Page 16: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

Gia k�je m  termatikì sÔmbolo Y pou emfanÐzetai dexi� tou ::= sek�poion kanìna, ja prèpei na up�rqei ènac kanìnac me kefal  to Y.Me �lla lìgia ja prèpei na kajorÐzetai k�je suntaktik  dom  pouemfanÐzetai stouc kanìnec.

An ki = 0 tìte to V mporeÐ na eÐnai h ken  akoloujÐa sumbìlwn. Seaut  thn perÐptwsh qrhsimopoioÔme to sÔmbolo e.

Gia na perigr�youme mia suntaktik  dom  pou prokÔpteiepanalamb�nontac mÐa �llh dom  èna opoiod pote pl joc for¸n,qrhsimopoioÔme anadrom .

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 16 / 74

Page 17: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

Sth sunèqeia perigr�foume to p¸c kajorÐzetai to sÔnolo twnsumboloseir¸n pou antistoiqeÐ se èna mh termatikì sÔmbolo me b�shèna sÔnolo kanìnwn S .

'Estw S èna sÔnolo kanìnwn BNF sto opoÐo to sÔnolo twn termatik¸nsumbìlwn eÐnai Σ kai to sÔnolo twn m  termatik¸n sumbìlwn eÐnai V .

An α kai β eÐnai akoloujÐec apì termatik� kai mh termatik� sÔmbola(dhlad  α, β ∈ (Σ ∪ V )∗), gr�foume α⇒S β gia na dhl¸soume ìti hakoloujÐa β par�getai apì thn α, antikajist¸ntac mÐa emf�nishenìc m  termatikoÔ sumbìlou me k�poia apì tic enallaktikèc morfècpou mporeÐ na p�rei me b�sh touc kanìnec tou S .

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 17 / 74

Page 18: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

To α⇒nS β dhl¸nei to ìti to β par�getai apì thn α se n b mata kai

mporeÐ na oristeÐ anadromik�:

α⇒0S β an β = α,

α⇒n+1S β an up�rqei γ tètoio ¸ste α⇒n

S γ kai γ ⇒S β

To α⇒∗S β dhl¸nei to ìti to β par�getai apì thn α se peperasmèno

arijmì bhm�twn, dhlad  ìti up�rqei k tètoio ¸ste α⇒kS β

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 18 / 74

Page 19: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

To sÔnolo twn sumboloseir¸n pou antistoiqeÐ se èna mh termatikìsÔmbolo <x> me b�sh èna sÔnolo kanìnwn S eÐnai to sÔnolo twnakolouji¸n termatik¸n sumbìlwn pou par�gontai apì to <x>,dhlad  to sÔnolo

{w ∈ Σ∗ |< x >⇒∗S w}

MporoÔme na paraleÐpoume to deÐkth S ìtan eÐnai xek�jaro se poiosÔnolo kanìnwn BNF anaferìmaste.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 19 / 74

Page 20: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

Parìti se mÐa paragwg  mporoÔme na antikajistoÔme opoiod pote mhtermatikì sÔmbolo jèloume, ja arkoÔse na antikajistoÔme k�je for�to aristerìtero m  termatikì sÔmbolo. Gia lìgouc omoiomorfÐac jaepilèxoume aut  th strathgik  sta parak�tw paradeÐgmata.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 20 / 74

Page 21: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

Par�deigma 5. Oi parak�tw kanìnec se BNF perigr�foun th sÔntaxhtwn proshmasmènwn akeraÐwn:

<akèraioc>::=<prìshmo> <akoloujÐa><prìshmo>::= + | -<akoloujÐa>::= <yhfÐo> | <yhfÐo> <akoloujÐa><yhfÐo>::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 21 / 74

Page 22: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

Gia par�deigma, o arijmìc -192 par�getai me ton parak�tw trìpo:

<akèraioc> ⇒<prìshmo><akoloujÐa> ⇒-<akoloujÐa> ⇒-<yhfÐo><akoloujÐa> ⇒-1<akoloujÐa> ⇒-1<yhfÐo><akoloujÐa> ⇒-19<akoloujÐa> ⇒-19<yhfÐo> ⇒-192

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 22 / 74

Page 23: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

Par�deigma 6. 'Estw ìti sto prohgoÔmeno par�deigma jèloume

to prìshmo na eÐnai proairetikì

o arijmìc 0 na mhn dèqetai prìshmo

to pr¸to yhfÐo enìc arijmoÔ na mhn eÐnai to '0' ektìc an o arijmìceÐnai to 0

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 23 / 74

Page 24: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

H sÔntaxh twn arijmwn perigr�fetai apì touc parak�tw kanìnec:

<akèraioc>::=0 | <jetikìc> | <prìshmo> <jetikìc><prìshmo>::= + | -<jetikìc>::= <yhfÐo-ìqi-0> | <yhfÐo-ìqi-0> <akoloujÐa><akoloujÐa>::= <yhfÐo> | <yhfÐo> <akoloujÐa><yhfÐo-ìqi-0>::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9<yhfÐo>::= <yhfÐo-ìqi-0> | 0

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 24 / 74

Page 25: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

Oi parap�nw kanìnec mporoÔn na aplousteujoÔn me qr sh thc ken csumboloseir�c e:

<akèraioc>::=0 | <prìshmo> <jetikìc><prìshmo>::= + | - | e<jetikìc>::= <yhfÐo-ìqi-0> <akoloujÐa><akoloujÐa>::= e | <yhfÐo> <akoloujÐa><yhfÐo-ìqi-0>::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9<yhfÐo>::= <yhfÐo-ìqi-0> | 0

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 25 / 74

Page 26: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

Gia par�deigma, me b�sh to deÔtero sÔnolo kanìnwn o arijmìc 68par�getai me ton parak�tw trìpo:

<akèraioc> ⇒<prìshmo><jetikìc> ⇒<jetikìc> ⇒<yhfÐo-ìqi-0><akoloujÐa> ⇒6<akoloujÐa> ⇒6<yhfÐo><akoloujÐa> ⇒6<yhfÐo-ìqi-0><akoloujÐa> ⇒68<akoloujÐa> ⇒68

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 26 / 74

Page 27: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

Merikèc parathr seic:

Up�rqoun perissìteroi apì ènac trìpoi (sÔnola apì kanìnec)gia na perigr�youme thn Ðdia gl¸ssa.

QrhsimopoioÔme onìmata metablht¸n pou sqetÐzontai me thfusik  shmasÐa thc suntaktik c ontìthtac pou perigr�foume.P.q <akèraioc>, <prìshmo> antÐ gia<stoiqeÐo1>, <stoiqeÐo2>   <Q>, <U>

'Ena sumbolikì ìnoma mporeÐ se diaforetik� sÔnola kanìnwn, naantistoiqeÐ se diaforetikèc suntaktikèc domèc.

H seir� twn kanìnwn den paÐzei rìlo. 'Omwc sun jwc protim�taimÐa apì tic parak�tw proseggÐseic

Ξεκινάμε περιγράφοντας τις πιο σύνθετες συντακτικές δομές και

προχωράμε προς τις πιο απλές (top-down)Ξεκινάμε περιγράφοντας τις πιο απλές συντακτικές δομές και

προχωράμε προς τις πιο σύνθετες (bottom-up)

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 27 / 74

Page 28: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

Merik� sunhjismèna l�jh

Oi anadromikoÐ kanìnec ja prèpei na perièqoun p�ntote mÐaperÐptwsh sthn opoÐa h anadrom  stamat�ei. O parak�twkanìnac den par�gei potè èna suntaktikì antikeÐmeno pouapoteleÐtai mìno apì termatik� sÔmbola.

<apeiro>::= 0 <apeiro>

An k�poio mh termatikì sÔmbolo emfanÐzetai mìno sto dexi� tou::= tìte to sÔnolo kanìnwn eÐnai ellipèc.

An k�poio mh termatikì sÔmbolo, ektìc apì autì pou orÐzei thgl¸ssa, emfanÐzetai mìno arister� tou ::= tìte o antÐstoiqockanìnac mporeÐ na paralhfjeÐ.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 28 / 74

Page 29: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

H par�jesh èqei megalÔterh proteraiìthta apì to |. Osumbolismìc BNF den perilamb�nei parenjèseic. Sto par�deigma5 gr�foume:

<akèraioc>::=<prìshmo> <akoloujÐa><prìshmo>::= + | -

Ja mporoÔsame enallaktik� na gr�youme:<akèraioc>::= + <akoloujÐa> | - <akoloujÐa>

Wstìso an gr�fame:<akèraioc>::= ( + | - ) <akoloujÐa>

tìte ta sÔmbola ( kai ) ja lamb�nontan wc sÔmbola toualfab tou thc suntaktik c dom c. Me b�sh ton teleutaÐo kanìna(+ kai -)34 eÐnai akèraioi!

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 29 / 74

Page 30: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

Par�deigma 7. Ja perigr�youme se BNF th sÔntaxh mÐac apl cgl¸ssac programmatismoÔ pou uposthrÐzei ènan tÔpo dedomènwn(akèraiouc) kai èqei dÔo eÐdh entol¸n.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 30 / 74

Page 31: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

Perigr�foume pr¸ta th sÔntaxh �tupa (se fusik  gl¸ssa):

To prìgramma apoteleÐtai apì mÐa akoloujÐa entol¸n.

Prin apì k�je entol  mporeÐ na up�rqei mÐa proairetik  etikètapou diaqwrÐzetai apì thn entol  me to qarakt ra :.

K�je entol  telei¸nei me to qarakt ra ;.

Up�rqoun dÔo eÐdh entol¸n: entol  an�jeshc kai entol  �lmatocupì sunj kh.

H entol  an�jeshc qrhsimopoieÐ ton telest  an�jeshc :=.Arister� tou telest  an�jeshc up�rqei mÐa metablht  kai dexi�tou mÐa arijmhtik  par�stash.

H entol  �lmatoc upì sunj kh xekin�ei me th lexh IF, akoloujeÐmÐa arijmhtik  par�stash, h lèxh GOTO kai mÐa etikèta.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 31 / 74

Page 32: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

Mia arijmhtik  par�stash sunt�ssetai ìpwc sta majhmatik�,apì proshmasmènouc akeraÐouc, metablhtec, touc duadikoÔcarijmhtikoÔc telestèc +,-,*,/ kai parenjèseic.

Mia metablht  xekin�ei me k�poio apì ta gr�mmataA,B,C,D,I,J,K,M,N,X,Y,Z kai akoloujeÐ mÐa proairetik  akoloujÐayhfÐwn.

Enac proshmasmènoc akèraioc èqei th sÔntaxh pou perigr�fetaisto par�deigma 6.

Mia etikèta xekin�ei me to gr�mma L kai akoloujeÐ ènac jetikìcarijmìc.

H pr¸th entol  tou progr�mmatoc eÐnai entol  an�jeshc ìpoudexi� tou := up�rqei h lèxh input.

H teleutaÐa entol  tou progr�mmatoc eÐnai entol  an�jeshc ìpouarister� tou := up�rqei h lèxh output.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 32 / 74

Page 33: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

Par�deigma progr�mmatoc:

N := input;X := 1;IF N GOTO L1;IF 1 GOTO L2;L1: X := X * N;N := N-1;IF N GOTO L1;L2: output := X;

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 33 / 74

Page 34: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

SÔntaxh thc gl¸ssac se BNF:

<prìgramma>::=<pr¸th entol > <s¸ma> <teleutaÐa entol > |<kefal > output := input ;

<s¸ma>::= e | <kefal > <entol > ; <s¸ma><kefal >::= e | <etikèta> :<entol >::= <entol  an�jeshc> | <entol  �lmatoc><entol  an�jeshc>::= <metablht > := <par�stash><entol  �lmatoc>::= IF <par�stash> GOTO <etikèta><pr¸th entol >::= <kefal > <metablht > := input ;<teleutaÐa entol >::= <kefal > output := <par�stash> ;

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 34 / 74

Page 35: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

<par�stash>::= <akèraioc> | <metablht > |<par�stash> <telest c> <par�stash> |( <par�stash> )

<telest c>::= + | - | * | /<metablht >::= <gr�mma> <akoloujÐa yhfÐwn><gr�mma>::= A | B | C | D | I | J | K | M | N | X | Y | Z<etikèta>::= L <jetikìc><akèraioc>::=0 | <prìshmo> <jetikìc><prìshmo>::= + | - | e<jetikìc>::= <yhfÐo-ìqi-0> <akoloujÐa yhfÐwn><akoloujÐa yhfÐwn>::= e | <yhfÐo> <akoloujÐa yhfÐwn><yhfÐo-ìqi-0>::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9<yhfÐo>::= <yhfÐo-ìqi-0> | 0

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 35 / 74

Page 36: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

Oi gl¸ssec twn opoÐwn h sÔntaxh perigr�fetai se BNF onom�zontaigl¸ssec qwrÐc sumfrazìmena.

Oi gl¸ssec programmatismoÔ sun jwc den eÐnai gl¸ssec qwrÐcsumfrazìmena.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 36 / 74

Page 37: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me BNF

Gia par�deigma den mporoÔme na perigr�youme se BNF ìti

mÐa metablht  prèpei na èqei dhlwjeÐ prin qrhsimopoihjeÐ

mÐa metablht  den mporeÐ na dhlwjeÐ sto Ðdio mplok perissìterecapì mÐa forèc

se mÐa an�jesh oi tÔpoi prèpei na eÐnai sumbatoÐ

Wstìso o sumbolismìc BNF qrhsimoieÐtai gia thn perigraf  twnsuntaktik¸n qarakthristik¸n thc gl¸ssac pou eÐnai anex�rthto apìsumfrazìmena.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 37 / 74

Page 38: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perieqìmena

1 SÔmbola, Alf�bhta kai Suntaktikèc Domèc

2 Perigraf  sÔntaxhc me BNF (Backus-Naur Form)

3 Perigraf  sÔntaxhc me suntaktik� diagr�mmata

4 Metatrop  BNF se suntaktik� diagr�mmata

5 Metatrop  suntaktik¸n diagramm�twn se BNF

6 ShmasiologÐa Glwss¸n ProgrammatismoÔ

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 38 / 74

Page 39: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me suntaktik� diagr�mmata

Ta suntaktik� diagr�mmata prosfèroun ènan enallaktikì, grafikìtrìpo apeikìnishc thc sÔntaxhc twn glwsswn qwrÐc sumfrazìmena.

Ta suntaktik� diagr�mmata orÐzontai epagwgik�.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 39 / 74

Page 40: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me suntaktik� diagr�mmata

To parak�tw suntaktikì di�gramma perigr�fei th suntaktik  dom pou perilamb�nei mìno thn ken  sumboloseir�.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 40 / 74

Page 41: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me suntaktik� diagr�mmata

To parak�tw suntaktikì di�gramma perigr�fei th suntaktik  dom pou perilamb�nei mìno thn akoloujÐa termatik¸n sumbìlwn α(qrhsimopoieÐtai kÔkloc   èlleiyh).

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 41 / 74

Page 42: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me suntaktik� diagr�mmata

To parak�tw suntaktikì di�gramma perigr�fei thn suntaktik  dom pou perigr�fetai kai apì to suntaktikì diagramma me epikefalÐda Y(qrhsimopoieÐtai orjog¸nio).

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 42 / 74

Page 43: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me suntaktik� diagr�mmata

To parak�tw suntaktikì di�gramma perigr�fei th suntaktik  dom pou perilamb�nei ìlec tic sumboloseirèc pou prokÔptoun apì thnpar�jesh k sumboloseir¸n, oi opoÐec par�gontai antÐstoiqa apì tasuntaktik� diagr�mmata ∆1, . . . ,∆k .

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 43 / 74

Page 44: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me suntaktik� diagr�mmata

To parak�tw suntaktikì di�gramma perigr�fei th suntaktik  dom pou perilamb�nei ìlec tic sumboloseirèc, oi opoÐec par�gontai apìk�poio apì ta suntaktik� diagr�mmata ∆1, . . . ,∆k .

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 44 / 74

Page 45: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me suntaktik� diagr�mmata

To parak�tw suntaktikì di�gramma perigr�fei th suntaktik  dom pou perilamb�nei ìlec tic sumboloseirèc pou prokÔptoun apì thnpar�jesh enìc akèraiou pl jouc sumboloseir¸n, oi opoÐec ìlecpar�gontai apì to ∆1.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 45 / 74

Page 46: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me suntaktik� diagr�mmata

To parak�tw suntaktikì di�gramma perigr�fei th suntaktik  dom pou perilamb�nei ìlec tic sumboloseirèc pou prokÔptoun apì thnpar�jesh enìc perittoÔ pl jouc sumboloseir¸n, oi opoÐec enall�xpar�gontai apì to ∆1 kai ∆2.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 46 / 74

Page 47: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me suntaktik� diagr�mmata

Par�deigma 8. To parak�tw suntaktikì di�gramma perigr�fei thsÔntaxh twn arijm¸n, ìpwc aut  kajorÐzetai sto par�deigma 6.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 47 / 74

Page 48: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perigraf  sÔntaxhc me suntaktik� diagr�mmata

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 48 / 74

Page 49: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perieqìmena

1 SÔmbola, Alf�bhta kai Suntaktikèc Domèc

2 Perigraf  sÔntaxhc me BNF (Backus-Naur Form)

3 Perigraf  sÔntaxhc me suntaktik� diagr�mmata

4 Metatrop  BNF se suntaktik� diagr�mmata

5 Metatrop  suntaktik¸n diagramm�twn se BNF

6 ShmasiologÐa Glwss¸n ProgrammatismoÔ

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 49 / 74

Page 50: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Metatrop  BNF se suntaktik� diagr�mmata

MporoÔme eÔkola na metatrèyoume thn perigraf  me sumbolismì BNFse suntaktik� diagr�mmata. Gia k�je kanìna:

V ::= X1,1. . . X1,k1 | . . . | Xn,1. . . Xn,kn

sqedi�zoume èna antÐstoiqo suntaktikì di�gramma:

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 50 / 74

Page 51: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Metatrop  BNF se suntaktik� diagr�mmata

To ∆i ,j eÐnai èna stoiqei¸dec suntaktikì di�gramma apoteloÔmenoapì to Xi ,j mèsa se kÔklo   se orjog¸nio (an�loga me to an to Xi ,j

eÐnai termatikì   mh termatikì sÔmbolo)

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 51 / 74

Page 52: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Metatrop  BNF se suntaktik� diagr�mmata

Par�deigma

Par�deigma 9. Ta parak�tw suntaktik� diagr�mmata antistoiqoÔnstouc kanìnec BNF tou paradeÐgmatoc 6.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 52 / 74

Page 53: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Metatrop  BNF se suntaktik� diagr�mmata

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 53 / 74

Page 54: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perieqìmena

1 SÔmbola, Alf�bhta kai Suntaktikèc Domèc

2 Perigraf  sÔntaxhc me BNF (Backus-Naur Form)

3 Perigraf  sÔntaxhc me suntaktik� diagr�mmata

4 Metatrop  BNF se suntaktik� diagr�mmata

5 Metatrop  suntaktik¸n diagramm�twn se BNF

6 ShmasiologÐa Glwss¸n ProgrammatismoÔ

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 54 / 74

Page 55: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Metatrop  suntaktik¸n diagramm�twn se BNF

Sth sunèqeia deÐqnoume p¸c mporoÔme na metatrèyoume ènasuntaktikì di�gramma se isodÔnamouc kanìnec BNF.

Exet�zoume di�forec peript¸seic an�loga me th dom  tou suntaktikoÔdiagr�mmatoc.

Se k�je perÐptwsh sumbolÐzoume me Yi th suntaktik  dom  pouperigr�fetai apì to suntaktikì di�gramma ∆i .

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 55 / 74

Page 56: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Metatrop  suntaktik¸n diagramm�twn se BNF

An h suntaktik  dom  X perigr�fetai apì èna suntaktikì di�grammathc morf c:

tìte h isodÔnamh perigraf  se BNF apoteleÐtai apì ton kanìna:

<X>::= e

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 56 / 74

Page 57: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Metatrop  suntaktik¸n diagramm�twn se BNF

An h suntaktik  dom  X perigr�fetai apì èna suntaktikì di�grammathc morf c:

tìte h isodÔnamh perigraf  se BNF apoteleÐtai apì ton kanìna:

<X>::= a

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 57 / 74

Page 58: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Metatrop  suntaktik¸n diagramm�twn se BNF

An h suntaktik  dom  X perigr�fetai apì èna suntaktikì di�grammathc morf c:

tìte h isodÔnamh perigraf  se BNF apoteleÐtai apì ton kanìna:

<X>::= <Y>

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 58 / 74

Page 59: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Metatrop  suntaktik¸n diagramm�twn se BNF

An h suntaktik  dom  X perigr�fetai apì èna suntaktikì di�grammathc morf c:

tìte h isodÔnamh perigraf  se BNF apoteleÐtai apì

ton kanìna

<X>::= <Y1 > <Y2 > . . .<Yk >

touc isodÔnamouc kanìnec gia ta suntaktik� diagr�mmata ∆1,∆2,. . .∆k , oi opoÐoi prokÔptoun anadromik�.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 59 / 74

Page 60: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Metatrop  suntaktik¸n diagramm�twn se BNF

An h suntaktik  dom  X perigr�fetai apì èna suntaktikì di�grammathc morf c:

tìte h isodÔnamh perigraf  se BNF apoteleÐtai apì

ton kanìna

<X>::= <Y1 > | <Y2 > | . . . | <Yk >

touc isodÔnamouc kanìnec gia ta suntaktik� diagr�mmata ∆1,∆2,. . .∆k , oi opoÐoi prokÔptoun anadromik�.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 60 / 74

Page 61: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Metatrop  suntaktik¸n diagramm�twn se BNF

An h suntaktik  dom  X perigr�fetai apì èna suntaktikì di�grammathc morf c:

tìte h isodÔnamh perigraf  se BNF apoteleÐtai apì

ton kanìna

<X>::= <Y1 > | <Y1 > <X>

touc isodÔnamouc kanìnec gia to suntaktikì di�gramma ∆1, oiopoÐoi prokÔptoun anadromik�.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 61 / 74

Page 62: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Metatrop  suntaktik¸n diagramm�twn se BNF

An h suntaktik  dom  X perigr�fetai apì èna suntaktikì di�grammathc morf c:

tìte h isodÔnamh perigraf  se BNF apoteleÐtai apì

ton kanìna

<X>::= <Y1 > | <Y1 > <Y2 > <X>

touc isodÔnamouc kanìnec gia ta suntaktik� diagr�mmata ∆1 kai∆2, oi opoÐoi prokÔptoun anadromik�.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 62 / 74

Page 63: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Metatrop  suntaktik¸n diagramm�twn se BNF

Par�deigma

Par�deigma 10. H parak�tw perigraf  arijm¸n se BNF prokÔpteiapì to suntaktikì di�gramma tou paradeÐgmatoc 8:

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 63 / 74

Page 64: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Metatrop  suntaktik¸n diagramm�twn se BNF

<arijmìc>::= <A1 > | <A2 ><A1 >::=0<A2 >::= <B1 > <B2 > <B3 ><B1 >::= <C1 > | <C2 > | <C3 ><C1 >::=+<C2 >::=e<C3 >::=-<B2 >::=<yhfÐo><B3 >::=<D1 > | <D1 > <B3 >

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 64 / 74

Page 65: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Metatrop  suntaktik¸n diagramm�twn se BNF

<D1 >::= <E1 > | <E2 > | <E3 ><E1 >::=0<E2 >::=e<E3 >::=<yhfÐo><yhfÐo>::= <F1 > | <F2 > | . . . | <F9 ><F1 >::=1<F2 >::=2. . .<F9 >::=9

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 65 / 74

Page 66: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Metatrop  suntaktik¸n diagramm�twn se BNF

MÐa profan c beltÐwsh ¸ste na meiwjeÐ to pl joc twn kanìnwn eÐnaih apaloif  twn kanìnwn pou prokÔptoun apì apl� suntaktik�diagr�mmata.

Autì mporeÐ na gÐnei me ap' eujeÐac antikat�stash twn mh termatik¸nsumbìlwn pou antistoiqoÔn se aut� ta diagr�mmata sta s¸mata twnkanìnwn ìpou emfanÐzontai.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 66 / 74

Page 67: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Metatrop  suntaktik¸n diagramm�twn se BNF

<arijmìc>::= 0 | <A2 ><A2 >::= <B1 > <yhfÐo> <B3 ><B1 >::= + | e | -<B3 >::=<D1 > | <D1 > <B3 ><D1 >::= 0 | e | <yhfÐo><yhfÐo>::= 1 | 2 | . . . | 9

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 67 / 74

Page 68: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

Perieqìmena

1 SÔmbola, Alf�bhta kai Suntaktikèc Domèc

2 Perigraf  sÔntaxhc me BNF (Backus-Naur Form)

3 Perigraf  sÔntaxhc me suntaktik� diagr�mmata

4 Metatrop  BNF se suntaktik� diagr�mmata

5 Metatrop  suntaktik¸n diagramm�twn se BNF

6 ShmasiologÐa Glwss¸n ProgrammatismoÔ

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 68 / 74

Page 69: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

ShmasiologÐa Glwss¸n ProgrammatismoÔ

O kajorismìc thc shmasiologÐac miac gl¸ssac programmatismoÔeÐnai polÔ pio dÔskoloc apì ton kajorismì thc sÔntaxhc.

Gia autì to lìgo se pollèc peript¸seic, qrhsimopoieÐtai h fusik gl¸ssa gia th perigraf  thc shmasiologÐac.

Wstìso èqoun protajeÐ di�foroi enallaktikoÐ tupikoÐ trìpoiperigraf c thc shmasiologÐac glwss¸n programmatismoÔ, oi opoÐoisunoyÐzontai parak�tw.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 69 / 74

Page 70: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

ShmasiologÐa Glwss¸n ProgrammatismoÔ

Leitourgik    ermhneutik  shmasiologÐa (operational  interpretive semantics):

H shmasÐa enìc progr�mmatoc dÐnetai perigr�fontac thnektèlesh tou se mÐa ideat  mhqan .

Oi entolèc thc gl¸ssac programmatismoÔ ermhneÔontai wc mÐaseir� entol¸n thc ideat c mhqan c.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 70 / 74

Page 71: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

ShmasiologÐa Glwss¸n ProgrammatismoÔ

Endeiktik  shmasiologÐa (denotational semantics):

EÐnai h pio afhrhmènh mèjodoc perigraf c.

OrÐzei èna sÔnolo apì majhmatik� antikeÐmena gia k�jesuntaktik  dom  thc gl¸ssac, kaj¸c kai mÐa sun�rthsh pouapeikonÐzei ta stoiqeÐa thc suntaktik c dom c se majhmatik�antikeÐmena.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 71 / 74

Page 72: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

ShmasiologÐa Glwss¸n ProgrammatismoÔ

Axiwmatik  shmasiologÐa (axiomatic semantics):

SthrÐzetai sth majhmatik  logik  kai anaptÔqjhke arqik� meskopì thn tupik  epal jeush programm�twn.

AntistoiqeÐ se k�je entol  tou progr�mmatoc èna axÐwma   ènankanìna exagwg c sumper�smatoc, o opoÐoc kajorÐzei tic sunj kecpou isqÔoun met� thn ektèlesh thc entol c, me b�sh tic sunj kecpou isqÔoun prin thn ektèlesh thc entol c

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 72 / 74

Page 73: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

ShmasiologÐa Glwss¸n ProgrammatismoÔ

ShmasiologÐa el�qistou montèlou (minimum model semantics):

QrhsimopoieÐtai stic gl¸ssec logikoÔ programmatismoÔ.

H shmasÐa tou progr�mmatoc perigr�fetai me to sÔnolo twnatomik¸n prot�sewn pou jewroÔntai alhjeÐc me b�sh toprìgramma.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 73 / 74

Page 74: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguagesBNF.pdf · epanalamb nontac mÐa llh dom èna opoiod pote pl joc for¸n, qrhsimopoioÔme anadrom . Qr stoc Nomikìc

ShmasiologÐa Glwss¸n ProgrammatismoÔ

ShmasiologÐa stajeroÔ shmeÐou (fixpoint semantics):

QrhsimopoieÐtai stic gl¸ssec logikoÔ programmatismoÔ.

Se k�je prìgramma antistoiqeÐ ènac telest c TP o opoÐocapeikonÐzei sÔnola atomik¸n prot�sewn se sÔnola atomik¸nprot�sewn. H shmasÐa tou progr�mmatoc orÐzetai wc toel�qisto sÔnolo twn prot�sewn M gia to opoÐo TP(M) = M.

Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn )Arqèc Glwss¸n Programmatismou 2015 74 / 74