58

Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

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 / 58

Page 2: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

Perieqìmena

1 TÔpoi dedomènwn

2 Metatropèc tÔpwn

3 IsodunamÐa tÔpwn

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

Page 3: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

Perieqìmena

1 TÔpoi dedomènwn

2 Metatropèc tÔpwn

3 IsodunamÐa tÔpwn

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

Page 4: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

MporoÔme na doÔme touc tÔpouc dedomènwn mÐac gl¸ssac apìdi�forec optikèc gwnÐec

dhl¸tik : o tÔpoc kajorÐzetai apì to pediì tim¸n tou

kataskeuastik : o tÔpoc kajorÐzetai apì ton trìpo kataskeu ctou apì touc prwtarqikoÔc tÔpouc thc gl¸ssac

afairetik : o tÔpoc kajorÐzetai apì èna sÔnolo pr�xewn

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

Page 5: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

'Ena sÔsthma tÔpwn apoteleÐtai apì:

'Enan mhqanismì orismoÔ tÔpwn, mazÐ me èna sÔnolo prwtarqik¸ntÔpwn pou uposthrÐzontai �mesa apì th gl¸ssa

'Ena sÔnolo kanìnwn gia isodunamÐa, sumbatìthta kai exagwg tÔpwn

Oi tÔpoi qwrÐzontai se

AploÔc   bajmwtoÔc: to pedÐo tim¸n perigr�fetai apo ènasÔnolo stajer¸n tim¸n

SÔnjetouc   domhmènouc: to pedÐo tim¸n perigr�fetai wcsun�rthsh twn pedÐwn tim¸n �llwn tÔpwn

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

Page 6: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

O kajorismìc tou tÔpou miac metablht c mporeÐ na gÐnetai:

statik�, �mesa (me d lwsh)   èmmesa

dunamik� (se qrìno ektèleshc)

Sth sunèqeia perigr�foume touc kuriìterouc tÔpouc dedomènwn kaj¸ckai èna sÔnolo basik¸n leitourgi¸n pou sun jwc uposthrÐzoun.

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

Page 7: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Akèraioi

PedÐo tim¸n: èna uposÔnolo tou sunìlou twn fusik¸n arijm¸n.Sun jwc perilamb�nei ìlec tic timèc metaxÔ −2k−1 kai 2k−1 − 1, ìpouk k�poio pollapl�sio tou m kouc lèxhc.

Prokajorismènec leitourgÐec: toul�qiston oi arijmhtikèc pr�xeic

prìsjesh

afaÐresh

pollaplasiasmìc

akèraia diaÐresh (apokìptei to dekadikì mèroc)

upìloipo diaÐreshc

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

Page 8: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Pollèc gl¸ssec uposthrÐzoun perissìterouc apì ènan tÔpoucakeraÐwn, me diaforetik� pedÐa tim¸n.

H Java, h Haskell kai h Python uposthrÐzoun metaxÔ �llwn tÔpoakèraiou osod pote meg�lou m kouc.

H Pascal diajètei ènan mìno akèraio tÔpo, ton integer.

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

Page 9: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

PragmatikoÐ

PedÐo tim¸n: èna uposÔnolo tou sunìlou twn rht¸n arijm¸n, poujewreÐtai ìti proseggÐzoun pragmatikoÔc.

Prokajorismènec leitourgÐec: oi tèssereic basikèc arijmhtikèc pr�xeic

prìsjesh

afaÐresh

pollaplasiasmìc

diaÐresh

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

Page 10: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Pollèc gl¸ssec uposthrÐzoun perissìterouc apì ènan tÔpoucpragmatik¸n, pou diafèroun sthn akrÐbeia.

EpÐshc oi gl¸ssec sun jwc uposthrÐzoun dÔo morfèc graf cpragmatik¸n stajer¸n: stajer c upodiastol c   kinht cupodiastol c.

H Pascal diajètei ènan mìno paragmatikì tÔpo, ton real.

H Fortran kai h Python uposthrÐzoun kai migadikoÔc arijmoÔc.

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

Page 11: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Sun jwc oi arijmhtikoÐ tÔpoi basÐzontai sthn arijmhtik  thc mhqan c.

pleonèkthma: oi pr�xeic ulopoioÔntai se epÐpedo mhqan c, kèrdocse taqÔthta.

meionèkthma: ex�rthsh apì th mhqan .

Sth Java oi arijmhtikoÐ tÔpoi (p.q. to pedÐo tim¸n) eÐnai anex�rthtoiapì th mhqan .

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

Page 12: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Boolean

PedÐo tim¸n: {true, false }

Prokajorismènec leitourgÐec: oi logikèc pr�xeic

sÔzeuxh (kai)

di�zeuxh ( )

�rnhsh (ìqi)

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

Page 13: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

H Pascal èqei tÔpo boolean, kaj¸c kai touc logikoÔc telestèc and, or,not.

H C, h APL kai h PL/1 exomoi¸noun ton tÔpo boolean qrhsimopoi¸ntacakeraÐouc.

Se orismènec gl¸ssec ta true, false eÐnai desmeumènec lèxeic (Algol 60)en¸ se �llec prokajorismènec lèxeic (Pascal).

Oi alhjotimèc sthn Pascal eÐnai diatetagmènec (false < true).

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

Page 14: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Qarakt rec

PedÐo tim¸n: oi qarakt rec tou alfab tou tou upologist 

Prokajorismènec leitourgÐec: sÔgkrish (oi qarakt rec jewroÔntaidiatetagmènoi), prohgoÔmenoc, epìmenoc.

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

Page 15: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

H Pascal èqei ton tÔpo char

H C epitrèpei arijmhtikèc pr�xeic an�mesa se qarakt rec,  qarakt rec kai arijmoÔc.

H Pascal diajètei sunart seic metatrop c enìc qarakt ra stonantÐstoiqo akèraio kai antÐstrofa.

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

Page 16: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Sumboloseirèc

PedÐo tim¸n: oi akoloujÐec qarakt rwn apì èna uposÔnolo toualfab tou tou upologist .

Prokajorismènec leitourgÐec: lexikografik  sÔgkrish kai par�jesh.

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

Page 17: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Se pollèc gl¸ssec den eÐnai prwtarqikìc tÔpoc all� orÐzetai wcpÐnakac qarakt rwn (Pascal, C, C++).

Sth Snobol, pou eÐnai gl¸ssa qeirismoÔ sumboloakolouji¸n, eÐnaiprwtarqikìc tÔpoc kai up�rqoun pollèc �llec prokajorismènecleitourgÐec.

Sth Java up�rqei h klash String pou den eÐnai isodÔnamh me pÐnakaqarakt rwn.

MÐa metablht  tÔpou string mporeÐ na èqei prokajorismèno m koc   ìqi.

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

Page 18: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

AparijmhtoÐ tÔpoi

PedÐo tim¸n: èna peperasmèno sÔnolo apì sumbolik� onìmata, poukajorÐzontai apì to qr sth kat� ton orismì tou tÔpou.

Prokajorismènec leitourgÐec: sÔgkrish gia isìthta. An jewrhjeÐ ìti oitimèc eÐnai diatetagmènec, tìte orÐzontai <, >, epìmenoc,prohgoÔmenoc.

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

Page 19: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

H qr sh aparijmht¸n tÔpwn, antÐ gia kwdikopoÐhsh me akeraÐouc:

aux�nei thn anagnwsimìthta tou progr�mmatoc

aux�nei thn axiopistÐa tou progr�mmatoc

Erwt mata:

epitrèpetai h qr sh tou Ðdiou anagnwristikoÔ se perissìteroucapì ènan aparijmhtoÔc tÔpouc? (Sthn Pascal ìqi)

up�rqei di�taxh stic timèc? (sthn Pascal nai)

UlopoÐhsh: antistoiqoÔn se diadoqikèc akèraiec timèc.

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

Page 20: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Par�deigma orismoÔ aparijmht¸n tÔpwn sthn Pascal:

typeday = (sun, mon, tue, wed, thu, fri, sat);color = (white, red, green, blue);

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

Page 21: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

TÔpoi upodiast matoc

PedÐo tim¸n: èna di�sthma suneqìmenwn tim¸n apì ènan tÔpo mediatetagmèno pedÐo tim¸n.

Prokajorismènec leitourgÐec: oi leitourgÐec pou eÐnai diajèsimec giaton eurÔtero tÔpo.

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

Page 22: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

H qr sh upodiasthm�twn, ìpwc kai h qr sh aparijmht¸n tÔpwn:

aux�nei thn anagnwsimìthta tou progr�mmatoc

aux�nei thn axiopistÐa tou progr�mmatoc

Sun jwc eÐnai sumbatìc me ton eurÔtero tÔpo tou opoÐou apoteleÐupodi�sthma.

UlopoÐhsh: ìpwc kai o eurÔteroc tÔpoc, me prosj kh k¸dika kat� thmet�frash gia èlegqo tÔpou.

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

Page 23: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Par�deigma orismoÔ tÔpwn diast matoc sthn Pascal:

typesmallint = -31 .. 31;workingday = mon .. fri;uppercase = ’A’ .. ’Z’;

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

Page 24: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

PÐnakec

PÐnakac onom�zetai mÐa sullog  dedomènwn pou ìla èqoun ton ÐdiotÔpo kai kajèna prosdiorÐzetai apì th jèsh tou. H jèsh enìcstoiqeÐou kajorÐzetai apì ènan   perissìterouc deÐktec. To pl joctwn deikt¸n kajorÐzei th di�stash tou pÐnaka.

PedÐo tim¸n: D∗, ìpou D to pedÐo tim¸n enìc tÔpou.

Prokajorismènec leitourgÐec: prospèlash enìc stoiqeÐou tou pÐnakapou brÐsketai se sugkekrimènh jèsh.

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

Page 25: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Arijmìc diast�sewn:

stic di�forec ekdìseic thc Fortran eÐnai periorismènoc (3 sthFortran I kai 7 sth Fortran 77).

Oi gl¸ssec C, C++ kai Java uposthrÐzoun �mesa mìnomonodi�statouc pÐnakec, en¸ oi poludi�statoi pÐnakeculopoioÔntai èmmesa wc pÐnakec pou ta stoiqeÐa touc epÐshcpÐnakec.

H Pascal uposthrÐzei pÐnakec opoiasd pote di�stashc

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

Page 26: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

TÔpoc deikt¸n:

mporeÐ na eÐnai opoiosd pote akèraioc tÔpoc

den mporeÐ na eÐnai pragmatikìc arijmìc

sthn Pascal mporeÐ na eÐnai qarakt rac, boolean   aparijmhtìctÔpoc

Prospèlash stoiqeÐou: me to ìnoma tou pÐnaka akoloujoÔmeno apìmÐa seir� deikt¸n mesa se ()   []:

Fortran: A(2,3)

C: A[2][3]

Pascal: A[2,3]

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

Page 27: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

ArqikopoÐhsh:

orismènec gl¸ssec epitrèpoun arqikopoÐhsh twn pin�kwn (C,C++, Fortran, Ada)

�llec gl¸ssec den epitrèpoun arqikopoÐhsh (Pascal, Modula-2)

To mègejoc enìc pÐnaka mporeÐ na kajorÐzetai:

statik� (Fortran, Pascal, C)

dunamik� (se qrìno ektèleshc) (Algol, Java)

Orismènec gl¸ssec dÐnoun th dunatìthta perigraf c upopin�kwn(tmhm�twn tou pÐnaka).

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

Page 28: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

UlopoÐhsh:

ta stoiqeÐa enìc pÐnaka apojhkeÔontai se suneqìmenec jèseicmn mhc

oi poludi�statoi pÐnakec apojhkeÔontai eÐte kat� grammèc(aux�nontac taqÔtera ton dexiìtero deÐkth)   kat� st lec(aux�nontac taqÔtera ton aristerìtero deÐkth)

h jèsh enìc stoiqeÐou sth mn mh, me b�sh thn akoloujÐa deikt¸npou to prosdiorÐzei, upologÐzetai me b�sh mÐa apl  arijmhtik 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 28 / 58

Page 29: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Par�deigma orismoÔ tÔpwn pÐnaka sthn Pascal:

typevector = array[1..1000] of real;string = array[1..MaxStringSize] of char;matrix = array[1..9,’a’..’f’,day] of integer;

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

Page 30: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Eggrafèc (domèc)

Eggraf  onom�zetai mÐa sullog  dedomènwn pou endeqìmena an kounse diaforetikoÔc tÔpouc kai kajèna prosdiorÐzetai apì to ìnom� tou.

PedÐo tim¸n: D1 × D2 × · · · × Dn, ìpou Di to pedÐo tim¸n enìc tÔpou.

Prokajorismènec leitourgÐec: prospèlash enìc pedÐou thc eggraf c,sÔgkrish gia isìthta, antigraf .

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

Page 31: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

ArqikopoÐhsh:

h perissìterec gl¸ssec den epitrèpoun arqikopoÐhsh twn dom¸n(Pascal, C)

orismènec gl¸ssec epitrèpoun arqikopoÐhsh twn dom¸n (Ada)

Prospèlash pedÐou:

Pascal,C,Ada: x.age

Algol: age(x)

Cobol: age of x

ML: #age x

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

Page 32: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

UlopoÐhsh: ta pedÐa miac eggraf c apojhkeÔontai se suneqìmenecjèseic mn mhc.

Par�deigma orismoÔ tÔpou eggraf c sthn Pascal:

typepoint = record

x,y:real;c:color;

end;

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

Page 33: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

En¸seic

'Enwsh eÐnai o tÔpoc dedomènwn pou epitrèpei se mÐa metablht  napaÐrnei timèc apì diaforetikoÔc tÔpouc se diaforetikèc qronikècstigmèc. Sun jwc qrhsimopoieÐtai èna diaforetikì ìnoma gia thn tim k�je tÔpou.

PedÐo tim¸n: D1 ∪ D2 ∪ · · · ∪ Dn, ìpou Di to pedÐo tim¸n enìc tÔpou.

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

Page 34: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Se pollèc peript¸seic parèqontai se sunduasmì me tic eggrafèc(variant records thc Pascal).

DhmiourgoÔn prìblhma me ton èlegqo tÔpou: endèqetai na diab�soumemÐa metablht  jewr¸ntac diaforetikì tÔpo apì ton apojhkeumèno.

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

Page 35: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

SÔnola

PedÐo tim¸n: 2D , ìpou D to pedÐo tim¸n enìc tÔpou.

Prokajorismènec leitourgÐec: ènwsh, tom , diafor�, sÔgkrish (giaisìthta, uposÔnolo)

UlopoÐhsh: an to D eÐnai mikroÔ megèjouc, tìte to sÔnoloparist�netai me akoloujÐa apì bits.

Par�deigma orismoÔ tÔpou sunìlou sthn Pascal:type schedule = set of days;

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

Page 36: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

DeÐktec

PedÐo tim¸n: oi dieujÔnseic mn mhc tou upologist  ∪ {nil}

Prokajorismènec leitourgÐec: sÔgkrish gia isìthta, prospèlash thctim c sth jèsh pou deÐqnei, dèsmeush-apodèsmeush mn mhc.

Qreiazìmaste ènan trìpo gia na kajorÐzetai to an anaferìmaste sthtim  thc metablht c tÔpou deÐkth (pou eÐnai h jèsh mn mhc pou deÐqneio deÐkthc   nil)   sthn tim  pou eÐnai apojhkeumènh sth jèsh poudeÐqnei o deÐkthc.

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

Page 37: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Sth Pascal kai th C me to ìnoma thc metablht c tÔpou deÐkthanaferìmaste ston Ðdio ton deÐkth. Gia par�deigma h entol  thcPascal p:=q kai h entol  p=q thc C èqoun wc apotèlesma odeÐkthc p na deÐqnei ekeÐ pou deÐqnei kai o q.

Gia na anaferjoÔme sthn tim  pou eÐnai apojhkeumènh sth jèshpou deÐqnei o deÐkthc qrhsimopoioÔme ton telest  ↑ sthn Pascal kaiton telest  * sth C. Gia par�deigma h entol  thc Pascal p↑:=q↑kai h entol  *p=*q thc C èqoun wc apotèlesma h jèsh mn mhc poudeÐqnei o p na apokt sei to Ðdio perieqìmeno me th jèsh mn mhcpou deÐqnei o q. H jèsh mn mhc pou deÐqnei o p den all�zei.

Endèqetai perissìteroi apì ènac deÐktec na deÐqnoun sthn Ðdia jèshmn mhc.

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

Page 38: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

SkoupÐdia onom�zontai oi jèseic mn mhc pou èqoun paraqwrhjeÐdunamik� sto prìgramma kai proc tic opoÐec den up�rqei prìsbashmèsw deikt¸n apì to prìgramma.

Par�deigma dhmiourgÐac skoupidi¸n:

new(p);p:=q

H pr¸th entol  paraqwreÐ sto prìgramma q¸ro mn mhc ston opoÐodeÐqnei o p. H deÔterh entol  all�zei thn tim  tou p, q�nontac thnprìsbash proc ton paraqwrhjènta q¸ro mn mhc.

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

Page 39: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

H dhmiourgÐa skoupidi¸n mei¸nei th diajèsimh mn mh kat� thnektèlesh tou progr�mmatoc.

Sullog  skoupidi¸n onom�zetai h diadikasÐa eÔreshc kaiapodèsmeushc twn jèsewn mn mhc pou apoteloÔn skoupÐdia. Hsullog  skoupidi¸n gÐnetai autìmata apì th 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 39 / 58

Page 40: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Xekrèmastoi deÐktec onom�zontai deÐktec oi opoÐec deÐqnoun se mhègkurec jèseic mn mhc, gia par�deigma se jèseic pou èqoun epistrafeÐapì to prìgramma sto sÔsthma.

Par�deigma dhmiourgÐac xekrèmastou deÐkth:

p:=qdispose(q);

H pr¸th entol  èqei wc apotèlesma o p na deÐqnei sth jèsh mn mhcpou deÐqnei kai o q. H deÔterh entol  epistrèfei th jèsh mn mhc ìpoudeÐqnei o q sto sÔsthma.

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

Page 41: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

H Ôparxh xekrèmastwn deikt¸n eÐnai katastrofik  gia thn ektèleshtou progr�mmatoc.

H Java den perièqei tÔpo deÐkth, ìmwc h prìsbash proc ta antikeÐmenagÐnetai me ta handles pou èqoun an�logec idiìthtec me touc deÐktec.

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

Page 42: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Par�deigma orismoÔ tÔpou deÐkth sthn Pascal:

typeintptr = ↑integer;list = ↑node;node = record

value: integer;next:list

end

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

Page 43: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Sunart seic

Stic sunarthsiakèc gl¸ssec oi sunart seic apoteloÔn tÔpodedomènwn, kaj¸c mporoÔn na perastoÔn wc par�metroi   naepistrafoÔn apì �llec sunart seic (oi opoÐec onom�zontaisunart seic uyhlìterhc t�xhc).

Orismènec gl¸ssec metaxÔ twn opoÐwn kai h Pascal epitrèpoun staupoprogr�mmat� touc na dèqontai wc pramètrouc �llaupoprogr�mmata.

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

Page 44: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

TÔpoi dedomènwn

Par�deigma upoprogr�mmatoc wc paramètrou sthn Pascal:

typefunction integral(function f(x:real):real; a,b:real);

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

Page 45: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

Perieqìmena

1 TÔpoi dedomènwn

2 Metatropèc tÔpwn

3 IsodunamÐa tÔpwn

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

Page 46: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

Metatropèc tÔpwn

Se pollèc peript¸seic eÐnai qr simo na metatrèpoume timèc enìc tÔpouse antÐstoiqec timèc �llou tÔpou, p.q. metatrop  akeraÐou sepragmatikì.

H metatrop  tupou mporeÐ na gÐnetai:

me rhtì trìpo (casting), p.q.c = (char) n;

autìmata an eÐnai anagkaÐo, p.q. sth Java:s = ”n=” + n;

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

Page 47: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

Metatropèc tÔpwn

onom�zoume dieÔrunsh th metatrop  mÐac tim c apì ènan tÔpo mestenìtero pedÐo tim¸n se ènan tÔpo me eurÔtero pedÐo tim¸n, p.qakeraÐou se pragmatikì, pragmatikoÔ apl c akrÐbeiac se dipl cakrÐbeiac k.l.p. Se mÐa tètoia metatrop  den èqoume ap¸leiaplhroforÐac (h tim  ston arqikoÔ tÔpou kajorÐzetai monos mantaapì thn tim  ston telikoÔ tÔpou).

onom�zoume periorismì th metatrop  mÐac tim c apì ènan tÔpo meeurÔtero pedÐo tim¸n se ènan tÔpo me stenìtero pedÐo tim¸n, p.qpragmatikoÔ se akèraio, pragmatikoÔ dipl c akrÐbeiac se apl cakrÐbeiac k.l.p. Se mÐa tètoia metatrop  endèqetai na èqoumeap¸leia plhroforÐac, kaj¸c h tim  ston telikì tÔpo apoteleÐprosèggish thc tim c ston arqikì tÔpo.

den eÐnai p�nta dunat  h metatrop  an�mesa se dÔo tÔpouc

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

Page 48: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

Metatropèc tÔpwn

'Elegqoc tÔpou onom�zetai h diadikasÐa epibebaÐwshc ìti o tÔpoc twnorÐsmatwn enìc telest  (  twn pragmatik¸n paramètrwn kat� thnkl sh miac sun�rthshc) eÐnai sumbatìc me ton telest  (  tic tupikècparamètrouc thc sun�rthshc)

'Enac tÔpoc eÐnai sumbatìc me ènan telest  an eÐnai ènac apì touctÔpouc gia touc opoÐouc eÐnai orismènoc o telest c, eÐte an mporeÐ nametatrapeÐ se ènan tètoio tÔpo.

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

Page 49: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

Metatropèc tÔpwn

an o kajorismìc tÔpou eÐnai statikìc tìte kai oi perissìteroièlegqoi tÔpou mporoÔn na gÐnoun statik�.

an an o kajorismìc tÔpou eÐnai dunamikìc (gÐnetai se qrìnoektèleshc) tìte kai oi èlegqoi tÔpou prèpei na gÐnoun dunamik�.

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

Page 50: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

Metatropèc tÔpwn

Uperfìrtwsh enìc telest  (  onìmatoc sun�rthshc) onom�zoume thnan�jesh se autìn diaforetik¸n leitourgi¸n gia diaforetikoÔc tÔpoucorism�twn. ParadeÐgmata:

oi arijmhtikoÐ telestèc dèqontai orÐsmata opoioud potearijmhtikoÔ tÔpou.

o telest c * sth C qrhsimopoieÐtai gia pollaplasiasmì, all�kai wc enadikìc telest c me ìrisma tÔpou deÐkth.

sth Fortran to = eÐnai telest c an�jeshc all� kai sÔgkrishc

sth Java to + qrhsimopoieÐtai kai gia par�jesh alfarijmhtik¸n.

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

Page 51: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

Metatropèc tÔpwn

Se pollèc peript¸seic arijmhtikèc parast�seic perièqoun stajerèc  metablhtèc diaforetik¸n arijmhtik¸n tÔpwn.

Se aut  thn perÐptwsh gÐnetai autìmath metatrop  (dieÔrunsh  periorismìc) ¸ste kaÐ ta dÔo orÐsmata k�je telest  na èqoun ton ÐdiotÔpo.

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

Page 52: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

Metatropèc tÔpwn

Up�rqoun dÔo proseggÐseic:

prÐn efarmosteÐ ènac arijmhtikìc telest c, gÐnetai dieÔrunsh touorÐsmatoc pou an kei se stenìtero tÔpo, ston tÔpo tou �llouorÐsmatoc. An h par�stash prèpei na d¸sei tim  sugkekrimènoutÔpou, tìte met� thn apotÐmhs  thc gÐnetai h aparaÐththmetatrop .

P.q h d lwshfloat r = 5 / 2 + 2.0;arqikopoieÐ thn r me thn tim  4.0 (h pr¸th diaÐresh eÐnai akèraiakai prokaleÐ apokop )

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

Page 53: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

Metatropèc tÔpwn

ìlec h timèc pou emplèkontai sthn par�stash metatrèpontai stontÔpo pou prèpei na èqei h tim  thc par�stashc, prin efarmosteÐopoiosd pote telest c

P.q h d lwshfloat r = 5 / 2 + 2.0;arqikopoieÐ thn r me thn tim  4.5 (oi timèc 5 kai 2 metatrèpontaise 5.0 kai 2.0 prin gÐnei opoiad pote pr�xh, opìte h pr¸thdiaÐresh eÐnai pragmatik )

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

Page 54: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

Perieqìmena

1 TÔpoi dedomènwn

2 Metatropèc tÔpwn

3 IsodunamÐa tÔpwn

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

Page 55: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

IsodunamÐa tÔpwn

Er¸thma: pìte dÔo metablhtèc èqoun isodÔnamouc tÔpouc?

dÔo metablhtèc èqoun tÔpouc isodÔnamouc wc proc to ìnoma anèqoun dhlwjeÐ eÐte sthn Ðdia d lwsh eÐte se diaforetikèc dhl¸seicpou qrhsimopoioÔn to Ðdio ìnoma tÔpou.

dÔo metablhtèc èqoun tÔpouc isodÔnamouc wc proc th dom  an oitÔpoi touc èqoun akrib¸c thn Ðdia dom .

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

Page 56: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

IsodunamÐa tÔpwn

Par�deigma: 'Estw oi parak�tw dhl¸seic:

typevector = array[1..100] of integer;list = vector;

varx,y:array[1..100] of integer;z:array[1..100] of integer;w:vector;r:vector;L:list;

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

Page 57: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

IsodunamÐa tÔpwn

ìlec oi metablhtèc sthn parap�nw d lwsh èqoun isodÔnamouctÔpouc wc proc th dom .

up�rqoun dÔo zeÔgh metablht¸n me isodÔnamouc tÔpouc wc procìnoma:

x,y που δηλώνονται στη ίδια δήλωσηw,r που δηλώνονται με το ίδιο αναγνωριστικό τύπου

h metablht  L eÐnai isodÔnamh me tic w,r, sÔmfwna me mÐa pioasjen  isodunamÐa wc proc ìnoma, h opoÐa jewreÐ ton tÔpo list wcyeud¸numo tou vector kai ìqi wc diaforetikì tÔpo

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

Page 58: Arqèc Glwss¸n Programmatismoucnomikos/courses/pl/ProgrammingLanguages5.pdf · Qr stoc Nomikìc ( Tm ma Mhqanik¸n H/U kai Plhroforik c Panepist mio IwannÐnwn ) Arqèc Glwss¸n

IsodunamÐa tÔpwn

Sun jwc oi gl¸ssec programmatismoÔ qrhsimopoioÔn mÐa endi�meshmorf  isodunamÐac tÔpwn.

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