principles of programming languages | asu 2013

113

Upload: javier-gonzalez-sanchez

Post on 10-Feb-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 1/113

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 2/113

<

 

^rcmdcpfbs ai ^rahrekkcmh Femhuehbse 50+wbbo daursb

Gevcbr Hamzefbz+Temdjbz

Kerce+Bfbme Djevbz+Bdjbeherey

Gufy& <>54

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 3/113

4

 Eutjars

Gevcbr Hamzefbz+Temdjbz cs pursucmh jcs ^j-@- `bhrbb cm Dakputbr Tdcbmdb et Erczame Ttetb

Rmcvbrscty- Jcs prckery rbsberdj cmtbrbsts fcb cm `bvbfapcmh& em` e`vemdcmh `bvbfapkbmt eppraedjbs iar eiibdt+ewerb em` eiibdt+`rcvbm sbfi+e`eptcvb systbks& es wbff es pratatypcmh

kalcfb fbermcmh em` euhkbmtb` rbefcty eppfcdetcams- ^rcar ta gacmcmh Erczame TtetbRmcvbrscty& jb wes e tbedjcmh praibssar et Pbdmafôhcda `b Kamtbrrby *tjb ferhbst prcvetb

umcvbrscty cm Kbxcda# wjbrb jb teuhjt `cvbrsb um`brhre`uetb daursbs elaut saitwerberdjctbdturb& saitwerb bmhcmbbrcmh& wbl `bvbfapkbmt& em` prahrekkcmh- Jb wes efsa em

e`gumdt praibssar et Rmcvbrsc`e` `b Hue`efegere *tjb sbdam` ferhbst pulfcd umcvbrscty cm

Kbxcda# cm tjb Kestbrs cm Eppfcb` Dakputcmh prahrek em` cm tjb Kestbrs cm CmiarketcamPbdjmafahcbs prahrek- Xctjcm tjb luscmbss icbf`& Gevcbr jes tutarb` dakpemcbs am tjb DKKc

Pbdjmcdef Tafutcam pradbss erbe& saitwerb erdjctbdturb& saitwerb `bschm pettbrms& em` RKF-

Jb warob` es e saitwerb bmhcmbbr kemehcmh tjb `bvbfapkbmt ai wbl+lesb` eppfcdetcams

`bfcvbrb` ta dfcbmts cm Kbxcda& Lrezcf& em` Jam`ures- Festfy& Jb jes pertcdcpetb` es DPA cmtwa stertup dakpemcbs-

Kerce+Bfbme Djevbz+Bdjbeherey cs pursucmh jbr ^j-@- `bhrbb cm Dakputbr Tdcbmdb et 

Erczame Ttetb Rmcvbrscty- Jbr waro cmdfu`bs erbes sudj es Eiibdtcvb Dakputcmh& Cmtbffchbmt 

Putar Tystbks& em` B`udetcamef Pbdjmafahy- ^rcar ta gacmcmh Erczame Ttetb Rmcvbrscty& sjbwes e tbedjcmh praibssar et Pbdmafôhcda `b Kamtbrrby *tjb ferhbst prcvetb umcvbrscty cm

Kbxcda# wjbrb jb teuhjt `cvbrsb um`brhre`uetb daursbs elaut prahrekkcmh femhuehbs&dakputbr erdjctbdturb& em` mbtwarocmh- Tjb warob` es e irbbfemdb saitwerb bmhcmbbr

`bvbfapcmh wbl+lesb` eppfcdetcams iar dfcbmts cm Kbxcda em` Rmctb` Ttetbs-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 4/113

0

Pelfb ai Damtbmts

 ERPJA\T 4

^\BIEDB 8

XBBO >5 5>

5- AYB\YCBX 5>5-5- XJEP CT E ^\AH\EKCMH FEMHREHB1 5>

5-<- FEMHREHB FBYBFT 5>

5-4- DAK^CFB\T EM@ P\EMTFEPA\T 5>5-0- FEMHREHB ^E\E@CHKT 5<

5-2- ^\AGBDP AI PJB DAR\TB 5<<- FBZCDEF EMEFSTCT 5<

<-5- DAK^CFCMH 5<

<-<- FBZCDEF ^EPPB\MT 54<-4- \BHRFE\ BZ^\BTTCAMT 50

<-0- @BPB\KCMCTPCD ICMCPB ERPAKEPAM 50

XBBO >< 59

\BYCBX AI PJB FBZCDEF EMEFSWB\ 59

<-2- ^\AH\EKKCMH E FBZB\ 534- TSMPEZ EMEFSTCT <>

4-5- PB\KCMEF EM@ MAM+PB\KCMEF BFBKBMPT <>

4-<- @B\CYEPCAM P\BB <5

XBBO >4 <0\BYCBXCMH IA\ ^\AH\EKKCMH E FBZB\ <0

4-4- LMI <24-0- TSMPEZ @CEH\EKT 45

XBBO >0 44

\BYCBX AI H\EKKE\ \B^\BTBMPEPCAMT 44

4-2- PS^BT AI H\EKKE\T 40

4-9- ^\AH\EKCMH E ^E\TB\ 434-8- @BICMCMH E FEMHREHB 05

XBBO >2 04

\BYCBX IA\ ^\AH\EKKCMH E FBZB\ 04

\BYCBXCMH PJB TSMPEZ \RFBT IA\ AR\ FEMHREHB 00

XBBO >9 03

\BYCBXCMH AR\ FEMHREHB 03

4-:- IC\TP EM@ IAFFAX TBPT 2>

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 5/113

2

XBBO >8 9>

\BYCBXCMH AR\ FEMHREHB — KA@CISCMH AR\ FBZB\ 9>\BYCBXCMH AR\ FEMHREHB — CK^FBKBMPCMH PJB ^E\TB\ 9>

\BYCBXCMH AR\ FEMHREHB — D\BEPCMH PJB @B\CYEPCAM P\BB 9<

XBBO >: 92

0- TBKEMPCD EMEFSWB\ 92

0-5- TSKLAF PELFB 8>0-<- YE\CELFBT E\B ^\BYCARTFS @BDFE\B@ 84

0-4- PS^B KEPDJCMH EM@ PJB DRLB AI PS^BT 84

XBBO >3 88

BZEK \BYCBX7 FBZCDEF EM@ TSMPEZ EMEFSTCT 88

BZEK \BYCBX7 TBKEMPCD EMEFSTCT 83

XBBO 5> :42- DA@B HBMB\EPCAM EM@ DAK^CFCMH :4

2-5- DAK^CFB\T :42-<- CMTP\RDPCAM EM@ YE\CELFBT JEM@FCMH :0

XBBO 55 ::

2-4- DAK^CFCMH ::9- KBKA\S ::

9-5- \RMPCKB KBKA\S ::9-<- ^ACMPB\T CM D!D// 3>

XBBO 5< 32

8- IRMDPCAMEF ^\AH\EKKCMH FEMHREHB7 FCT^ 328-5- EPAKCD BZ^\BTTCAMT 32

8-<- BYB\SPJCMH CT E FCTP 398-4- ^\B@CDEPBT 39

8-0- B\\A\T 39

8-2- \BDR\TCAM 398-9- DAMP\AF TP\RDPR\BT 38

XBBO 54 3:

8-8- LFADOT 3:8-:- YE\CELFBT 3:

8-3- FAA^T 3:8-5>- FADEF YE\CELFBT 33

8-55- X\CPCMH IRMDPCAMT 5>5

8-5<- @EPE TP\RDPR\BT 5>48-54- BZEK^FB 5>2

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 6/113

9

8-50- BZB\DCTBT 5>2

XBBO 50 5>8

:- FAHCDEF ^\AH\EKKCMH FEMHREHBT7 ^\AFAH 5>8

:-5- IEDPT EM@ \RFBT 5>8

:-<- URB\CBT 5>8:-4- @BICMCMH \RFBT 5>8

:-0- BZB\DCTBT 5>3

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 7/113

8

^rbiedb

Pjcs tbxt jes lbbm wrcttbm ta stu`bmts& praibssars& em` predtctcambrs cm tjb erbe ai dakputbr

sdcbmdb wja `bscrb ta setcsiy tjb meturef durcasctcbs ai emy prahrekkbr& jaw e prahrekkcmh

femhuehb waros1 Jaw e dakputbr um`brstem`s e prahrek1 Tetcsiycmh tjbsb durcasctcbsrbqucrbs fbermcmh ium`ekbmtef dakputbr sdcbmdb tapcds- Pjb damtbmt ai tjcs tbxt cmdfu`bs tjb

usb ai `cvbrsb tbdjmcqubs& c`bes& em` damdbpts fbermb` cm dakputbr sdcbmdb daursbs& sudj es7`ete strudturbs& ketjbketcdef dakputcmh tjbary& em` emefyscs em` `bschm systbk

kbtja`afahcbs-

Pjcs tbxt jes lbbm wrcttbm eckcmh ta pravc`b e huc`b iar tjb `bvbfapkbmt ai e dakpcfbr iar e

mbw prahrekkcmh femhuehb- Ct cs tjb pra`udt ai tjb bxpbrcbmdb ai tbedjcmh tjb prahrekkcmh

femhuehbs daursb em` ct cs strudturb` cm wbbos& wjbrb bedj wbbo davbrs e spbdcicd sbt ai rbfetb` tapcds es iaffaws7

XBBO >5- Cmtra`udtcam

Pjcs wbbo wb rbvcbw lescd tbrkcmafahy em` em avbrvcbw elaut dakpcfbrs& tremsfetars&cmtbrprbtbrs& em` da`b hbmbretcam- Pjbsb damdbpts wcff lb eppfcb` cm tjb iaffawcmh sbdtcams ai 

tjb tbxt- Pjcs wbbo efsa prbsbmts em cmtra`udtcam ta fbxcdef emefyscs& `bicmcmh& lbsc`bs tjb

mbb`b` tbrkcmafahy em` damdbpts& tjb ketjbketcdef prcmdcpfbs ta rbdahmczb fbxcdef pettbrms*war`s#7 `btbrkcmcstcd icmctb eutaketams em` rbhufer bxprbsscams-

XBBO ><- Fbxcdef emefyscs

Amdb `btbrkcmcstcd icmctb eutaketams em` rbhufer bxprbsscams erb `bicmb`& tjb `bvbfapkbmt ai tjb fbxcdef emefyzbr *Fbxbr# dem stert- @urcmh tjcs wbbo& ct cs bxpfecmb` jaw ta ckpfbkbmt e

Fbxbr iaffawcmh e stetb kedjcmb eppraedj-

XBBO >4- Femhuehbs& hrekkers& em` symtex `cehreks

Et tjcs pacmt& tjb fbxcdef emefyscs jes lbbm dakpfbtb`- Pjbrbiarb& ct cs passclfb ta c`bmtciy

wjbtjbr war`s erb vefc` ar mat& wjet ta `a wctj tjbk& em` wjet darrbdtcams dem lb ke`b

eutaketcdeffy- Pjb mbxt stbp cs ta lucf` sbmtbmdbs wctj tjasb war`s- Pjb iarkef `bicmctcam ai tjb strudturb ai e sbmtbmdb cm e femhuehb cs `bicmb` ly tjb hrekker ai tjet femhuehb- Oby

tapcds iar tjcs wbbo cmdfu`b7 hrekker dfesscicdetcam& LMI matetcam& symtex `cehreks& em``brcvetcam trbbs-

XBBO >0- Tymtex Emefyscs

Pjcs wbbo wb wcff fberm karb elaut hrekker dfesscicdetcam em` jaw ta rbprbsbmt tjb

hrekker ai e femhuehb uscmh LMI matetcam& jaw ta kep tjet LMI matetcam cmta symtex`cehreks& em` jaw ta tremsiark symtex `cehreks cmta da`b ta ckpfbkbmt e ^ersbr *e symtex

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 8/113

:

emefyzbr#- Pjcs wbbo icmcsjbs wctj e `bbpbr rbvcbw ai tjb prahrekkcmh femhuehb ta lb

`bvbfapb` es e `bsdbm`bmt+prb`cdtcvb+rbdurscvb ̂ ersbr-

XBBO >2- ^ersbr ckpfbkbmtetcam

Pjcs wbbo wb iadus am tjb ckpfbkbmtetcam ai tjb saitwerb dakpambmts iar tjb ^ersbr em`cts cmtbhretcam wctj tjb Fbxbr-

XBBO >9- ^ersbr vefc`etcam em` IC\TP em` IAFFAX sbts

Pjb symtex rufbs ai aur ^ersbr wcff lb vefc`etb` `bicmcmh tjb IC\TP em` IAFFAX sbts iar aur

hrekker rufbs- Pjcs wbbo& wb wcff davbr jaw IC\TP em` IAFFAX sbts erb defdufetb`-

XBBO >8- Pbstcmh Fbxbr em` ^ersbr tahbtjbr

@urcmh tjcs wbbo& aur Fbxbr em` ^ersbr erb tbstb` ta vefc`etb tjbcr darrbdt iumdtcamefcty-

Efsa& wb wcff rbvcbw jaw ta ckpfbkbmt e mbw ibeturb tjet wcff effaw aur ^ersbr ta hbmbretb`brcvetcam trbbs hrepjs ta iedcfctetb rbvcbwcmh tjet tjb symtex rufbs erb darrbdtfyckpfbkbmtb`-

XBBO >:- Tyklaf telfb em` Tbkemtcd emefyscs

Ta ier& wb jevb symtedtcdeffy darrbdt sbmtbmdbs iarkb` ly vefc` war`s- Maw& wjet rbkecms csta essurb tjet tjcs vefc` strudturb jes e vefc` kbemcmh- Pjcs cs tjb teso ta lb pbriarkb` ly

tjb sbkemtcd emefyscs& wjcdj cmdfu`bs vefc`etcam ai umcdcty cm c`bmtcicbrs& typb rbvcscam&perekbtbrs& rbturm vefubs& fahcd dam`ctcams cm damtraf strudturbs& em` errey cm`bx vefc`etcam-

XBBO >3- Tbkemtcd emefyzbr ckpfbkbmtetcam

Pjcs wbbo cmdfu`bs e rbvcbw ai fbxcdef em` symtex emefyzbrs ckpfbkbmtetcam em` jaw ta

cmtbhretb tjbk ta tjb sbkemtcd emefyzbr- @btecfs ai tjb sbkemtcd emefyzbr ckpfbkbmtetcamwcff lb rbvcbwb` em` wb wcff bstelfcsj tjb cmtrcmscdeffy fcmocmh lbtwbbm sbkemtcd emefyzbr

em` ^ersbr dakpambmts-

XBBO 5>- Da`b Hbmbretcam

Pjb emefyscs pert *fbxcdef& symtex& em` sbkemtcd# cs maw dakpfbtb- Pjcs wbbo& wb wcff rbvcbw

tjb symtjbscs pert ai tjb pradbss7 da`b hbmbretcam- Pjb tjbarbtcdef damdbpts rbfetb` ta da`b

hbmbretcam erb rbvcbwb` tjcs wbbo cmdfu`cmh em avbrvcbw ai tjb dakpcfetcam pradbss em` tjbusb ai vcrtuef kedjcmbs-

XBBO 55- Kbkary kemehbkbmt 

Pjb tapcd iar tjcs wbbo cs kbkary jem`fcmh iar vercelfbs em` iumdtcams? tjcs cmdfu`bs tjbrbvcbw ai damdbpts& sudj es effadetcam& pacmtbrs& em` rbdurscam-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 9/113

3

XBBO 5<- ^rahrekkcmh Femhuehbs ^ere c̀hks

Cm tjb prcar wbbos wb lucft e prahrekkcmh femhuehb- Pjcs femhuehb wes em ckpbretcvb ar  pradb`uref femhuehb- Jawbvbr& tjbrb erb atjbr pere`chks ai prahrekkcmh femhuehbs& sudj esiumdtcamef em` fahcdef prahrekkcmh- Pjcs wbbo davbrs em avbrvcbw ai iumdtcamef em` fahcdef

 pere`chks& em` em cmtra`udtcam ta e iumdtcamef prahrekcmh femhuehb7 FCT^-

XBBO 54- Iumdtcamef ^rahrekkcmh7 FCT^

Pjcs wbbo damtcmubs wctj tjb cmtra`udtcam ta prahrekkcmh cm FCT^ prbsbmtcmh jem`s+am

bxekpfbs em` bxbrdcsbs-

XBBO 50- Fahcdef ^rahrekkcmh7 ^\AFAH

Maw cs tjb turm ta rbvcbw tjb fahcdef prahrekkcmh femhuehbs pere`chk- Pjcs wbbo prbsbmts

tjb ium`ekbmtefs em` jem`s+am bxbrdcsbs ai tjb fahcdef prahrekkcmh femhuehb ^\AFAH-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 10/113

5>

XBBO >5

5- AYB\YCBX

Pjcs sbdtcam prbsbmts tjb avbrvcbw ai tjb wjafb daursb- ^ravc`cmh hbmbref damdbpts em`bxekpfbs-

5-5- Xjet cs e prahrekcmh femhuehb1

E femhuehb cs e wey ta dakkumcdetb- E femhuehb cs dakpasb` ly war`s!pcbdbs em` rufbs?

tjasb rufbs jbfp us ta daklcmb tjb war`s!pcbdbs tahbtjbr- E prahrekcmh femhuehb cs e wey

ta dakkumcdetb wctj tjb dakputbr- Ta& e prahrekkcmh femhuehb jes war`s em` rufbs-Bxekpfbs ai `ciibrbmt femhuehbs7 Geve& D!D//& ^brf& Tdjbkb& FCT^& em` ^\AFAH-

5-<- Femhuehb fbvbfs

Pjbrb erb jchj+fbvbf em` faw+fbvbf femhuehbs- Pjb dfasbr tjb femhuehb cs ta tjb meturef

*jukem# femhuehb ct cs e jchj fbvbf femhuehb- Pjb dfasbr tjb femhuehb cs ta tjb kedjcmb

femhuehb *lcmery& >–s em` 5–s# ct cs cm e faw+fbvbf- Jchj+fbvbf femhuehbs erb suppasb ta lbbescbr ta jukems& wjcfb faw+fbvbf erb suppasb ta lb bescbr iar tjb dakputbr- Em bxekpfb ai e

faw+fbvbf femhuehb cs essbklfy femhuehb- Bxekpfbs ai jchj+fbvbf erb Geve em` D!D//- Cmar`br ta e prahrek dauf` lb bxbdutb` ly e dakputbr tjcs prahrek sjauf` lb cm kedjcmb

femhuehb- Ta& wjet ci tjb prahrek cs wrcttbm cm e jchj+fbvbf femhuehb1 Pjbrb cs tjb mbb` ta

damvbrt ! tremsiark tjcs prahrek cmta e kedjcmb femhuehb- Pjet cs wjet e dakpcfbr `abs-

Pjb haef ai tjb dfess cs ta `bicmb e mbw femhuehb *war`s em` rufbs# em` ckpfbkbmt edakpcfbr iar tjet femhuehb-

5-4- Dakpcfbrs em` Premsfetars

Xjbm wb erb dakpcfcmh ! tremsfetcmh e prahrek *jchj+fbvbf# ta ematjbr *faw+fbvbf# femhuehb&tjb icrst stbp cs ta um`brstem` tjb archcmef prahrek- Rm`brstem`cmh tjb prahrek cmdfu`bs

um`brstem`cmh eff tjb war`s cm tjb prahrek& lb surb tjet tjby erb darrbdt em` tjet jevb tjbdarrbdt kbemcmh *eddar`cmh wctj tjb purpasb ai tjb prahrek#-

Cm atjbr war`s& ct cs ckpartemt ta omaw tjb fbxcdef& symtex& em` sbkemtcd `btecfs- Lbfaw cs elrcbi bxpfemetcam ai tjb purpasb ai bedj ai tjbsb perts cm e dakpcfbr7

  Fbxcdef emefyscs *Fbxbr#- Pjb war`s erb darrbdt-  Tymtex emefyscs *^ersbr#- Pjb war`s erb dammbdtb` cm e darrbdt wey- Pjb war`s iaffaw

tjb rufbs ai tjb femhuehb-  Tbkemtcd emefyscs- Pjb kbemcmh ai tjb sbmtbmdb cs darrbdt-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 11/113

55

Bxekpfb 5- Damsc`br tjb iaffawcmh da`b cm Geve

cmt {x} ; 2?

Ta cm e fbxcdef fbvbf eff tjb war`s erb darrbdt-Cm e ^ersbr fbvbf tjbrb cs em brrar- Eddar`cmh wctj tjb ‖hrekker‛ ai tjb femhuehb tjb ‖{‖ em`

‖}‛ erb kcspfedb`-

Bxekpfb <- Damsc`br tjb iaffawcmh da`b cm Geve

cmt x ; ‖jbffa‛?

Cm e fbxcdef em` persbr fbvbf tjcs da`b cs darrbdt- Jawbvbr& cm e sbkemtcd fbvbf ct cs mat darrbdt 

`ub ta tjb iedt tjbrb cs em cmtbhbr vercelfb tjet cs lbcmh esschmb` wctj e Ttrcmh vefub-

Bxekpfb 4- Pjbsb erb bxekpfbs ai fbxcdef fbvbf-

cmt Nx ; 8? ++ e vercelfb dem mat stert wctj e ‖N‛

cmt x ; 88Q? ++ e muklbr dem mat bm` wctj e ‖Q‛

ifaet x ; 8-8-2? ++ tjb iarket ai tjb muklbr cs mat darrbdt-

Bxekpfb 0-

kecm * # {x ; 2?

}

Pjbrb erb 3 war`s cm tjb da`b- Fbxcdeffy tjbrb cs mat e pralfbk-

Maw cm tbrk ai symtex *hrekker#& tjbrb cs mat e pralfbk bctjbr& eff tjb war`s erb cm tjbdarrbdt ar`br em` erb iaffawcmh tjb rufbs ai daklcmcmh war`s-

Cm tbrks ai sbkemtcd *kbemcmh# tjbrb cs e kcsteob- Ct cs mat passclfb ta omaw tjb kbemcmh ai tjb da`b lbdeusb ct cs mat dakpfbtb? tjbrb cs mat e `bicmb` typb iar vercelfb ‖x‛-

kecm * # {iaa *5&<#?x ; 2?

}

ckehcmb wb jevb tjb `bdferetcam ai tjb iaa kbtja` —= iaa *cmt x# { } 

Pjb pralfbk wctj tjcs pcbdb ai da`b cs cm e sbkemtcd fbvbf& `ub ta tjb iedt tjet eddar`cmh wctjtjb `bicmctcam ai tjb iaa kbtja`& ct cs bxpbdtb` ta jevb amfy amb perekbtbr em` mat twa-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 12/113

5<

Amdb yau um`brstem` tjb archcmef prahrek *tbxt# tjbm ct cs passclfb ta tremsfetb- Pjb kast 

dakpfbx tjcmh ta `a cs um`brstem` tjb da`b-

5-0- Femhuehb ^ere`chks

Xjet keob e prahrekcmh femhuehb `ciibrbmt irak ematjbr erb tjb rufbs tjet `bicmb tjbfemhuehb-

Iar bxekpfb& iar tjb desb ai em algbdt+arcbmtb` femhuehb tjb kecm `ciibrbmdb cs tjet ct jesdfessbs ta `bicmb em` jem`fb algbdts- Dfessbs erb e pertcdufer ocm` ai rufb iar algbdt+arcbmtb`

prahrekkcmh femhuehbs tjet `ciibrbmtcetb tjbk irak atjbr typbs ai femhuehbs-

5-2- ^ragbdt ai tjb daursb

Iar tjb daursb& wb wcff lb `bvbfapcmh em ckpbretcvb prahrekcmh femhuehb *tjbsb erb tjb

sckpfb ambs#- Cm ar`br ta ckpfbkbmt tjb dakpcfbr iar tjcs prahrekkcmh femhuehb wb erbhacmh ta usb em algbdt+arcbmtb` femhuehb-

<- FBZCDEF EMEFSTCT

Pjcs sbdtcam davbrs tjb bfbkbmts damsc`brb` iar tjb fbxcdef emefyscs-

<-5- Dakpcfcmh

Pjb iaffawcmh telfb sjaws bxekpfbs ai `ciibrbmt brrars- Pbxt cm rb` rbprbsbmts tjb brrar amtjb fcmb- Iar tjb `bicmctcam ai fbxcdef em` symtex brrars bedj fcmb wes damsc`brb`

cm`bpbm`bmtfy wjcfb iar tjb sbkemtcd brrars eff tjb fcmbs wbrb damsc`brb` es e scmhfb pcbdb ai da`b- Matcdb tjet wjbm wb erb dakpcfcmh e da`b& amdb em brrar cs `btbdtb`& tjbrb cs mat mbb`

ta obbp rbvcbwcmh iar iurtjbr brrars-

Bxprbsscam Fbxcdef Tymtex Tbkemtcd

cmt x ; 2?

ifaet y ; ‖jbffa‛? x

Ttrcmh Nz ; ‖3-2‛? x

cmt x; dsb40>? x

ci *x=50# wjcfb *2;;2# ci *cmte# e ; 5? x

x ; x?

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 13/113

54

y ; 54-02->? x

cmt kb ; 33333>>>>>5555<<<555555<<<<40040:4>02:4>30:? 1

wjcfb {x %; 3} * #? x

cmt {x} ; 5>? x

Iaur stbps dakpasb e dakpcfbr7

5-  Fbxcdef emefyscs<-  Tymtex emefyscs

4-  Tbkemtcd emefyscs

0-  Da`b hbmbretcam

<-<- Fbxcdef ^ettbrms

Ct jes lbbm `bicmb` tjet e femhuehb cs dakpasb` ly war`s em` rufbs- Xjbrb rufbs sjauf` lbum`brstaa` es tjb hrekker tjet `bicmb tjb femhuehb-

  Efpjelbt — sbt ai djeredtbrs vefc` cm e pertcdufer femhuehb  Ttrcmh — daklcmetcam ai djeredtbrs

  ^ettbrms — erb tjb rufbs ta iark e war`  Xar` + cs e strcmh tjet iaffaws e vefc` pettbrm cm e pertcdufer femhuehb-

  Paobm —Xar`s jevb e typb ar e detbhary *e pertcdufer pettbrm `bicmbs e detbhary#& tjbsb

detbharcbs erb mekb` taobms& sudj es Ttrcmh *jbffa#& em cmtbhbr muklbr *2228#& e ifaet muklbr *2-8#& em` C@ *x#& djeredtbrs *‚x–#& apbretars *; / + ' !#& `bfckctbrs *_ [ * # { } #

Bxekpfb 5- Pjcs fcmb jes 0 war`s& wb omaw tjet tjbrb erb 0 war`s lbdeusb tjby iaffaw e

pettbrm? tjus ct cs passclfb ta detbharczb bedj war` cm typb-

x ; 2?

  x + C@

  ; + apbretar

  2 + cmtbhbr

 

? + `bfckctbr

Ta cm ar`br ta lb elfb ta `bicmb tjb taobms cm e fcmb ct cs ckpartemt ta omaw tjb pettbrms em`lbcmh elfb ta c`bmtciy tjasb pettbrms- Pjbrb erb twa weys ta c`bmtciy pettbrms7

•  *tbxt+lesb #̀ \bhufer Bxprbsscams

•  *vcsuef+lesb #̀ @btbrkcmcstcd Icmctb Eutaketams

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 14/113

50

<-4- \bhufer Bxprbsscams

Pa drbetb e rbhufer bxprbsscam tjbrb cs mbb`b` em efpjelbt& em` tjbm e wey ta cmtbhretb tjb

djeredtbrs am tjb efpjelbt *apbretcams#- Pjbrb erb iaur apbretcams ta omaw wjbm warocmhwctj rbhufer bxprbsscams7

  Rmcam ar eftbrmetcam  Damdetbmetcam

  Wbra ar karb *Ofbbmb apbretar#

  Amb ar karb */#

Bxekpfb 5- Ckehcmb tjet wb erb `bicmcmh tjb pettbrms iar e femhuehb

^5 ; {2}

^< ; {> + 3} ; {>& 5& …& 3}

Rscmh tjbsb pettbrms wb dem rbvcbw tjb iaffawcmh war`s em` try ta icm` tjbcr typb-

  2 — tjcs cs e taobm tjet iaffaws pettbrm ^5

  : — tjcs cs e taobm tjet iaffaws pettbrm ^<  :> — eddar`cmh wctj tjb prbvcaus pettbrms *^5 em` ^<# ct cs mat e taobm

Maw ci wb ka`ciy ^< em` e`` ^4 es iaffaws7

^5 ; {2}

^< ; {>& 5& …& 3} /

^4 ; {e& l& d& `}/

  2 — stcff iaffaws ^5

  : — stcff iaffaws ^<

  :> — maw tjcs cs e taobm tjet iaffaws pettbrm ^<  el — cs e taobm tjet iaffaws pettbrm ^4

  elle — cs e taobm tjet iaffaws pettbrm ^4

<-0- @btbrkcmcstcd Icmctb Eutaketam

^ettbrms dauf` lb bxprbssb` uscmh rbhufer bxprbsscams ar uscmh e @btbrkcmcstcd IcmctbEutaketam *@IE#-

Pjb ^5 pettbrm elavb wauf` faao es iaffaw ci bxprbssb` uscmh e @IE- \bkbklbr tjet cm e@IE tjb ‖Ttert‛ felbf sjaws tjb stertcmh pacmt& tjb `aulfb+fcmb` dcrdfb rbprbsbmts tjb icmef

stetb& em` tjb vefubs am tjb erraws rbprbsbmt tjb vefub tjet mbb`s ta lb es cmput ta kavb

irak amb stetb ta ematjbr- Ta iar ^5 ; {2} tjb @IE wcff lb7

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 15/113

52

Xjbm uscmh e @IE ta bvefuetb ci e war` iaffaws e vefc` pettbrm& wjbm eff tjb djeredtbrs cm

tjb war` erb pradbssb` yau mbb` ta hbt cmta tjb icmef stetb *`aulfb+dcrdfb` stetb#-

Maw ci wb wemt ta `bicmb tjb pettbrm iar cmtbhbr muklbrs- Pjb rbhufer bxprbsscam cs7 > | *5+

3#*>+3#'

Em` tjb @IE wcff lb7

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 16/113

59

XBBO ><

\BYCBX AI PJB FBZCDEF EMEFSWB\

Femhuehbs jevb rufbs iar7

  Fbxcdef

  Tymtex  Tbkemtcd

Fbxcdef cs elaut war`s- Pa rbvcbw tjb fbxcdef sbdtcam tjbrb erb7

  cmputs& em efpjelbt   rufbs& pettbrms

  autputs& taobms

Cm ar`br ta bxprbss ar rbdahmczb pettbrms tjbrb erb twa aptcams7

  \bhufer bxprbsscams *tbxt+lesb` rbprbsbmtetcam#

  @IE *vcsuef+lesb` rbprbsbmtetcam#

\bvcbw ai \bhufer Bxprbsscams

Pa drbetb e rbhufer bxprbsscams tjbrb erb apbrem`s *djeredtbrs# em` apbretars-

Apbretars7

  - *`at# wcf` djeredtbr- Es tjb `at cs usb` es apbretar& ci wb wemt ta cmdfu`b tjb `at es edjeredtbr wb mbb` ta jevb tjb bsdepb djeredtbr ‖V‛-

  | A\  1 Wbra ar amb

  ' Wbra ar karb

  / 5 ar karb  _ [ cm`cdetb e sbt 

  * # cm`cdetb e sbt& lut e `ciibrbmt ocm` ai sbt 

Bxekpfbs-

\5 ; _e l d[/

Xctj tjcs rbhufer bxprbsscam ct cs passclfb ta drbetb tjb iaffawcmh war`s7 ‖e‛& ‖eld‛& ‖eleeel‛-

Pjb sbt damtecmb` cmsc`b tjb lredobts jevb tjrbb bfbkbmts- @ub ta tjb iedt tjcs rbhuferbxprbsscam jevb tjb ‖/‛ apbretar *amb ar karb#& tjcs rbhufer bxprbsscam demmat drbetb em

bkpty vefub-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 17/113

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 18/113

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 19/113

53

<-2- ^rahrekkcmh e Fbxbr

Jevcmh tjb iaffawcmh @IE& jaw dem wb ckpfbkbmt tjb Fbxbr1

Iar tjb ckpfbkbmtetcam ai tjcs @IE ct cs passclfb ta usb dam`ctcams sudj es ci+bfsb- Pjb

pralfbk uscmh dam`ctcamefs cs tjb dakpfbxcty ai tjb prahrek& tjb karb stetbs cm tjb @IE tjb

karb dakpfbxcty cm tjb dam`ctcams& em` tjcs dem deusb pralfbks sudj es ieuft pramb- Pjbm emeftbrmetcvb cs ta usb e stetb kedjcmb-

Rscmh e stetb kedjcmb effaw ta tremsiark e @IE cmta e telfb- Rscmh e stetb kedjcmb rb`udbs

tjb dakpfbxcty ai tjb da`b-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 20/113

<>

> 5

T> T> T5

T5 T< T>

T< T5 T<

Pa tremsiark tjb @IE cmta e stetb kedjcmb *telfb#& yau usb es raws eff tjb stetbs am tjb telfb&

em` yau usb es dafukms tjb `ciibrbmt vefubs ta djemhb irak amb stetb ta ematjbr- Cm tjb @IE

elavb& tjbrb erb 4 stetbs& tjus tjb telfb wcff jevb tjrbb raws- Pa kavb irak amb stetb taematjbr tjb cmputs erb >s em` 5s& sa tjb telfb wcff jevb twa dafukms- Pjb vefubs cmsc`b tjb

telfb rbprbsbmts tjb rbsuftemt stetb ci C stertb` cm tjb stetb am rbprbsbmtb` ly tjb raw em`jevb tjb cmput rbprbsbmtb` ly tjb dafukm& b-h- ci C ek cm tjb stetb T < *fest raw# em` hbt tjb

cmput >& C wcff kavb ta tjb stetb T5-

Pjb iaffawcmh cs tjb psbu`a+da`b ta ckpfbkbmt tjb fbxcdef emefyzbr-

!!stbp 5stetb ; T>?

!! stbp <wjcfb *jesFbttbrs*## {

f ; rbe`Fbttbr*#?stetb ; defdufetbTtetb*stetb& f#?

}

!! stbp 4

ci *stetb ;; T>#prcmt *‖taobm darrbdt‛#?bfsb

prcmt *‖brrar‛#?

4- TSMPEZ EMEFSTCT

Cm e symtedtcdef fbvbf& e femhuehb jes rufbs& mekbfy tjb hrekker& tjet `bicmbs tjb wey tadaklcmb tjb war`s cm tjb femhuehb-

Cm ar`br ta spbdciy tjb hrekker ai e femhuehb tjbrb erb twa aptcams amb tbxt+lesb` Ledous+Meur Iark *LMI#? em` amb vcsuef+lesb -̀

4-5- Pbrkcmef em` mam+tbrkcmef bfbkbmts

Xjbm `bicmcmh e hrekker tjbrb erb tbrkcmef bfbkbmts& tjet wb deffb` war`s& em` mam+

tbrkcmef bfbkbmts-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 21/113

<5

Iar tjb fbxcdef emefyscs tjb cmput wes tjb efpjelbt em` tjb autput wbrb taobms& em` tjb rufbs

`cdtetb jaw ta kavb irak em efpjelbt ta taobms-

Iar tjb symtedtcdef emefyscs tjb cmput erb war`s em` tjb autput tjb dfesscicdetcam ai tjasbwar`s es tbrkcmef ar mam+tbrkcmef bfbkbmts-

Bxekpfb 5- Pjcmo iar e kakbmt cm tjb Bmhfcsj femhuehb- Pjb iaffawcmh bxprbsscams rbprbsbmt mam+tbrkcmef em` tbrkcmef bfbkbmts-

6vbrls= ; rum& wefo& scmh& wrctb

6sulgbdt= ; C& yau& Jbfbm& Gevcbr

Cm tjbsb bxprbsscams vbrls em` sulgbdt erb tjb mam+tbrkcmef bfbkbmts wjcfb rum& wefo& C& yau

erb tbrkcmef bfbkbmts-

E mam+tbrkcmef bfbkbmt dem lb bxprbssb` ly e sbt ai tbrkcmef bfbkbmts& lut efsa es e sbt ai mam+tbrkcmef bfbkbmts- Iar cmstemdb& tjb iaffawcmh cs e mam+tbrkcmef bxprbssb` cm tbrks ai atjbr mam+tbrkcmef bfbkbmts7

6sbmtbmdb= ; 6sulgbdt=6vbrl=

Mam+tbrkcmef bfbkbmts erb efweys lbtwbbm ‖6‛ em` ‖=‛& ar sakb fctbreturb usbs R^^B\DETBta rbprbsbmt tjb mam+tbrkcmef bfbkbmts- Ta& tjb iaffawcmh bxprbsscam cs bqucvefbmt ta tjb

prbvcaus bxprbsscam7

TBMPBMDB ; TRLGBDP YB\L

Bxekpfb 5- Hcvbm tjb iaffawcmh sbmtbmdb ‖Jbfbm wefo‛& cs tjcs sbmtbmdb darrbdt1

Sbs& `ub ta ct iaffaws tjb rufb TBMPBMDB ; TRLGBDP YB\L& wjbrb tjb TRLGBDP cs Jbfbm em`tjb YB\L cs wefo-

4-<- @brcvetcam Prbb

Bxekpfb <- Hcvbm tjb iaffawcmh hrekker7

6B= ; 6B= / 6B=6B= ; 6B= ! 6B=

6B= ; cmtbhbr

Cm tjcs hrekker tjbrb erb tjrbb tbrkcmef bfbkbmts7 ‖/‛& ‖!‛& em` ‖cmtbhbr‛ em` amfy amb mam+

tbrkcmef bfbkbmt 6B=-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 22/113

<<

Ci wb jevb tjb bxprbsscam ‖2 / 5‛& cs ct passclfb ta omaw ci ct cs darrbdt eddar`cmh wctj tjb

elavb hrekker1 Xbff& tjb icrst tjcmh cs ta omaw wjcdj ai tjb rufbs cm tjb hrekker cs tjb icrst amb- Fbts sey tjet tjb icrst rufb cm tjb hrekker cs tjb icrst amb cm tjb fcst& sa ta emefyzb tjb

bxprbsscam ‖ 2 / 5‛ wb `a tjb iaffawcmh7

2 / 56B= / 6B=

6B=

Pjcs dem lb sbbm es e trbb& tjcs cs e `brcvetb trbb- @ub ta tjb iedt ct cs passclfb ta icm` e trbb taketdj tjb bxprbsscam tjbm wb dem sey tjet ct cs darrbdt-

Maw ci wb jevb tjb iaffawcmh bxprbsscam& wjbm rbvcbwcmh tjb bxprbsscam em` wb hbt ta tjb

pacmt ta rbvcbw tjb twa apbretars !& ct cs bxpbdtb` tjet eitbr amb ! tjbrb cs em 6B= em` cm tjcs

desb tjbrb cs ‖! 4‛ em` tjcs cs mat e vefc` 6B=- Ta& cm tjcs pacmt ct cs passclfb ta sey tjet tjb

bxprbsscam cs mat darrbdt-

2 / 5 ! ! 4

6B= / 6B= 6B=1

6B= 6B=

^rahrekkcmh femhuehbs erb mat eklchuaus& em` tjcs cs lbdeusb emy sbmtbmdb jes amb em`amfy amb trbb essadcetb`-

Ci wb jevb tjb bxprbsscam 2 ! 4 / 5& jaw ct dem lb bvefuetb`1 Iar tjcs bxprbsscam& tjbrb erbtwa aptcams ta drbetb tjb trbb- Pjb icrst amb damsc`brcmh tjet 2!4 erb tahbtjbr em` tjb put ct 

tahbtjbr wctj tjb 5- Xb dem jevb tjb iaffawcmh trbb7

2 ! 4 / 5

6B= ! 6B=

6B= / 6B=

6B=

Lut efsa& ct cs passclfb ta damsc`br icrst 4 / 5 tahbtjbr em` tjbm cmdfu`b tjb 2 !-

2 ! 4 / 5

6B= / 6B=

6B= ! 6B=

6B=

Matcdb tjet LAPJ pradbssbs erb darrbdt& tjcs kbems tjet tjbrb erb twa `ciibrbmt trbbs tjet 

rbprbsbmt tjb sekb bxprbsscam-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 23/113

<4

Pjcs cs mat darrbdt? e hrekker sjauf` mat effaw tjet amb bxprbsscam jes karb tjet amb tjrbbta rbprbsbmt ct- Ta& tjcs hrekker cs mat darrbdt `ub ta tjb iedt ct effaws eklchucty- Pjcs

hrekker mbb`s ta lb icxb`-

Bxekpfb 4- Damsc`br tjb iaffawcmh hrekker iar ci stetbkbmts- Cs tjcs hrekker darrbdt *cmtbrks ai eklchucty#1

stkt  ci stkt 

stkt atjbrci stkt  ci bxpr tjbm stkt 

ci stkt  ci bxpr tjbm stkt bfsb stkt 

Ci bxpr tjbm Ci bxpr tjbm atjbr bfsb atjbr

stkt stkt  

ci stkt 

stkt stkt 

Lut ehecm& tjcs bxprbsscam dauf` lb bxprbssb` uscmh e `ciibrbmt trbb- Ta& ehecm tjcs hrekker

cs mat darrbdt cm tbrks ai eklchucty-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 24/113

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 25/113

<2

Maw tjb pralfbk cs jaw ta ckpfbkbmt tjcs telfb cm da`b- Pjbrb erb `ciibrbmt weys tackpfbkbmt tjcs telfb? amb ai ct *usb` ly tjb praibssar# cs uscmh e jesj telfb& wjbrb hcvbm tjb

durrbmt stetb em` em cmput& tjb jesj telfb rbturm tjb mbxt stetb ar em brrar ci tjcs cs tjb desb-

Amb passclfb wey ta ckpfbkbmt tjcs cs ta7

>-  Drbetb tjb telfb *uscmh e `ete strudturb#-

5-  @bicmb wjcdj stetb cs tjb stertcmh stetb-

<-  Rsb e faap ta ha tjrauhj tjb telfb em` altecm tjb mbxt stetb hcvbm tjb durrbmt stetb em`em cmput *e vefub ta djemhb irak amb stetb ta ematjbr#-

Ci wb wemt ta e`` tjb rbprbsbmtetcam ai Jbxe`bdckefs& Adtef& ar Lcmery muklbrs wjet wb

mbb` ta `a cs ta e`` karb raws em` dafukms cm tjb telfb& lut tjb da`b `abs mat djemhb- Ta&

e``cmh mbw stetbs hbmbretbs karb dakpfbxcty cm tjb telfb& lut mat cm tjb da`b-

Cm ar`br ta e`` tjbsb mbw pettbrms wb mbb` ta omaw jaw tjasb muklbrs erb rbprbsbmtb`-Iar bxekpfb7

5-  Lcmery muklbrs dauf` lb rbprbsbmtb` ly e strcmh tjet sterts wctj tjb prbicx ‖>l‛ em` tjet cs iaffawb` ly e sbqubmdb ai >–s em` 5–s& b-h-& >l>55>-

<-  Jbxe`bdckef muklbrs dauf` lb rbprbsbmtb` ly e strcmh tjet sterts wctj tjb prbicx ‖>x‛

iaffawb` ly e sbqubmdb ai jbxe`bdckef syklafs _>+3& E+I[& b-h-& >xII-4-  Cmtbhbr cs e sbqubmdb ai _>+3[- Cm sakb femhuehbs sudj es Geve ar D!D// cmtbhbrs demmat 

stert wctj e >& b-h- 82:-0-  Adtef muklbrs erb rbprbsbmtb` wctj e sbqubmdb ai muklbrs _>+8[- Cm sakb femhuehbs

sudj es Geve ar D!D//& tjcs sbqubmdb efweys sterts wctj ‖>‛& b-h-& >82- Matb tjet cm aur

pragbdt e muklbr tjet sterts wctj e > dauf` lb rbdahmczb` es em cmtbhbr ar e ifaet *ci ct jestjb `bdckef pacmt#-

4-4- LMI

Amdb tjb fbxcdef emefyscs cs `amb& wjet wb jevb cs lumdj ai taobms- Xb omaw iar surb tjet eff

tjasb taobms erb vefc`- Pjb mbxt stbp cs ta rbvcbw tjb symtex& c-b-& tjet tjb war`s iaffaw tjb

rufbs ta lb daklcmb`- Pjcs rufbs iark tjb hrekker ai tjb femhuehb-

Hrekkers dem lb bxprbssb` uscmh tjb LMI tjet cs tjb tbxt+lesb` iark ta bxprbss e hrekker-

LMI usbs twa bfbkbmts& tbrkcmef em` mam+tbrkcmef bfbkbmts- Xjbm em bxprbsscam cs

bvefuetb` ta vbrciy ci ct iaffaws ar mat e hrekker bxprbssb` cm e LMI& wb drbetb e `brcvetcamtrbb- Pjcs tjrbb sjaws tjb iaffawb` petj ta davbr tjb bxprbsscam uscmh tjb rufbs cm tjb

hrekker-

Amb haef cs ta jevb mam+eklchuaus hrekkers- E hrekker cs eklchuaus wjbm tjbrb cs

passclfb ta drbetb karb tjem amb `brcvetcam trbb ta rbprbsbmt em bxprbsscam-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 26/113

<9

Ta& jaw ta evac` eklchucty1 Jbrb erb sakb rufbs7

5-  Ct cs mbb`b` ta `bicmb e syklaf tjet wauf` lb usb` es tjb stertcmh syklaf-<-  Ct cs mbb`b` ta `bicmb wjcdj cs tjb icrst rufb ai tjb hrekker- Iar `bieuft& tjb icrst rufb

cm tjb hrekker wauf` lb tjb icrst rufb cm tjb fcst em` wb sjauf` usb tjb fbitkast `brcvetcam prcmdcpfb-

Hcvbm tjb iaffawcmh hrekker7

6B= 6B= / 6B=

6B= 6B= ' 6B=6B= *6B=#

6B= Cmtbhbr

Eddar`cmh wctj prbvcaus rufbs tjb icrst rufb cm tjb hrekker cs tjb icrst cm tjb fcst? tjus& 6B= cs

tjb stertcmh syklaf- Lbsc`b tjet wb mbb` ta iaffaw tjb fbitkast `brcvetcam- Hcvbm tjet& tabvefuetb tjb prbvcaus bxprbsscam wb wcff `a tjb iaffawcmh7

Em` ci wb jevb tjb iaffawcmh bxprbsscam7 5> / <> ' 4>-

Ta wb taao tjb icrst rufb 6B= 6B= / 6B=& em` stert irak tjb fbit sc`b& tjet cs jaw wbc`bmtciy tjet wb mbb` em Cmtbhbr em` tjet tjb 5> icts tjet rufb- Pjbm wb omaw tjet wb mbb` e

pfus syklaf& em` ematjbr 6B=- Maw& wb maw tjet em 6B= dauf` lb 6B= ' 6B=& tjet cs tjb rufbwb usb& em` ehecm& iar bedj 6B= wb dem sey tjet em` 6B= dem lb em Cmtbhbr-

Fbt sbb ematjbr bxekpfb7 5> / <> / 4>-

Iar tjcs desb& wb wcff jevb pralfbks wctj eklchucty `ub ta tjb iedt bvbm tjauhj wb stert irak tjb fbit sc`b tjbrb cs em aptcam ta icm` et fbest twa `ciibrbmt `brcvetcam trbbs-

Xb stert wctj tjb icrst rufb7 6B= 6B= / 6B=? jawbvbr& wjbm ct dakbs ta `bicmb tjb fbitkast 

6B= tjbrb cs em aptcam ta usb tjb rufb 6B= cmtbhbr ar 6B= 6B= / 6B=-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 27/113

<8

Pjcs pralfbk cs deusb` lbdeusb wb jevb sbvbref bxprbsscams iar tjb sekb bfbkbmt 6B=-Ta& tjb safutcam cs ta jevb tjb stert syklaf& b-h-& 6B= em` tjbm tjb icrst rufb cm tbrks ai 

atjbr bfbkbmts em` tjb sekb iar tjb rbst ai tjb rufbs- Iar bxekpfb& tjb prbvcaushrekker dauf` lb bxprbssb` es iaffaws7

6B= 6K= / 6K=6K= 6^= ' 6^=

6^= *6M=# | 6M=

6M= Cmtbhbr

Cm tjcs hrekker 6B= cs tjb stertcmh bfbkbmt em` ct cs cm tbrks ai K& K cs cm tbrks ai ^& ^cs cm tbrks ai M& em` M cm tbrks ai e tbrkcmef bfbkbmt- Xctj tjcs hrekker tjbrb cs mat em

aptcam ta jevb karb tjet amb `brcvetcam trbb& c-b-& ct cs mat eklchuaus- Matb tjet ly `acmh

tjcs& wb erb efsa safvcmh pralfbks wctj tjb prbdb`bmdb ai tjb apbretcams / em` '-Jawbvbr& tjcs hrekker jes e pralfbk& eff tjb bxprbsscams mbb` ta jevb em e``ctcam& `ub

ta tjb icrst rufb 6B= 6K= / 6K=-

Pa icx tjcs pralfbk wb mbb` ta ka`ciy tjb hrekker ta lb tjb iaffawcmh7

MAPB 57 Pjb matetcam usb` jbrb cs `ciibrbmt irak tjb amb rbvcbwb` am dfess ta ketdj ct wctj tjb tbxtlaao-

MAPB <7 Pjb hrekker jbrb wes up`etb` *em` ct cs `ciibrbmt irak tjb amb rbvcbwb` cm dfess# ta keob ct 

sckpfbr- Ct cs tjb sekb tjet eppbers cm tjb sfc`bs-

6B= 6K= {/ 6K=}

6K= 6^= {' 6^=}

6^= *6M=# | 6M=

6M=

Cmtbhbr

Pjb stert syklaf cs stcff 6B= em` tjb icrst rufb cs stcff tjb icrst am tjb fcst- Jawbvbr& ly

e``cmh tjb ‖{‖ em` ‖}‛ syklafs wb erb seycmh tjet 6B= dauf` lb 6K= e``b` wctj > ar

karb 6K=–s tbrks- Takbtjcmh sckcfer jeppbms wctj tjb rufb 6K=-Pjcs mbw matetcam cs mekb` Bxtbm`b` LMI ar BLMI- Xjbrb tjb syklafs ‖{‖ em` ‖}‛ erb

usb` ta rbprbsbmt e rbpbtctcam ai bfbkbmts *> ar karb# em` syklafs ‖_‖ em` ‖[‛ erb usb`

ta rbprbsbmt em aptcamef bfbkbmt *> ar 5#-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 28/113

<:

Maw ci wb jevb tjb bxprbsscam 5> / <> / 4>-

Cm tjb hrepj elavb& tjb icrst rufb ta lb iaffawb` cs 6B=6K= / 6K=& tjbm iar tjb

fbitkast 6K= tjb rufb ta lb iaffawb` cs tjet 6K= 6^=& tjbm 6^= 6M=& em` 6M=

Cmtbhbr- Pjbm& wb ha ledo ta tjb icrst rufb tjet cs cmdakpfbtb& cm tjcs desb& tjb rchjtkast 6K=- Pjbm& wb ha `awm ta dakpfbtb ct- Xb ha ledo ehecm& ta icm` aut tjet tjbrb cs

ematjbr ‖/‛ syklaf& sa wb mbb` em bxtre 6K=& em` ehecm wb dakpfbtb ct-

Maw& ci wb jevb tjb iaffawcmh bxprbsscam7 2 ' *5/8# / 9 ' 2

B

K^ ' ^

M * M #

Cmtbhbr

2

Matcdb tjet wjbm wb hbt ta tjb pacmt wjbrb wb usb tjb rufb 6^= *6M=# wb hat stcdo&

`ub ta tjb iedt 6M= dem amfy lb em Cmtbhbr& em` wb jevb e wjafb bxprbsscam tjbrb ‖5 /

8‛-

Ta& wb mbb` ta ka`ciy tjb hrekker ehecm& ta lb tjb iaffawcmh-

6B= 6K= {/ 6K=}

6K= 6^= {' 6^=}6^= *6B=# | Cmtbhbr

Ta hacmh ledo ta tjb bxprbsscam7 2 ' *5/8# / 9 ' 2-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 29/113

<3

Xb dem sey tjet 6^=*6B=# em` tjet 6B=6K=/6K=- Xjbm wb icmcsj wctj tjet 

bxprbsscam wb ha ledo& wb icmcsj tjb *B# bxprbsscam& sa wb ha ledo& tjb ^'^ cs dakpfbtb&sa wb ha ledo eff tjb wey ta 6B= em` matcdb tjet wb jevb ematjbr ‖/‛ syklaf sa wb usb

tjb {/ 6K=} sbdtcam ai tjb rufb em` dakpfbtb ct-

Amb karb bxekpfb& damsc`br tjb iaffawcmh bxprbsscam7

2 ' < / 5>

Pjb icrst rufb cs 6B=& tjb mbxt rufb wcff lb 6K= *efamb# lbdeusb tjb mbxt djeredtbr cs e °'°&

sa wb demmat eppfy tjb 6K= / 6K=- Maw 6K= dem lb 6^='6^=- Ta wb ha fbit em` djbdo tjb icrst 6^=& 6^= dem em Cmtbhbr em` icmeffy e 2- Maw& wb jevb ta ha ledo ta tjb icrst 

fbvbf wb fbit cmdakpfbtb& wjcdj cs tjb 6^='6^=& lbdeusb wb mbb` ta dakpfbtb tjb sbdam`

6^=& sa tjet 6^= cs em Cmtbhbr em` icmeffy e <- Maw wb mbb` ta ha ledo umtcf emcmdakpfbtb fbvbf& tjet wauf` lb 6B= ta tjb tap& em` wb dem sey maw tjet 6B= dem lb 6K=

/ 6K=

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 30/113

4>

Amb karb bxekpfb& damsc`br tjb iaffawcmh bxprbsscam7 2 ' *< / 5>#

Jakbwaro- @a tjb `brcvetcam trbbs iar tjb iaffawcmh twa bxprbsscams-•  * 2 ' < # / 5 >

•  2 ' < ' 5 >

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 31/113

45

4-0- Tymtex @cehreks

Es iar fbxcdef emefyscs tjbrb cs e wey ta bxprbss rufbs uscmh tbxt *\bhufer bxprbsscams# ar

uscmh e vcsuef `cehrek *@IE#? iar symtex wb efsa jevb tjbsb twa aptcams- Xb dem usb tjbLMI ar BLMI *tbxt+lesb`# ar wb dem usb symtex `cehreks *vcsuef+lesb #̀-

Pjb prbvcaus hrekker dem lb bxprbssb` wctj tjb iaffawcmhs `cehreks7

MAPB7 Pjb hrekker jbrb wes up`etb` *em` ct cs `ciibrbmt irak tjb amb rbvcbwb` cm dfess# ta keob ct 

sckpfbr- Ct cs tjb sekb tjet eppbers cm tjb sfc`bs-

6B= 6K= {/ 6K=}

6K= 6^= {' 6^=}6^= *6B=# | Cmtbhbr

Matcdb tjet tbrkcmef bfbkbmts erb syklafczb` wctj dcrdfbs& wjbm mam+tbrkcmefs erb

rbprbsbmtb` wctj rbdtemhfbs- Matcdb tjet tjb errawjbe`s rbprbsbmt tjb ifaw am tjb`cehrek& ‖ar‛ bxprbsscams erb rbprbsbmtb` wctj `cvbrsb petjs dakcmh aut irak tjb raat 

ai bedj `cehrek-

Maw& wjet ci wb wemt ta `bicmb e mbw hrekker tjet cs elfb ta rbdahmczb fahcdef&

rbfetcamef& em` erctjkbtcdef apbretcams1 Em` usb ct ta bvefuetb tjb iaffawcmh bxprbsscam7

5> / <> = 52 ) +5> %; 5 | <> ! 5> / 5 = 2

Pjb icrst stbp cs ta `bicmb tjb prbdb`bmdb ai eff tjcs apbretcams- Ta fahcdef apbretcams erb

tjb ambs wctj jchjbr prbdb`bmdb& tjbm dakbs tjb rbfetcamef& em` tjbm erctjkbtcdef-Matcdb tjet tjcs prbdb`bmdb cs `bicmb` ly jaw amb rufb deffs *usbs# e sulsbqubmt rufb-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 32/113

4<

Pjb `cehreks lbfaw rbprbsbmt tjb hrekker& wjbrb 6B= cs tjb stertcmh syklaf- Matcdb

tjet eddar`cmh wctj tjb `cehrek& 6B= cs bxprbssb` cm tbrks ai 6E=- Matcdb tjet tjbprbdb`bmdb ai tjb apbretcams cs `bicmb` ly jaw amb rufb deffs *usbs# e sulsbqubmt rufb-

Jakbwaro- Hbmbretb tjb LMI ar BLMI iar tjbsb `cehreks-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 33/113

44

XBBO >0

\bvcbw ai Hrekker \bprbsbmtetcams Hrekkers dem lb bxprbssb` uscmh LMI ar BLMI tjet erb tbxt+lesb` rbprbsbmtetcams& ar tjby

dem lb rbprbsbmtb` uscmh symtex `cehreks-

Ct cs ckpartemt ta rbkbklbr tjet wjbm drbetcmh e hrekker ct cs ckpartemt ta obbp cm kcm` tjethrekkers sjauf` lb ma eklchuaus-

\bkbklbr tjet wjbm drbetcmh tjb `cehreks& tjb apbretcam wctj tjb jchjbr prbdb`bmdb sjauf` lb cs tjb amb et tjb bm` ai tjb sbqubmdb ai `cehreks-

Xjbm wb jevb tjb symtex `cehreks ct cs passclfb ta altecm tjb LMI *Ledous+Meur Iark# ar tjb BLMI *Bxtbm`b` LMI# ai tjbk-

Hcvbm tjb iaffawcmh `cehreks wb dem altecm tjb LMI em` BLMI bxprbsscams-

Fbts try ta drbetb tjb LMI em` BLMI iar tjb @ rufb-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 34/113

40

LMI@ I | I ! I | I ! I ! I … | I ' I | I ' I ' I… | I ' I ! I ' I ' I ! I …

BLMI@I * _!I[ | _' I[#–

 MAPB7 Pjb BLMI matetcam cs `ciibrbmt irak tjb matetcam am tjb tbxtlaao- Rscmh tjb matetcam ai tjbtbxtlaao tjb matetcam wauf` lb @{_!I | _'I[}& wjbrb _ [ kbems > ar 5 bfbkbmt& em` { } kbems > ar karb rbpbtctcams-

Bxbrdcsb- Pjb prbvcaus hrekker wes drbetb` lesb` am tjb rufbs `csdussb` cm tjb dfess em` cmar`br ta lb elfb ta persb tjb iaffawcmh bxprbsscam7

5> / <> = 52 ) +5> %; 5 | <> ! 5> / 5 = 2

Jawbvbr& wjet ci wb djemhb tjb bxprbsscam ta lb7

5> / <> = 52 ) *+5> %; 5 | <> ! 5> / 5 = 2#

Cm ar`br ta lb elfb ta rbdahmczb tjb perbmtjbscs wb mbb` ta ka`ciy tjb hrekker ta e`` tjb perbmtjbscs rufb- ^erbmtjbscs rufb& tjet cs em essadcetcam rufb& jes tjb jchjbr prbdb`bmdb& tjusct sjauf` lb tjb fest rufb cm tjb sbqubmdb ai tjb `cehreks- Ta& wb mbb` ta e`` e rufb ar ka`ciytjb fest rufb- Xb dem ka`ciy tjb rufb H es iaffaw7

Ci wb wemt ta e`` karb apbretcams sudj es sultredtcam *+#& kuftcpfcdetcam *'#& karb fahcdefapbretcams sudj es *;;#& wjet ct teobs cs ta e`` karb aptcams cm tjb durrbmt rufbs- Ta& ci ehraup ai rufbs jevb tjb sekb prbdb`bmdb tjby erb cm tjb sekb rufb- Iar bxekpfb& sultredtcamjes tjb sekb prbdb`bmdb tjem tjb e``ctcam& sa tjby latj wauf` lb cm tjb sekb rufb? iar kuftcpfcdetcam& ct wcff ha cm tjb sekb rufb es `cvcscam? iar tjb fahcdef bquef apbretcam *;;#apbretcam wcff lb cm tjb sekb rufb es tjb fahcdef apbretcam `ciibrbmt *%;#-

4-2- Pypbs ai hrekkers

 Pjbrb erb iaur typbs ai hrekkers- Ta ier eff tjb hrekkers tjet wb jevb davbrb` sa ier erbdfesscicb` es Damtbxt+irbb hrekkers- Pjb rbesam wjy wb djaasb ta usb damtbxt+irbb hrekker cs lbdeusb ckpfbkbmtetcam rbesams- Ckpfbkbmtcmh tjb ^ersbr iar e Damtbxt+irbb hrekker csbescbr dakperb` wctj atjbr hrekkers& ct cs mat tjb bescbr *tjb bescbr erb \bhufer hrekker#

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 35/113

42

Pjb typbs ai hrekker erb tjb iaffawcmh7

•  \bdurscvbfy bmukbrelfb

•  Damtbxt sbmsctcvb

•  Damtbxt+irbb

• \bhufer 

Pjb hrekkers erb sulsbts ai bedj atjbr& es sjawm cm tjb ichurb lbfaw- Ta& rbhufer hrekkerserb e sulsbt ai damtbxt+irbb& em` tjbsb erb e sulsbt ai damtbxt+sbmsctcvb& em` icmeffy tjasb erb esulsbt ai rbdurscvbfy bmukbrelfb hrekkers-

4-2-5- Damtbxt+irbb hrekkers Damtbxt+irbb hrekkers erb `bicmb` wctj tjb iaffawcmh rufbs7

E T&

E ∊ M& T ∊ *M R P#' + MXjbrb M rbprbsbmts tjb sbt ai mam+tbrkcmef bfbkbmts em` P rbprbsbmts tjb sbt ai tbrkcmefbfbkbmts-

Cm tjcs typb ai hrekkers tjb fbit sc`b ai tjb rufb dem amfy jevb amb ma tbrkcmef bfbkbmt em`

mamb tbrkcmef bfbkbmts *E ∊ M#& em` tjb rchjt sc`b dem jevb e daklcmetcam ai tbrkcmef em`

mam+tbrkcmef bfbkbmts ar bkpty T ∊ *M R P#' em` ct cs ma passclfb ta jevb e mam+tbrkcmef lyctsbfi *+ M#- Hcvbm tjb iaur hrekkers lbfaw& amfy tjb icrst amb cs e damtbxt+irbb hrekker&`ub ta tjb iedt cs tjb amfy amb wctj e ma tbrkcmef bfbkbmt efamb cm tjb fbit sc`b& 6B=- Pjb rbstai tjbk jevb tbrkcmef bfbkbmts *cm rb`# cm tjb fbit sc`b-

6B= 6E= / 6E=*6B=#  *6E= / 6E=#‖6T=‛  6L= 6D=N6Z= 6E=6L= 6D=

Pjb sbdam` rufb cm e damtbxt+irbb hrekker cs tjet tjb rchjt sc`b ai tjb bxprbsscam demmat lbamfy e ma+tbrkcmef bfbkbmt& c-b-& ct jes ta jevb tbrkcmef bfbkbmts ar e daklcmetcam ai matbrkcmef bfbkbmts- Iar bxekpfb7

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 36/113

49

 6B= ; 6E= / 6E= cs e damtbxt irbb hrekker-

Ematjbr bxekpfb wcff lb tjb hrekker lbfaw- Pjcs cs mat e damtbxt+irbb hrekker& `ub ta tjbiedt tjb rufb 6B= jes cm tjb rchjt sc`b amfy amb bfbkbmt em` ct cs e mam+tbrkcmef bfbkbmt-

6B= 6Z=

Amb karb bxekpfb fbts emefyzb tjb iaffawcmh hrekker7

6T= e 6E=6@=6E=e | l6@=cmtbhbr 

Cm tjcs hrekker eff tjb rufbs jevb amfy amb bfbkbmt am tjb fbit sc`b em` ct cs e mam+tbrkcmef&sa eff tjb rufbs iaffaw tjb icrst rufb ai tjb damtbxt+irbb hrekkers- Pjbm& ci wb rbvcbw tjb 6T=

rufb& ct jes am tjb rchjt sc`b e daklcmetcam ai tbrkcmef em` mam+tbrkcmefs& sa ct iaffaws tjbsbdam` rufb- Maw tjb 6E= rufb jes e daklcmetcam ai tbrkcmef bfbkbmts& wjcdj cs vefc` taa-Icmeffy& rufb 6@= jes amfy amb bfbkbmt& lut ct cs e mam+tbrkcmef& sa ct cs efsa vefc`- Pjus ct dem lb sec` tjet tjcs cs e damtbxt+irbb hrekker-

4-2-<- \bhufer hrekkers \bhufer hrekkers erb e sulsbt ai damtbxt+irbb hrekker& wjcdj kbems tjet EFF rbhufer hrekkers erb damtbxt+irbb hrekker& lut tjcs `abs mat waro vcdb+vbrse-

\bhufer hrekkers erb `bicmb` es iaffawcmh7

E e | el

E& l ∊ M& e ∊ P

Xjbrb M rbprbsbmts tjb sbt ai mam+tbrkcmef bfbkbmts em` P rbprbsbmts tjb sbt ai tbrkcmefbfbkbmts-

Ta& tjb rufb seys tjet tjb fbit sc`b sjauf` lb amb bfbkbmt em` sjauf` lb e mam+tbrkcmef 6E=

em` *E ∊ M#? em` cm tjb rchjt pert ct dauf` lb bctjbr e tbrkcmef ly ctsbfi ar e daklcmetcam ai 

amb tbrkcmef em` amb mam+tbrkcmef cm tjet ar`br * e | el& l ∊ M& e ∊ P#& c-b-& tjb rchjt sc`bdem lb amb ar twa cm fbmhtj-

6B= *6E= / 6E=#

Pjcs cs e damtbxt+irbb hrekker lut ct cs mat e rbhufer hrekker `ub ta tjb iedt cm tjb rchjt sc`btjb bxprbsscam cs famhbr tjem < cm fbmhtj-

Hcvbm tjb iaffwcmh hrekkers& `bicmb tjbcr dfescicdetcam-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 37/113

48

^5 {6s= 6E=6s= 6E=6E=6L=6E= ee6E=e 6E=6L=e

6E=6L=

6E=6L=6L=6L=l 6E=6L=l6L=  l

}

^< {6s= l6s=6s= e6E=6s= l6E= e6s=6E= l6E=

6E=

e}

^4 {6s= 6L=6E=6L=6s= 6E=6L=6E=6E= 6E=6L=

6E=

e6E=6E= el6L= 6L=6E=6L= l

}^0 {

6s= 6E=6L=6E= e6E=6E= e6L= 6L=l6L= l

6E=6L=

6L=6E=}

Ct dem lb qucdofy `bicmb tjet ^5 em` ^0 erb mat bctjbr rbhufer mar damtbxt+irbb hrekkers`ub ta tjb iedt tjb fbit sc`b ai sakb rufbs jes karb tjem amb bfbkbmt-

Pjcs fbevbs amfy ^< em` ^4-

^< cs e rbhufer hrekker- Xjbrb eff tjb rufbs jevb amfy amb bfbkbmt am tjb fbit sc`b em` ctcs e mam+tbrkcmef- Cm tjb rchjt sc`b eff tjb rufbs jevb amfy twa bfbkbmts tjb kast? iar tjasbwctj amb bfbkbmt ct cs efweys e tbrkcmef& em` iar tjasb wctj twa bfbkbmts tjb icrst amb csefweys e tbrkcmef em` tjb sbdam` amb cs e mam+tbrkcmef-

^4 cs damtbxt+irbb hrekker lut ct cs mat e rbhufer hrekker- Pjb fbit sc`b ai eff rufbs jesamfy amb bfbkbmt em` ct cs e mam+tbrkcmef? jawbvbr& tjb rchjt sc`b ai sakb rufbs jevbkarb tjem twa bfbkbmts-

 MAPB7 Xjcfb dfessciycmh e hrekker ct cs ckpartemt ta rbkbklbr ta `bicmb ct dfesscicdetcam cm tjb

fawbr dfess passclfb& c-b-& ci ct cs sec` tjet e hrekker cs damtbxt+irbb& ct kbems tjet ct cs mat erbhufer hrekker- Ci ct cs sec` tjet e hrekker cs e damtbxt+sbmsctcvb& ct kbems tjet ct cs mat e

damtbxt+irbb ar e rbhufer hrekker-

4-2-4- Damtbxt sbmsctcvb hrekkers eEl e`l&

e& l ∊ *M R P#'& E ∊ M& ` ∊ *M R P#' + ο  

Pjb rufb `bicmbs tjet tjb fbit sc`b dem jevb karb tjem amb bfbkbmt bctjbr tbrkcmef ar mam+tbrkcmef lut et fbest amb jes ta lb e mam+tbrkcmef-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 38/113

4:

 Ta e damtbxt sbmsctcvb hrekker dem jevb cm tjb fbit sc`b tjb iaffawcmh7

+6E= wjcdj cs e tbrkcmef ‖+‖ em` e mam+tbrkcmef 6E=*6E=# wjcdj cs e tbrkcmef ‖*‖ tjbm e mam+tbrkcmef 6E= em` tjbm amb tbrkcmef ‖#‛

*6L=6E=?

wjcdj dem lb sbbm es e tbrkcmef ‖*‖ iaffawb` ly e mam+tbrkcmef 6L=iaffawb` ly e daklcmetcam ai tbrkcmef em` ma+tbrkcmef 6E=?- Ematjbr wey ta sbb ct cs edaklcmetcam ai e tbrkcmef em` ma tbrkcmef *6L= tjbm e mam+tbrkcmef 6E= em` e tbrkcmef‖?‛ et tjb bm`-

Cm eff tjbsb desbs& tjbrb cs et fbest amb mam+tbrkcmef em` tjbm lbiarb em` eitbr ct dauf` lb edaklcmetcam ai tbrkcmefs em` mam+tbrkcmef-

 Maw& iar tjb rchjt sc`b ai tjb hrekker? tjb rufb spbdcicbs tjet ct dem lb e daklcmetcam ai tbrkcmef em` mam+tbrkcmefs et tjb lbhcmmcmh em` et tjb bm` wjbrb tjb rchjt sc`b ai tjb rufbsjauf` jevb tjb sekb stertcmh daklcmetcam em` bm`cmh daklcmetcam es tjb fbit sc`b em`

wjbrb tjbsb daklcmetcams dem lb bkpty- Pjbm cm tjb kc̀ `fb ai tjb rchjt sc`b tjbrbsjauf` lb e daklcmetcam ai tbrkcmef ar mam+tbrkcmef ` ∊ *M R P#' lut mbvbr em bkptybfbkbmt *— ο #-

\bvcbwcmh tjb prbvcaus hrekkers& wjcdj ai tjbk erb damtbxt sbmsctcvb1

@ub ta tjb iedt ^< em` ^4 erb rbhufer em` damtbxt+irbb rbspbdtcvbfy& tjby erb efsa damtbxtsbmsctcvb- Jawbvbr& rbkbklbr tjet wjbm dfessciycmh e hrekker wb erb faaocmh iar tjbfawbr fbvbf passclfb-

 Maw& wjet jeppbm wctj ^5 em` ^0-

^5 cs e damtbxt sbmsctcvb hrekker- \ufbs 5+4 em` 8 jevb amfy amb bfbkbmt cm tjb fbit sc`b&e mam+tbrkcmef& sa wb dem sey tjbrb cs em bkpty bfbkbmt& tjbm tjb mam+tbrkcmef& em` tjbmematjbr bkpty bfbkbmt- Ta tjb rchjt sc`b iar tjbsb rufbs& sjauf` jevb em bkpty bfbkbmt ettjb lbhcmmcmh em` et tjb bm` em` tjbm cm tjb kc``fb e daklcmetcam ai mam+tbrkcmef em`tbrkcmefs& wjcdj cs darrbdt- Fbts rbvcbw iar rufbs 0+9-

Iar rufb 0& ct jes cm tjb fbit sc`b e mam+tbrkcmef 6E= wctj em bkpty bfbkbmt lbiarb em` etbrkcmef eitbr ‖e‛ ct& em` cm tjb rchjt sc`b wb jevb em bkpty bfbkbmt tjbm e daklcmetcamai tbrkcmef em` mam+tbrkcmefs 6E=6L= em` tjbm tjb tbrkcmef ‖e‛ tjet ketdjbs tjb fbitsc`b- Takbtjcmh sckcfer jeppbms wctj rufb 9-

Iar rufb 2& ct cs passclfb ta sey tjet ct jes em bkpty bfbkbmt icrst& tjbm e mam+tbrkcmef 6E=iaffawb` ly e mam+tbrkcmef 6L=- Pjbm cm tjb rchjt sc`b ct jes tjb bkpty bfbkbmt&iaffawb` ly e daklcmetcam 6E=6L=& em` et tjb bm` tjb mam+tbrkcmef 6L=& wjcdjketdjbs tjb rufb iar tjcs typb ai hrekkers-

^0 cs MAP e damtbxt sbmsctcvb `ub ta tjb fest rufb cm tjb hrekker 6E=6L=6L=6E= Cmtjcs rufb& cm tjb fbit sc`b wb mbb` e mam+tbrkcmef bfbkbmt& wb dem sey ct cs 6E= ar 6L=- Ci 

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 39/113

43

wb `bdc`b ct cs 6E=& tjbm wb jevb em bkpty strcmh& 6E= em` tjbm 6L= et tjb bm`- Ta&wjbm wb rbvcbw cm tjb rchjt sc`b& wb jevb tjb bkpty strcmh et tjb lbhcmmcmh& tjbm wbwauf` jevb 6L=6E= cm tjb kc``fb wjcdj wauf` lb darrbdt& lut tjbm wb wauf` jevb embkpty strcmh& wjcdj cs mat darrbdt- Takbtjcmh sckcfer rbsufts ci wb `bdc`b tjet tjbkem`etary mam+tbrkcmef cm tjb fbit sc`b cs 6L=-

Ta& ci ^0 cs mat rbhufer& ar damtbxt+irbb& ar damtbxt sbmsctcvb& tjbm wjet cs ct1 Ct cs erbdurscvbfy bmukbrelfb hrekker-

 MAPB7 Cm tjb prahrekkcmh esschmkbmt& wb erb uscmh e damtbxt+irbb hrekker- Pjby jevb karb pawbr tjet e rbhufer hrekker em` tjby erb bescbr ta ckpfbkbmt tjem e damtbxt sbmsctcvb hrekker-

4-9- ^rahrekcmh e ^ersbr

Xb djaasb ta usb e damtbxt+irbb hrekker& wjcdj effaws us ta drbetb e ^rb`cdtcvb&\bdurscvb& em` @bsdbm`bmt ^ersbr-

Hcvbm tjb iaffawcmh hrekker& wb wemt ta ckpfbkbmt tjb ^ersbr tjet jbfps us ta rbvcbwtjet em bxprbsscam iaffaws tjb rufbs cm tjcs hrekker-

Iar tjb ckpfbkbmtetcam7

•  Bedj rufb cs hacmh ta lb e kbtja`-

•  Bedj ai tjb mam+tbrkcmefs *laxbs# cs e deff ta e kbtja`-

•  Bedj tbrkcmef *dcrdfb# wcff lb bctjbr em ci dam`ctcam ar e wjcfb- Efsa cs wctj tbrkcmefbfbkbmt wjbm wb jevb tjb appartumcty ta c`bmtciy brrars-

Iar tjb ^ersbr ckpfbkbmtetcam wb mbb` tjb taobms- Pjbsb taobms erb tjb ambs pravc`b` lytjb Fbxbr *fbxcdef emefyzbr#-

Ta& tjb rbsuft ai e symtex emefyscs cs ta omaw ci tjbrb cs em brrar cm emy bxprbsscam- Pjcskbems lbcmh elfb ta rbdahmczb ci tjbrb cs em bxprbsscam tjet cs mat iaffawcmh tjb rufbs ai tjb hrekker- Xb erb mat faaocmh emy karb wjbtjbr tjb war`s erb vefc`? wb `c` tjet cmtjb fbxcdef emefyscs-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 40/113

0>

Pjb ^ersbr cs hacmh ta sey ci tjb taobms erb cm tjb darrbdt iark em` ci tjb `brcvetcam trbbdauf` lb pradbssb`- Ci tjb `brcvetcam trbb demmat lb pradbss cm iuff tjcs kbems tjet tjbrb csem brrar-

Lbsc`b bedj ai tjb kbtja`s iar bedj rufb& wb jevb e kbtja` persbr- Pjcs kbtja` wcff deff

tjb icrst rufb ai tjb hrekker-

pulfcd stetcd vac` persbr*# {e``*#?

}

Ta& cm tjcs desb wb wcff jevb iaur kbtja`s7 e``& kuftcpfcdetcam& mbhetcvb& em` tbrk-

pulfcd stetcd vac` e``*#{kuftcpfcdetcam*#?wjcfb *taobms_durrbmtPaobm[ ## ;; ‖/‛#{

durrbmtPaobm//?

kuftcpfcdetcam*#?}

}

pulfcd stetcd vac` kuftcpfcdetcam*# {mbhetcvb*#?wjcfb *taobms_durrbmtPaobm[ ;; ,',# {

durrbmtPaobm//?mbhetcvb*#?

}}

pulfcd stetcd vac` mbhetcvb*# {ci *taobms_durrbmtPaobm[ ;; ,+,# {durrbmtPaobm//?

}tbrk*#?

}

Es kbmtcamb` elavb& bedj rufb wcff lb e kbtja`- Cmsc`b tjb kbtja`& bedj lax cs e deff tae kbtja` em` bedj dcrdfb cs e faap ar em ,ci, dam`ctcam- Cm tjb desb ai e`` em`kuftcpfcdetcam& tjb dcrdfb rbprbsbmts e faap& cm tjb desb ai mbhetcvb ct cs em ,ci, dam`ctcam- Matcdb tjet tjcs iaffaws tjb `cehrek ai tjb hrekker- Xjbrb e`` em` kuftcpfcdetcam rufbssjaw e petj ta rbturm ta tjb cmctcef pacmt *e faap# em` wjbrb mbhetcvb sjaws twa aptcams

*dam`ctcams# ta iaffaw cm tjb lbhcmmcmh-

Iar tjb tbrk kbtja`7

pulfcd stetcd vac` tbrk*# {ci *taobms_durrbmtPaobm[ ;; ,*,# {

durrbmtPaobm//?e``*#?

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 41/113

05

ci *taobms_durrbmtPaobm[ ;; ,#,# {durrbmtPaobm//?

} bfsb {brrars//?Tystbk-aut-prcmtfm*,kcsscmh perbmtjbscs,#?

}

} bfsb ci *taobms_durrbmtPaobm[ ;; ,CMPBHB\,# {durrbmtPaobm//?

} bfsb {brrars//?

Tystbk-aut-prcmtfm*,kcsscmh cmtbhbr,#?}

}

 Matcdb tjet wjbm yau jevb rufbs wctj aptcams& sudj es tbrk& ct cs passclfb ta c`bmtciybrrars& efsa wjbm yau jevb tbrkcmef bfbkbmts et tjb bm` ai em bxprbsscam ct cs efsa passclfb ta c`bmtciy em brrar-

Ci wb wemt ta e`` karb apbretcams sudj es `cvcscam& wb wcff e`` ct cm tjb kuftcpfcdetcamrufb `ub ta tjb iedt latj apbretcams jevb tjb sekb prbdb`bmdb- Cm tbrks ai da`b& tjcskbems ta e`` em` ‖ar‛ apbretcam ta sey taobm ;; ‖'‛ ar taobm ;; ‖!‛-

pulfcd stetcd vac` kuftcpfcdetcam*# {mbhetcvb*#?wjcfb *taobms_durrbmtPaobm[ ;; ,', ||

taobms_durrbmtPaobm[ ;; ,!,# {durrbmtPaobm//?

mbhetcvb*#?}

}

4-8- @bicmcmh e femhuehb Pjb icrst tjcmh tjet wb mbb` cs ta `bicmb tjb hrekker iar tjb prahrekkcmh femhuehb-

Xb dem stert ly rbvcbwcmh tjb sbdtcams ai e prahrek- E prahrek jes `bdferetcam ai vercelfbs em` `bdferetcam ai kbtja`s- Takbtjcmh sudj es tjb iaffawcmh7

cmt x ; 2?cmt y*# {

cmt z ; 5?}

Ta& tjb hrekker tjet dauf` `bicmb tjcs dauf` lb tjb iaffawcmh7

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 42/113

0<

 

Em` tjb rufb iar tjb `bdferetcam ai vercelfbs dauf` lb es iaffaws7

Em` tjb rufb iar tjb `bdferetcam ai kbtja`s dauf` lb es iaffaws7

Pjbsb twa rufbs jevb e pralfbk- Pjb pralfbk cs& jaw `a wb `bdc`b wjcdj petj ai tjb prahrek rufb ta djaasb& `ver ar `kbtja`1 Es tjcs rufb cs `bicmb` wb mbb` ta faao ejbe`sbvbref taobms& ta omaw ci tjb bxprbsscam cs tjb `bdferetcam ai e vercelfb *`ver# ar e`bdferetcam ai e kbtja` *`kbtja`#- Ta& jevcmh ta faao ejbe` iar sbvbref taobms cs mat ehaa` c`be& sa wb mbb` ta djemhb tjb hrekker-

Xctj tjb mbw hrekker lbfaw& ct cs passclfb ta omaw faaocmh amfy amb djeredtbr ejbe`wctj petj ta iaffaw-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 43/113

04

XBBO >2

\bvcbw iar ^rahrekkcmh e Fbxbr 

Pjb iaffawcmh fcst sjaws sakb spbdcefs desbs tjet ct cs ckpartemt ta obbp cm kcm` wjcfb prahrekcmh e Fbxbr7

•  ‚––Pjcs sjauf` lb twa taobms ‚– em` ‚ em` latj erb B\\A\s-

•  ‖jafe‛/‛‛jafe‛<4‖jafe‛ TP\CMH/ A^B\EPA\ ‖‛ TP\CMHjafe C@

‖<4 B\\A\ 

•  ‚V4–Amb taobm em` ct cs e DJE\ 

•  ‚44–Amb taobm B\\A\ 

•  ‖V‛‛Amb taobm& em` TP\CMH& `ub ta tjb iedt tjb ledosfesj evac`s tjet tjb sbdam` ‖ csdamsc`brb` es tjb dfascmh ‖ ai tjb strcmh-

•  ‖V‛Amb taobm& em` ct cs em B\\A\? `ub ta tjb iedt tjbrb cs kcsscmh tjb dfascmh ‖ iar tjbTP\CMH-

•  >x<4-<4Amb taobm& tjb `at cs MAP e `bfckctbr? tjus& tjcs cs persb` es e ifaet muklbr em` tjbrbcs em B\\A\-

•  L+#Pjrbb taobms

L C@+ A^B\EPA\ # @BFCKCPB\ 

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 44/113

00

\bvcbwcmh tjb Tymtex \ufbs iar aur femhuehb Fest wbbo wb `bicmb` tjb iaffawcmh rufb iar e prahrek- Jawbvbr& tjcs rufb jes e pralfbk-Ct `abs mat effaw jevcmh kuftcpfb vercelfbs ar kuftcpfb kbtja`s-

Pa icx tjb rufb wb mbb` ta e`` e faap-

Jawbvbr& tjbrb cs stcff amb karb tjcmh ta rbvcbw- Jaw ta `ciibrbmtcetb hfalef vercelfbsirak fadef vercelfbs1 Ta& wb mbb` ta spbdciy ci cm tjb rufb elavb wb erb tefocmh elauthfalef ar fadef- Xb erb tefocmh elaut hfalef-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 45/113

02

 Ta& tjb `cehrek iar ^rahrek wcff lb7

 Maw& wb mbb` tjb rufb iar `kbtja`7

Ta& matcdb tjet tjcs rufb spbdcicbs tjet tjb kbtja` dem jevb zbra perekbtbrs lut efweysjevb tjb perbmtjbscs- Pjb kbtja` jes ta jevb tjb stert em` bm`& spbdcicb` ly tjb durfy lredobts- Ct cs passclfb tjet tjb kbtja` `abs mat damtecm emytjcmh ar tjet damtecms amb ar karb fcmbs& tjb twa lremdjbs spbdciy tjcs eitbr tjb apbm durfy lredobt em` tjb faap-

 Maw& tjbrb erb twa rufbs tjet mbb` ta lb `bicmb`7 perekbtbr em` fcmb-

Pjb faap cm`cdetbs tjet wb dem jevb e fcst ai typbs em` c`bmtcicbrs sbperetb` ly tjb dake- Matcdb tjet tjb aptcam ai MAP jevcmh perekbtbrs cs davbrb` cm tjb rufb iar `kbtja` matjbrb-

 Maw& iar fcmb? wjet dem wb jevb cmsc`b ai e kbtja`1 Xb dem jevb `bdferetcam ai vercelfbs& esschm e vefub ta e vercelfb& deffcmh e kbtja`& wb dem jevb faaps *wjcfb#&dam`ctcams *ci+bfsb#& em` tjb kbtja` dauf` lb elfb ta rbturm e vefub-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 46/113

09

 Ta tjb `cehrek iar fcmb wcff lb es iaffaws7

 Maw tjbrb erb e fat ai rufbs ta `bicmb- Fbts stert wctj tjb rbturm rufb7

 Matcdb tjet et tjcs pacmt& symtex emefyscs& wb erb mat rbvcbwcmh ci tjb typb ai tjb kbtja`ketdjbs tjb typb ai tjb bxprbsscam ta lb rbturmb`- Pjcs cs sakbtjcmh tjet wcff lb davbrb`am tjb sbkemtcd emefyscs-

 Maw& iar esschmkbmt em` deff iumdtcam& tjb rufbs wcff faaos fcob7

 Matb tjet latj esschm em` deffQiumdtcam usbs tjb bxprfah& wjcdj stem`s iar fahcdbxprbsscams- \bkbklbr tjet `ub ta tjb iedt fahcd bxprbsscams erb tjb ambs wctj tjb fawbr  prbdb`bmdb tjby erb tjb icrst am tjb perscmh pradbss-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 47/113

08

 

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 48/113

0:

 

Ta tjb hrekker ai aur prahrekcmh femhuehb jes <> rufbs *`cehreks#- Pjbsb rufbs dem lbtremsfetb` am <> kbtja`s iar aur symtex emefyzbr-

Jakbwaro- Ttert tjcmocmh em` warocmh am tjb ckpfbkbmtetcam ai tjb kbtja`s iar

tjb ^ersbr-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 49/113

03

XBBO >9

\bvcbwcmh aur femhuehb 

Pjb iaffawcmh telfb sjaws eff tjb djeredtbrcstcds em` rbqucrbkbmts ai aur femhuehb-

 Maw& wb jevb eff tjb rufbs ai aur femhuehb *tjb <> rufbs tjet wb rbvcbwb` fest fbdturb#em` mbb` ta tremsiark tjbsb rufbs cmta tjb ^ersbr ckpfbkbmtetcam-

 Maw wjbm tremsiark tjbsb rufbs cmta ckpfbkbmtetcam& tjbrb erb twa tjcmhs ta damsc`br7*5# jaw ta bxprbss tjb bxcstbmdb ai `cvbrsb petjs *dam`ctcams# em` karb ckpartemt jaw ta`bicmb wjcdj petj ta iaffaw em` *<# jaw ta bxprbss tjb bxcstbmdb ai faaps em` karb

ckpartemt jaw ta `bicmb iar jaw famh ct fest ar wjcdj cs tjb dam`ctcam ta stap `b faap-

Cm ar`br ta `bicmb tjbsb dam`ctcams tjet `bicmb tjb petj ta iaffaw em` wjbtjbr ta damtcmube faap ar mat& wb usb wjet cs deffb` tjb IC\TP em` IAFFAX sbts& rbspbdtcvbfy- Pjbsbsbts hcvb tjb taobms tjet `bicmb tjasb dam`ctcams-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 50/113

2>

4-:- IC\TP em` IAFFAX sbts Iar cmstemdb& cm ar`br ta ckpfbkbmt tjb iaffawcmh rufb wb mbb` tjb dam`ctcams tjet `bicmbwjcdj petj ta iaffaw et tjb lbhcmmcmh 6E= ar 6L=& tjbm wb mbb` ta `bicmb tjb dam`ctcamsta `bicmb ci tjbrb cs ar mat e fcmb& em` tjbm tjb dam`ctcam ta omaw tjet tjbrb erb kuftcpfb

fcmbs- Pa `bicmb tjcs wb mbb` ta `bicmb tjb IC\TP em` IAFFAX sbts-

4-:-5- IC\TP Tbt  Pjb I\CTP sbt cs `bicmb` iar tjb icrst taobm ar taobms *ci tjbrb erb `ciibrbmt petjs ! aptcamset tjb lbhcmmcmh ai tjb rufb# tjet erb vefc` cm e rufb-

Iar tjb iaffawcmh rufb& tjb IC\TP sbt wauf` lb E em` L- Jawbvbr& E em` L erb mam+tbrkcmefs& sa wjet wb mbb` ta `a cs faao cmta tjasb rufbs em` hbt tjb IC\TP sbt ai tjbkem` tjbsb wcff lb tjb IC\TP sbt iar tjb rufb-

Irak tjcs rufb& wb dem `bicmb wjet wauf` lb tjb IAFFAX sbt iar tjb mam+tbrkcmef *rufb#fcmb- Es ct dem sbb eitbr tjb fcmb rufb icmcsjbs tjbrb erb twa aptcams& bctjbr ta jevb e durfy lredobt *}# ar ta rbturm em` jevb ematjbr fcmb- Jawbvbr& fcmb cs e mam+tbrkcmef bfbkbmt sact dem mat lb pert ai e sbt& sa cm tjcs desb wb wcff teob tjb IC\TP sbt ai fcmb em` ct wauf` lb pert ai tjb IAFFAX sbt ai fcmb& taa-

 Maw& iar tjb rufbs `verQhfalef em` `kbtja` cm aur femhuehb wb dem c`bmtciy tjb IC\TPsbt-

Iar tjb `verQhfalef& IC\TP sbt wauf` lb *?# em` *&#- Matcdb tjet latj bfbkbmts erbtbrkcmef-

Iar tjb `kbtja` rufb& tjb IC\TP sbt wauf` lb iarkb` ly tjb perbmtjbscs- IC\TP*`kbtja`#;{*}- Xjcfb tjb IC\TP *perekbtbr# ; {typb}- Matcdb tjet tjb IC\TP sbts jevbamfy tbrkcmef bfbkbmts-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 51/113

25

 

4-:-<- IAFFAX Tbts 

 Maw& wjet wauf` lb tjb IAFFAX sbt iar perekbtbr1 Ehecm& tjb IAFFAX sbt cs iarkb`wctj tjb taobms tjet jeppbm eitbr e rufb icmcsjbs- Ta& cm tjcs desb iar perekbtbr wjetiaffaws cs tjb tbrkcmef perbmtjbscs& IAFFAX *perekbtbr# ; {#}-

Ta& cm hbmbref tbrks& ct cs passclfb ta sey tjet tjb bfbkbmts cm tjb IC\TP sbt erb `bicmb` cmtjb rufb ctsbfi em` erb tjb icrst tbrkcmefs tjet dem lb iaum` cm tjb rufb- Iar tjb IAFFAXsbt& tjb bfbkbmts erb mat cm tjb rufb ctsbfi lut retjbr tjby erb cm tjb rufb tjet deffs tjb rufbcm qubstcam& em` tjb bfbkbmts erb tjb taobm*s# tjet eppbers eitbr tjb rufb cs dakpfbtb`-

E ‖haa` predtcdb‛ wjcfb drbetcmh e rufb cs tjet tjb IC\TP sbt em` tjb IAFFAX `a matavbrfep& c-b-& tjb cmtbrsbdtcam ai tjbsb ta sbts sjauf` lb bkpty-

Iar aur femhuehb& cm ar`br ta vefc`etb tjet tjb rufbs tjet wb jevb erb tjb ‖lbst‛ rufbs& wbmbb` ta rbvcbw tjb eff tjb rufbs iaffaw tjb ‖haa` predtcdb‛ kbmtcamb` elavb-

Bxekpfb- Hcvbm tjb iaffawcmh hrekker7

6B= += 6E= / 6E= | 6E=6E= += 6L= ' 6L= | 6L=6L= += + 6D= | 6D=6D= += e

Xb wemt ta rbvcbw ci tjcs hrekker iaffaws tjb ‖lbst predtcdb‛- Ta& wb stert ta `bicmb tjbIC\TP sbt iar bedj rufb& c-b-& iar emy mam+tbrkcmef cm tjb hrekker *6B=& 6E=& 6L=& em`6D=#-

Iar 6D=& tjb IC\TP sbt cs es sckpfb es tjb tbrkcmef e- IC\TP*D# ; {e}-

 Maw ci wb rbvcbw 6L=& tjbrb erb twa aptcams ta stert 6L=& tjb tbrkcmef ‖+‖ em` tjb mam+tbrkcmef 6D=& lut 6D= dem lb tjb tbrkcmef e- Ta& IC\TP*L# ; {+& e}-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 52/113

2<

 Iaffawcmh tjb sekb pradbss& wjet jeppbms wctj 6E=1 Pjbrb erb twa aptcams iar 6E= em` latj ai tjbk sterts wctj tjb mam+tbrkcmef 6L= em` tjb IC\TP*L#;{+&e}& sa iar 6E= tjbIC\TP sbt wauf` lb tjb sekb es iar 6L=- IC\TP*E# ; {+&e}-

 Maw& iar 6B=& tjbrb erb efsa twa aptcams em` latj ai tjbk sterts wctj 6E=& sa iar 6B=tjb IC\TP sbt wauf` lb tjb sekb es iar 6E=- IC\TP*B# ; {+& e}-

 Matcdb tjet cm ar`br ta defdufetb tjb icrst sbt iar bedj rufb& c-b-& tjb fcst ai taobms tjet dem lb et tjb lbhcmmcmh ai bedj rufb& wb stertb` wctj tjb sckpfbst rufb& cm tjcs desb 6D=-

 Maw& fbt–s rbvcbw wjet jeppbm iar sakb ai tjb rufbs cm aur femhuehb& b-h- `kbtja` em` perekbtbr-

Bxekpfb- Hcvbm tjb iaffawcmh hrekker7

T↜

ELDT ↜ IE ↜ BI`E ↜ eL ↜ eLlL ↜ β D ↜ dDD ↜ `B ↜ bBB ↜ II ↜ Ii I ↜ β 

Xjbrb uppbrdesbs erb mam+tbrkcmefs& fawbrdesbs erb tbrkcmefs& em` β rbprbsbmts bkpty-Pjb iaffawcmh telfb rbprbsbmts tjb bvafutcam ai jaw tjb IC\TP sbt cs defdufetb`& bedjdafukm fbit ta rchjt rbprbsbmts e mbw stbp am tjb pradbss-

rufb IC\TP sbt + bvafutcam

T ú ú {e& β} {e& β& b& i} {e& β& b& i& `}

E ú {e} {e& b} {e& b& i& `}

L ú {e& β}

D ú {d& `}

B ú {b} {b& β} {b& β& i}

I ú {β} {β&i}

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 53/113

24

Ta tjb icrst dafukm sjaws tjet tjb IC\TP sbt sterts wctj tjb bkpty sbt- Pjb bkpty sbt cstjb kcmckum sbt tjet e IC\TP sbt dem jevb- Pjbm cm e sbdam` ctbretcam wb rbvcbwb` tjbbescbst rufbs& cm tjcs desb tjb ambs tjet jevb e tbrkcmef bfbkbmt et tjb lbhcmcmh& sudj es I&D& L& E- Iar tjb tjcr` dafukm!ctbretcam& wb sterb` irak tjb lattak ta tjb tap ta dakpfbtbtjb rufbs- Pjb sekb jeppbm iar tjb iartj em` icitj dafukm-

 Matcdb tjet cm tjb iartj ctbrbetcam iar tjb rufb 6E= wb `a mat e`` β ta tjb IC\TP sbt bvbmtjauhj ct cs pert ai tjb I\CTP sbt iar I& wjy1 Lbdeusb 6E= demmat stert wctj I& ct demstert wctj B em` B `abs mat jevb tjb β-

Jakbwaro- @bicmb tjb IC\TP sbt iar EFF tjb rufbs cm aur femhuehb-

 Maw& wjet jeppbm wctj tjb IAFFAX sbt- Pjb IAFFAX sbt cs iarkb` wctj tjb taobmstjet dauf` lb eitbr tjb rufb icmcsjbs- Xjcdj cs tjb taobm tjet wauf` lb cm eff IAFFAXsbts iar emy rufb1 Ct wcff lb tjb bm`+ai+icfb *bai | #-

Bxekpfb- Hcvbm tjb iaffawcmh hrekker7

6B= += 6E= / 6E= | 6E=6E= += 6L= ' 6L= | 6L=6L= += + 6D= | 6D=6D= += e

Xjet erb tjb IAFFAX sbts iar bedj rufb1 Pa `bicmb tjb IAFFAX sbts wb stert tap ta lattak-

IAFFAX*B# ; {} wjet iaffaws wjbm rufb 6B= icmcsjbs1 Ct iaffaws tjb bai-IAFFAX*E# ; {/& } wjet iaffaws wjbm rufb 6E= icmcsjbs1 Ci wb alsbrvb rufb 6E=wb dem `bicmb wjet iaffaws wjbm rufb icmcsjbs- Pjbrb erb twa aptcams& bctjbr e pfus ar tjbbm` ai tjb fcmb!icfb-IAFFAX*L# ; {'& /& } wjet iaffaws wjbm e rufb 6L= icmcsjbs- Pjb alvcaus cs bctjbr tjb bai ar em estbrcso- Jawbvbr& ci wb alsbrvb& 6E= dauf` lb em 6L=& cm tjcs sbmsb& eitbr icmcsjcmh em 6L= ct cs efsa icm` twa aptcams tjb pfus schm ar tjb bai *rufb 6B=#-IAFFAX*D# ; {'& /& }-

Bxekpfb- Hcvbm tjb iaffawcmh hrekker& `bicmb tjb IAFFAX sbt iar eff tjb rufbs-

T ↜ ELDT ↜ IE ↜ BI`E ↜ eL ↜ eLlL ↜ β D ↜ dDD ↜ `

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 54/113

20

B ↜ bBB ↜ II ↜ Ii I ↜ β 

Pjb telfb lbfaw sjaws tjb pradbss ta icm` tjb IAFFAX sbt iar eff tjb rufbs- \bkbklbr tjet et fbest tjb IAFFAX sbt wcff damtecmh tjb bai-

Iar T& tjbrb cs emy rufb tjet iaffaws- Ta IAFFAX *T# ; {bai}-

Iar rufb E& eitbr E icmcsjbs& cm rufb T ct cs passclfb ta sbb tjet wjet iaffaws cs rufb L- Es Lcs e rufb *mam+tbrkcmef# ct cs mbb`b` ta rbvcbw tjb icrst taobms am L ta omaw wjet wcffiaffaw E- Ta& IC\TP *L# ; {e& β}& maw& es amb ai tjb bfbkbmts cm IC\TP *L# cs bkpty& ci wb alsbrvb tjb rufb T ELD& tjcs kbems tjet ci eitbr E& L cs bkpty& wjet iaffawb` Ewcff lb D- Es D cs e rufb *mam+tbrkcmef# tjbm wb mbb` ta rbvcbw IC\TP *D# ; {d& `}& tae`` tjasb bfbkbmts cm IAFFAX *E#- Pjus& icmeffy IAFFAX *E# ; {e& d& `}- Matcdb tjet

tjb bkpty bfbkbmt cs mat cm tjb sbt-

 Maw iar rufb L& irak tjb rufb T ELD& ct cs passclfb ta sey tjet eitbr L cs D& sa IC\TP*D# bfbkbmts wcff lb pert ai IAFFAX *L# bfbkbmts {d&`}- Maw irak rufb L eLl& ct cs passclfb ta sey tjet eitbr L ct cs passclfb ta icm` tjb tbrkcmef l? sa& tjcs bfbkbmt cs e``b` tatjb sbt- Pjus& IAFFAX *L# ; {d&`&l}-

Iar rufb D& irak rufb TELD ct cs passclfb ta sey tjet eitbr D cs tjb bai? em` irak rufb D dD ct tjb sekb- Ta& IAFFAX *D# ; {bai}-

Iar rufb B& irak rufb EBI`& ct cs passclfb ta sbb tjet eitbr B dakbs I- Es I cs e mam+tbrkcmef wb wcff rbvcbw tjb bfbkbmts cm IC\TP *I# ; { β&i }- Pjb bkpty cs mat cmdfu`b` cmIAFFAX& sa& wb jevb {i}- Pjbm& cm tjb sekb rufb EBI` ci I cs bkpty& tjbm eitbr B& ctcs passclfb ta jevb `- Ta& wb jevb {i& `}-

Icmeffy& iar rufb I- Irak rufb TI& wjet iaffaws I cs bai- Irak rufb E BI`& wjetiaffaws I& cs `- Irak rufb B I& wjet iaffaws I cs bai- Irak rufb IIi wjet iaffaws Ics i- Pjus& IAFFAX *I# ; {bai& `& i}

rufb IAFFAX sbt + bvafutcam

T {bai}

E {e} {e&d&`}

L {d&`} {d&`&l}

D {bai}

B {i} {i&`}

I {bai} {bai&`} {bai&`&i}

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 55/113

22

Iar tjb ^rahrek rufb cm aur femhuehb7

IC\TP *prahrek# ; {typb& β}IAFFAX *prahrek# ; {}

Iar `verQhfalef7

IC\TP *`verQhfalef# ; {?& &}IAFFAX *`verQhfalef# ; {& typb}

Jakbwaro- Defdufetb tjb IAFFAX sbt iar EFF tjb rufbs am tjb hrekker iar aur

femhuehb-

4-:-4- Bxekpfb ai IC\TP em` IAFFAX Tbts Damsc`br tjb hrekker7

T ++= ELD *5#T ++= I *<#E ++= BI` *4#E ++= e *0#L ++= eLl *2#

L ++= β *9#D ++= dD *8#D ++= ` *:#B ++= bB *3#B ++= I *5>#I ++= Ii *55#

I ++= β *5<#

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 56/113

29

e#  Defdufetb tjb IC\TP sbts iar eff hrekker syklafs-

Pjb rufbs wb usb ta defdufetb tjb IC\TP sbts erb tjb iaffawcmh& essukcmh cmctceffyIC\TP sbts erb bkpty7

C- 

IC\TP*Z# ; {Z} ci Z cs e tbrkcmefCC-  IC\TP*β# ; {β}- Matb tjet tjcs cs mat davbrb` ly tjb icrst rufb lbdeusb β cs mate tbrkcmef-

CCC-  Ci E Ze& e`` IC\TP*Z# — { β } ta IC\TP*E#

CY-  Ci E E5E<E4 … EcEc/5 … Eo  em` β∊ IC\TP*E5# em` β∊ IC\TP*E<# em`

… em` β∊ IC\TP*Ec#& tjbm e`` IC\TP*Ec/5# — { β } ta IC\TP*E#-

Y-  Ci E E5E<E4 … Eo  em` β∊ IC\TP*E5# em` β∊ IC\TP*E<# em` … em` β∊ 

IC\TP*Eo #& tjbm e`` β  ta IC\TP*E#-

Cm wjet iaffaws& wb wcff lb rbibrrcmh ta tjb hrekker rufbs em` IC\TP sbt rufbs- Iar bxekpfb& ‖eppfy CCC ta *<#, kbems eppfy IC\TP sbt rufb tjrbb ta hrekker rufb *<#-

Rscmh rufb C& wb hbt

IC\TP*e# ; eIC\TP*l# ; lIC\TP*d# ; dIC\TP*`# ; `IC\TP*b# ; bIC\TP*i# ; i 

Rscmh rufb CC& wb hbt

IC\TP*β# ; β 

Pjbm wb defdufetb eff atjbr IC\TP sbts-

•  rufb *5#7 ma djemhb cm IC\TP*T# lbdeusb IC\TP*E# ; ∂ ?

•  rufb *<#7 ma djemhb cm IC\TP*T# lbdeusb IC\TP*I# ; ∂ ?

•  rufb *4#7 ma djemhb cm IC\TP*E# lbdeusb IC\TP*B# ; ∂ ?

•  Eppfy CCC ta *0#7 IC\TP*E# ; {e}

•  Eppfy CCC ta *2#7 IC\TP*L# ; {e}

• 

Eppfy Y ta *9#7 IC\TP*L# ; {e&β}

•  Eppfy CCC ta *8#7 IC\TP*D# ; {d}

•  Eppfy CCC ta *:#7 IC\TP*D# ; {d& `}

•  Eppfy CCC ta *3#7 IC\TP*B# ; {b}

•  rufb *5>#7 ma djemhb cm IC\TP*B#

•  rufb *55#7 ma djemhb cm IC\TP*I#

•  Eppfy Y ta *5<#7 IC\TP*I# ; { β }

•  Eppfy CCC ta *5#7 IC\TP*T# ; {e}

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 57/113

28

•  Eppfy Y ta *<#7 IC\TP*T# ; {e& β}

•  Eppfy CCC ta *4#7 IC\TP*E# ; {e& b}

•  rufb *0#7 ma djemhb

•  rufb *2#7 ma djemhb

•  rufb *9#7 ma djemhb

•  rufb *8#7 ma djemhb•  rufb *:#7 ma djemhb

•  rufb *3#7 ma djemhb

•  Eppfy CCC ta *5>#7 IC\TP*B# ; {b& β}

•  Eppfy CY ta *55#7 IC\TP*I# ; {β& i}

•  rufb *5<#7 ma djemhb

•  Eppfy CCC ta *5#7 IC\TP*T# ; {e& β& b}

•  Eppfy CCC ta *<#7 IC\TP*T# ; {e& β& b& i}

•  Eppfy CY ta *4#7 IC\TP*E# ; {e& b& i}

*lbdeusb β∊ IC\TP*B#& e`` *IC\TP*I#+ { β }# ta IC\TP*E##

• 

Eppfy CY ta *4#7 IC\TP*E# ; {e& b& i& `}*lbdeusb β∊ IC\TP*B# em` β∊ IC\TP*I#& e`` *IC\TP*`# — { β }## ta IC\TP*E##

•  rufb *0#7 ma djemhb

•  rufb *2#7 ma djemhb

•  rufb *9#7 ma djemhb

•  rufb *8#7 ma djemhb

•  rufb *:#7 ma djemhb

•  rufb *3#7 ma djemhb

•  Eppfy CCC ta *5>#7 IC\TP*B# ; {b& β& i}

•  rufb *55#7 ma djemhb

•  rufb *5<#7 ma djemhb

•  Eppfy CCC ta *5#7 IC\TP*T# ; {e& β& b& i& `}

•  rufb *<#7 ma djemhb

•  rufbs *4# + *5<#7 ma djemhb

•  rufbs *5# + *5<# ma djemhb

Pjb icmef IC\TP sbts erb7

IC\TP*T# ; {e& β& b& i& `}IC\TP*E# ; {e& b& i& `}

IC\TP*L# ; {e&β}IC\TP*D# ; {d& `}

IC\TP*B# ; {b& β& i}IC\TP*I# ; { β& i}

 l#  Defdufetb tjb iaffaw sbts iar eff mam+tbrkcmefs

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 58/113

2:

IAFFAX sbts erb defdufetb` amfy iar mam+tbrkcmefs- Xb jevb tjb iaffawcmh rufbs iar e``cmh tbrkcmefs ar bai ta tjb IAFFAX sbts *rbkbklbr tjet Q cs mbvbr e``b` ta tjbIAFFAX sbts#-

C-  bai ∊ IAFFAX*T#

CC- 

Ci E eL& e`` IAFFAX*E# ta IAFFAX*L#CCC-  Ci E eLE5E< … Eo  em` β∊ IC\TP*E5# em` β∊ IC\TP*E<# em` … em` β∊ 

IC\TP*Eo #& tjbm e`` IAFFAX*E# ta IAFFAX*L#CY-  Ci E eLE5E< … Eo & e`` IC\TP*E5#+ { β } ta IAFFAX*L#

Y-  Ci E eLE5E< … EcEc/5 … Eo  em` β∊IC\TP*E5# em` β∊ IC\TP*E<# em`

… em` β∊ IC\TP*Ec#& tjbm e`` IC\TP*Ec/5# — { β } ta IAFFAX*L#

Cm tjb rbkecm`br ai tjcs sbdtcam& rakem mukbrefs rbibr ta tjb rufbs iar IAFFAX sbts-

Xb stert ly eppfycmh rufb C ta T em` altecmIAFFAX*T# ; bai 

 Maw wb dem stert eppfycmh tjb rbkecmcmh rufbs7

•  Eppfy CC ta *5#7 IAFFAX*D# ; {bai}

•  Eppfy CY ta *5# em` e`` IC\TP*D# — { β } ta IAFFAX*L#7IAFFAX*L# ; {d& `}

•  Eppfy CY ta *5# em` e`` IC\TP*L# — { β } ta IAFFAX*E#7IAFFAX*E# ; {e}

•  Eppfy Y ta *5# em` e`` IC\TP*D# — { β } ta IAFFAX*E#7

•  IAFFAX*E# ; {e& d& `}

• 

 Matb tjet rufb CCC `abs mat eppfy ta *5# lbdeusb β ∃ IC\TP*D#•  Eppfy CC ta *<# em` e`` IAFFAX*T# ta IAFFAX*I#7

IAFFAX*I# ; {bai}

•  Eppfy CY ta *4# em` e`` IC\TP*`# — { β } ta IAFFAX*I#7IAFFAX*I# ; {bai& `}

•  Eppfy CY ta *4# em` e`` IC\TP*I# — { β } ta IAFFAX*B#7IAFFAX*B# ; {i}

•  Eppfy Y ta *4# em` e`` IC\TP*`# — { β } ta IAFFAX*B#7IAFFAX*B# ; {i& `}

•   Ma *rakem mukbref# rufbs eppfy ta *0#

•  Eppfy CY ta *2# em` e`` IC\TP*l# — { β } ta IAFFAX*L#7

IAFFAX*L# ; {d& `& l}•   Ma atjbr *rakem mukbref# rufbs eppfy ta *2#

•   Ma *rakem mukbref# rufbs eppfy ta *9#

•  Eppfy rufb CC ta *8# `abs mat djemhb IAFFAX*D#

•   Ma atjbr *rakem mukbref# rufbs eppfy ta *8#- Sau sjauf` damvcmdb yaursbfi tjcs cstjb desb%

•   Ma *rakem mukbref# rufbs eppfy ta *:#

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 59/113

23

•  Eppfy rufb CC ta *3# `abs mat djemhb IAFFAX*B#

•   Ma atjbr *rakem mukbref# rufbs eppfy ta *3#-

•  Eppfy CC ta *5># em` e`` IAFFAX*B# ta IAFFAX*I#7IAFFAX*I# ; {bai& i& `}

•  Eppfy CY ta *55#7 em` e`` IC\TP*i# — { β } ta IAFFAX*I#7

IAFFAX*I# ; {bai& i& `}- Ma djemhb-•   Ma *rakem mukbref# rufbs eppfy ta *5<#

Et tjcs pacmt wb jevb7

IAFFAX*T# ; {bai}IAFFAX*E# ; {e& d& `}IAFFAX*L# ; {d& `& l}IAFFAX*D# ; {bai}IAFFAX*B# ; {i& `}IAFFAX*I# ; {bai& i& `}

Xb `a ematjbr raum`7

•  rufb *5#7 ma djemhb

•  rufb *<#7 ma djemhb

•  rufb *4#7 ma djemhb *mat eiibdtb` ly IAFFAX sbts#

•  rufb *0#7 ma djemhb

•  rufb *2#7 ma djemhb

•  rufb *9#7 ma djemhb

•  rufb *8#7 ma djemhb

•  rufb *:#7 ma djemhb

•  rufb *3#7 ma djemhb- Pjb kast up ta `etb IAFFAX*B# cs efrbe`y e``b` taIAFFAX*I#

•  rufb *5>#7 ma djemhb

•  rufb *55#7 ma djemhb

•  rufb *5<#7 ma djemhb

Ta& tjb IAFFAX sbts erb7

IAFFAX*T# ; {bai}IAFFAX*E# ; {e& d& `}IAFFAX*L# ; {d& `& l}IAFFAX*D# ; {bai}IAFFAX*B# ; {i& `}IAFFAX*I# ; {bai& i& `}

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 60/113

9>

XBBO >8

\bvcbwcmh aur Femhuehb — Ka`ciycmh aur Fbxbr Cm ar`br ta ckpfbkbmt wb mbb` ta `a e djemhb cm aur Fbxbr- Ct mbb`s ta hbmbretb e telfb

*fcst# wctj eff tjb taobms c`bmtcicb`- Pjcs fcst ai taobms wcff lb tjb cmput iar tjb ^ersbr- Pjcsfcst sjauf` jevb iar bedj taobm& cts detbhary& tjb taobm ctsbfi& em` tjb fcmb wjbrb tjb taobmeppbers cm tjb cmput icfb& b-h-&

C@BMPCIB\ c 5

Cm ar`br ta ckpfbkbmt tjcs& wb wcff mbb` e Fcmob`Fcst ai Paobm- Pjus& e Paobm dfesssjauf` lb drbetb`-

Pjb strudturb ai aur dakpcfbr sa ier& wcff jevb tjrbb dfessbs *-geve icfbs#7

• 

Fbxbr-geve — wjcdj damtecms eff tjb kbtja`s iar Fbxbr emefyzbr ta rbdahmczb eff tjbtaobms am tjb cmput icfb em` tjb damtecms tjb kecm kbtja`-

•  Paobm-geve — wjcdj `bicmbs `b taobm algbdt em` eff cts kbtja`s-

•  ^ersbr-geve — wjcdj damtecms eff tjb kbtja`s iar eff tjb hrekker rufbs cm aur femhuehb-

\bvcbwcmh aur femhuehb — Ckpfbkbmtcmh tjb ^ersbr Cm ar`br ta ckpfbkbmt *da`b# tjb ^ersbr iar aur femhuehb wb mbb` icrst ta vefc`etb eff aur hrekker rufbs- Pa vefc`etb tjb rufbs& wb mbb` ta rbvcbw tjb IC\TP em` IAFFAX sbts-Pjbrb erb twa dam`ctcams ta rbvcbw7

•  Xjbmbvbr tjbrb cs tjb aptcam ai iaffawcmh kemy `ciibrbmt petjs *dam`ctcams#& tjb

cmtbrsbdtcam ai tjb IC\TP sbt ai eff tjb passclfb petjs sjauf` lb tjb Ú-

•  Xjbmbvbr tjbrb cs e faap& tjb cmtbrsbdtcam ai tjb IAFFAX sbt em` tjb IC\TP sbt ai 

tjet rufb sjauf` lb tjb Ú- 

Premsfetcmh e symtex `cehrek cmta da`b cs passclfb ly iaffawcmh tjbsb tcps7

•  Xjbmbvbr tjbrb cs e tbrkcmef *dcrdfb#& ct wcff lb tremsfetb` es em ci+bfsb dam`ctcam-

•  Xjbmbvbr tjbrb cs `cvbrsb petj ta iaffaw& tjet wcff lb tremsfetb` es ci dam`ctcams-

• 

Xjbmbvbr tjbrb cs e faap cm tjb `cehrek& ct wcff lb tremsfetb` es e `a+wjcfb strudturb-

Iar bxekpfb& iar tjb icrst rufbs ai aur femhuehb& wb wcff jevb tjb iaffawcmh psbu`a+da`b-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 61/113

95

  pulfcd vac` prahrek *#{ 

`a {

ci *PaobmFcst-hbt*durrbmtPaobm# ;; ‖typb‛#{durrbmtPaobm //?

} bfsb {prcmt*Brrar — typb bxpbdtb`#?}ci *PaobmFcst-hbt*durrbmtPaobm# ;; ‖c`bmtcicbr‛#{

durrbmtPaobm //?} bfsb {prcmt*Brrar — c`bmtcicbr bxpbdtb`#?

}ci *PaobmFcst-hbt*durrbmtPaobm# ;; ‖*‛# { !! ‖*‖ cs tjb icrst

bfbkbmt am `kbtja``kbtja`*#?

} bfsb {`verhfalef*#?

}

} wjcfb *%bai#?} 

 pulfcd vac` `verhfalef *# { `a {

ci *taobmFcst-hbt*durrbmtPaobm# ;; ‖&‛# {durrbmtPaobm//7} bfsb {

prcmt *Brrar — kcsscmh dake#?}ci *taobmFcst-hbt*durrbmtPaobm# ;; ‖c`bmtcicbr‛# {

durrbmtPaobm//7} bfsb {

prcmt *Brrar — kcsscmh c`bmtcicbr#?}

} wjcfb *taobmFcst-hbt*durrbmtPaobm#;; ‖&‛#?

ci *taobmFcst-hbt*durrbmtPaobm#;;‖?‛# {durrbmtPaobm //?

} bfsb {!!prcmt*Brrar — kcsscmh sbkcdafam#? !!Pjcs cs wjet cs bxpbdtb` am

yaur esschmkbmt <wjcfb *taobmFcst-hbt*durrbmtPaobm# %; ‖?‛ ))

taobmFcst-hbt*durrbmtPaobm# %; ‖Vm‛# {durrbmtPaobm //?

}}

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 62/113

9<

 

 pulfcd vac` `verfadef *# { laafbem iaa ; iefsb?`a {iaa ; iefsb?ci *taobmFcst-hbt*durrbmtPaobm# %; ‖;‛# {!! matjcmh jbrb

} bfsb *# {durrbmtPaobm //?bxprfah*#?

}ci *taobmFcst-hbt*durrbmtPaobm# ;; ‖&‛ ))

taobmFcst-hbt*durrbmtPaobm/5# ;; ‖c`bmtcicbr‛# {durrbmtPaobm ; durrbmtPaobm /<?iaa ; trub?

}} wjcfb *iaa#?ci *taobmFcst-hbt*durrbmtPaobm# ;; ‖?‛# {

durrbmtPaobm //?} bfsb {

prcmt *Brrar — kcsscmh sbkcdafam#?}

\bvcbwcmh aur Femhuehb — Drbetcmh tjb `brcvetcam trbb Xjbmbvbr wb rbvcbw tjet em cmput icfb iaffaws tjb `bicmb` hrekker& ct cs passclfb tahbmbretb tjb `brcvetcam trbb-

Es pert ai tjb Esschmkbmt $<& wb erb hacmh ta hbmbretb tjb `brcvetcam trbb ai tjb cmputicfb- Cm ar`br ta *hrepjcdeffy# drbetb tjb `brcvetcam trbb& wb erb hacmh ta usb e -`at icfb tjetdauf` lb rbe` ly tjb HrepjYcz eppfcdetcam- Ta& wjet wb mbb` ta `a cs ta drbetb tjb -`aticfb- HrepjYcz cs e irbb hrepj vcsuefczetcam taaf& ct cs passclfb ta `awmfae` ct irak7

jttp7!!www-hrepjvcz-arh!@awmfae`--pjp

Pjb iarket iar tjb -`at icfb cs tjb iaffawcmh7

`chrepj `brcvetcamPrbb { 

E _felbf ; ‖Jbffa‛[E += {L}E += {D}L _felbf ; ‖Xarf`‛[

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 63/113

94

D _felbf ; ‖Lyb‛[

5 _felbf ; ‖Amb‛[< _felbf ; ‖Pwa‛[4 _felbf ; ‖Pjrbb‛[0 _felbf ; ‖Iaur‛[5 += {<&4}< += {0}}

Pjb icrst em` fest fcmbs ai tjb -`at icfb erb kem`etary- Pjb mekb ai tjb `chrepj dauf` lbemytjcmh& cm tjcs desb cs `brcvetcamPrbb-

 Ma`bs cm tjb trbb dauf` lb c`bmtcicb` wctj fbttbrs ar muklbrs ar emy war`& cm tjcs desbsakb ai tjbk erb c`bmtcicb` wctj tjb fbttbrs E& L& em` D& em` atjbrs wctj tjb muklbrs 5&<& 4& em` 0-

Pa sbt tjb felbf wb wemt ta eppber cm tjb ma`b& tjb matetcam cs7ma`bC@ _felbf ; ‖6felbf=‛[ 

b-h-&E _felbf ; ‖Jbffa‛[5 _felbf ; ‖Amb‛[

Pa cm`cdetb e dammbdtcam ai e ma`b wctj amb ar karb atjbr ma`bs tjb matetcam cs7ma`b += { fcst ai ma`bs }

b-h-&E += {D}5 += {<&4}

Ta tjb prbvcaus -`at icfb hbmbretbs tjb iaffawcmh trbb7

Pjb djeffbmhb tjbm cs ta drbetb tjb -`at icfb wjcfb `acmh tjb perscmh- Pjb djeffbmhb cs taicm` tjb darrbdt pfedb ta drbetb tjb ma`bs *ma`bsC@#& felbfs& dammbdtcams& em` wrctb cmtatjb -`at icfb-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 64/113

90

Ta& cmsc`b ai bedj ai tjb kbtja`s tjet rbprbsbmt e rufb cm aur prahrek femhuehb ct wauf` lb mbdbssery ta e`` tjb da`b tjet wrctbs cmta tjb -`at icfb-

Bvbry tckb wb bmtbr cm e mbw rufb& wb mbb` ta drbetb e ma`b *ma`bC@# em` `bicmb tjb felbfai ct- Em` bvbry tckb tjet e kbtja` cs deffb` ct kbems e dammbdtcam cm tjb tjrbb-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 65/113

92

XBBO >:

0- TBKEMPCD EMEFSWB\ Tbkemtcd cs elaut tjb kbemcmh& c-b-& tjb cmtbrprbtetcam ai tjb bxprbsscam em` cts damtbxt-

Pa `a tjb sbkemtcd emefyscs ai tjb da`b wb mbb` ta djbdo iar scx tjcmhs7

5-  \bvcbw tjet e vercelfb cs umcqub em` tjet lbiarb ct cs usb`& tjb vercelfb wes `bdferb`-<-  \bvcbw tjet tjb vefub esschmb` ta e vercelfb darrbspam`s ta tjb typb ai tjb vercelfb-4-  \bvcbw tjet tjb cm`bxbs cm em errey erb cmtbhbr-0-  \bvcbw tjet eff tjb dam`ctcams cm em ci em` wjcfb strudturbs erb laafbem-2-  \bvcbw tjet tjb rbturm vefub ai e kbtja` darrbspam`s ta tjb typb ai tjb kbtja`-9-  \bvcbw tjet tjb perekbtbrs cm tjb deff ai e kbtja` darrbspam`s cm muklbr em` typb ta

tjb `bdferetcam ai tjb kbtja`-

Ta tjb icrst tjcmh tjet wb mbb` ta `a cs ta starb em` c`bmtciy tjb vercelfbs-

Iar bxekpfb& damsc`br tjb iaffawcmh da`b7

cmt x?x ; 2?

cmt x *cmt y# {}

cmt x *# {}

Ta& cm tjb desb elavb& wb mbb` ta keob tjb `ciibrbmdb elaut tjb vercelfb em` tjb kbtja`mekb` ‖x‛& em` efsa damsc`br tjet tjbrb cs tjb passclcfcty ta jevb twa kbtja`s wctj tjbsekb mekb& es tjb amdb elavb& lut tjbrb cs ckpartemt tjet tjbk jevb `ciibrbmt perekbtbrs&kbemcmh `ciibrbmt cm typb em`!ar muklbr- Pjcs cs deffb`& avbrfae`cmh- Ta tjb elavb csdarrbdt? jawbvbr& ci wb wauf` e`` tjb iaffawcmh kbtja`7

vac` x *#{

}

Pjcs sjauf` lb rbdahmczb` es em brrar- \bkbklbr tjet tjb mekb ai tjb kbtja`s *ctsschmeturb# cs `ciibrbmt& tjcs cmdfu`b tjb mekb em` perekbtbrs-Ci wb jevb tjb iaffawcmh da`b7

cmt e?e ; 2?

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 66/113

99

cmt x *cmt y#{cmt e?

}

cmt x *#{cmt e?

}

Es ct dem lb sbbm& tjbrb cs e vercelfb ‖e‛ tjet cs `bdferb` hfaleffy lut efsa ct cs `bdferb`cmsc`b ai bedj ai tjb kbtja`s- Pjcs cs darrbdt? `ub ta tjb iedt bedj vercelfb jes cts awmsdapb- Pjcs kbems tjet tjb icrst `bdferetcam ai ‖e‛ cs cm tjb hfalef sdapb& wjcfb tjb atjbr twa ‖e‛–s erb cmsc`b ai e kbtja`& tjcs keobs tjasb vercelfbs `ciibrbmt-

Ematjbr tjcmh ta rbvcbw lbsc`b tjb schmeturb em` tjb sdapb cs tjb esschmetcam em` typbs-

cmt e?e ; 2?

Pjcs cs darrbdt `ub ta tjb iedt 2 cs em cmtbhbr vefub-

djer e?e ; 2?

Pjcs cs efsa darrbdt& `ub ta tjb iedt ci e djer vercelfb cs esschmb` wctj em cmtbhbr muklbr& ctcs teobm es tjb mukbrcdef vefub ai tjb djeredtbr& b-h-& ci tjb vefub cs 92 tjb fbttbr wauf` lbE-

ifaet y;2?

Pjcs elavb iar sakb femhuehbs dauf` lb darrbdt `ub ta tjb iedt ct cs passclfb ta starb emcmtbhbr cm e ifaet- Jawbvbr& tjcs kchjt lb mat vefc` cm atjbr femhuehbs-

laafbem z ; 5?

Ehecm tjcs bxekpfb jbrb& kchjt `bpbm` am tjb damsc`brb` femhuehb& sakb femhuehbskchjt damsc`br tjb muklbr amb es e trub vefub- Es ct dem lb sbbm& bedj femhuehb jes ctsawm sbkemtcd rufbs- Maw& damsc`br tjb iaffawcmh da`b em` fbt–s rbvcbw tjb esschmetcam ai 

vefubs-

ifaet e; >?cmt x ; *< / e# ! 8?

Xjbm e vercelfb cs esschmb` wctj e wjafb bxprbsscam es tjb amb elavb ‖x‛& ct cs ckpartemtta bvefuetb tjb bxprbsscam ta sbb ci ct ketdjbs tjb typb ai tjb vercelfb-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 67/113

98

Iar cmstemdb& iar tjb bxprbsscam elavb wb dem drbetb tjb `brcvetcamef trbb- Em` tjbmrbvcbw tjb rbsuftemt typb ai bedj sbdtcam ai tjb bxprbsscam em` tjb bm` typb ai tjb wjafbesschmetcam ta sbb ci ct cs e vefc` ar mat esschmetcam-

Ta& hcvbm tjb `brcvetcam trbb& wb mbb` ta omaw cs e``cmh em cmtbhbr *<# wctj e ifaet *e# csvefc`- Iar tjcs bxekpfb& ci wb essukb ct cs vefc` em` tjet ct rbturms e ifaet& wb dem pradbb`ta tjb `cvcscam ai tjet ifaet wctj em cmtbhbr *8#& tjcs wcff rbturm e ifaet- Pjbm wb demrbvcbw tjb esschmetcam ai e& wjcdj cs e ifaet& wjct e vefub tjet cs e ifaet& tjet cs darrbdt-

Xjet jeppbm wctj tjb bxprbsscams cmsc`b tjb ‖ci‛ em` ‖wjcfb‛ strudturbs1 Ct cs bxpbdtb`tjet tjb rbsuftemt typb ai tjb bxprbsscam cs e laafbem vefub-

ci *x 6 2#{}ci *e#{}ci *2/2#{}ci *2!9#{}

Iar tjb bxprbsscams elavb& ct cs mbdbssery ta rbvcbw tjb rbsuftemt typb ai tjb bxprbsscam-x62 wauf` rbturm e laafbem vefub& sa ct cs darrbdt-

Iar tjb fest tjrbb bxprbsscams& ct kchjt `bpbm` ai tjb femhuehb- Iar cmstemdb iar Geve&tjbsb bxprbsscams erb cmdarrbdt `ub ta tjb iedt tjb rbsuftemt typb ai tjb bxprbsscams erbmukbrcdef vefubs& mat laafbem vefubs- Jawbvbr& iar atjbr femhuehbs sudj es D!D// ctwauf` lb darrbdt& `ub ta tjb iedt tjb femhuehb damsc`brs emytjcmh tjet cs `ciibrbmt irak >es trub-

Ematjbr bxekpfb cs iar erreys- Pjb rufb iar erreys cs tjet tjb bxprbsscam iar tjb cm`bx cm

em errey sjauf` lb em cmtbhbr vefub- Ta& ct cs passclfb ta jevb tjb iaffawcmh bxprbsscams7

cmt x?ifaet e;>->?cmt err_[?

err_2[ ; >?err_x/5[ ; 2?err_e[ ; 2?

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 68/113

9:

 Ta cm tjb desb ai err_2[ ct cs besy ta omaw tjet ct cs darrbdt& 2 cs em cmtbhbr- Iar tjbbxprbsscam x/5& es x cs em cmtbhbr& tjb rbsuft ai tjcs bxprbsscam wauf` lb em cmtbhbr-Jawbvbr& iar tjb desb ai e& e cs e ifaet? sa& tjcs sjauf` lb damsc`brb` em brrar-

 Maw& iar tjb rbturm vefub ai e kbtja`& ct cs ckpartemt ta rbvcbw tjet tjb bxprbsscam cm tjbrbturm stetbkbmt ketdjbs tjb typb ai tjb kbtja`- Iar cmstemdb& cm tjb iaffawcmh bxekpfb&tjb bxprbsscam cm tjb rbturm stetbkbmt cs e 2- Ta& 2 cs em cmtbhbr em` ketdjbs tjb typb ai tjb kbtja`& wjcdj cs cmtbhbr taa-

cmt iaa *# {ifaet e?rbturm 2?

}

Iar tjb iaffawcmh bxekpfb& tjb bxprbsscam *2'8#!e wauf` lb e ifaet vefub& em` tjb typb ai tjb kbtja` cs em cmt& sa tjcs cs cmdarrbdt-

cmt iaa *# {ifaet e?rbturm *2'8#!e?

}

Fest lut mat fbest& ct cs ckpartemt ta rbvcbw tjet tjb perekbtbrs usb` wjbm e kbtja` csdeffb` darrbspam` cm typb em` muklbr wctj tjb perekbtbrs `bicmb` iar tjet kbtja`- Iar cmstemdb& cm tjb iaffawcmh bxekpfb7

cmt iaa *#{ifaet e?rbturm e?

}

vac` iaa *djer e#{}

vac` kecm *#{cmt g ; iaa *#?iaa *‚e–#?iaa *8 — 5 ' < " 4#?

}

Pjb icrst deff iar tjb iaa kbtja` cs darrbdt& `ub ta tjb iedt& tjb iaa kbtja` rbturms em cmvefub em` tjcs cs esschmb` ta e cmt vercelfb& g- Pjb sbdam` deff ta tjb kbtja` iaa& cs efsa

darrbdt& `ub ta tjb iedt tjbrb cs ematjbr kbtja`& wjcdj cts schmeturb cs `ciibrbmt irak tjbicrst amb& tjet bxpbdts e djer es perekbtbr em` `a mat rbturm emytjcmh-

Iar tjb fest deff ai tjb iaa kbtja`& wb wauf` mbb` ta vbrciy tjet tjb wjafb bxprbsscam ‖ 8

— 5 ' < " 4‛ cs djer& wjy e djer& `ub ta tjb iedt tjbrb cs mat vercelfb esschmb` ta tjet

deff-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 69/113

93

 Maw iar tjb iaffawcmh desbs& iaffawcmh tjb rufbs cm Geve& wjcdj desbs erb darrbdt em`wjcdj erb mat darrbdt1

Desb 5-cmt c?

djer g? cmt k?

vac` kbtja`*cmt m& djer d# {cmt m? sjart f?c ; g? c ; k?

}

Pjb bxprbsscam ‖c;g‛ dauf` lb cmdarrbdt- Ct wauf` `bpbm` ci tjb femhuehb effaws tjet djersem` cmtbhbr waros tahbtjbr& c-b- tjet e djer vefub dem lb esschmb` ta em cmtbhbr vercelfb-

Desb <-cmt c& g?

vac` kbtja`*# {cmt c ; 2?

cmt g ; c / c?cmt c ; c / c?

Pjb pralfbk jbrb cs tjet tjb vercelfb ‖c‛ cs `bicmb` twa tckbs cmsc`b ai tjb kbtja`& satjby latj erb cm tjb sekb sdapb em` ct cs cmdarrbdt- Matcdb tjet bvbm tjauhj tjbrb cs efsa evercelfb mekb` ‖c‛ cm tjb hfalef sdapb-

Desb 4-cmt c& k& o? laafbem g?

vac` kecm*# {ci *c=2# { //c? }wjcfb *c / 5# { //c? }`a {//c? } wjcfb *c#?iar *c ; >? k? //c# {

o//?}

}

Cm tjcs desb& ci wb iaffaw tjb rufbs cm Geve& tjb pralfbk cs cm tjb bxprbsscams wjcfb *c / 5#em` wjcfb *c# `ub ta tjb iedt tjet c cs em` cmtbhbr-

Desb 0-cmt e? cmt l? cmt d& `?

djer d5& d<?cmt tbst5*cmt x& cmt y# {

rbturm x/y?}vac` kecm*# {

cmt c? c ; e//?c ; tbst5*e& l#?c ; tbst5*d5& d<#?c ; tbst5*e& d5#?

} }

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 70/113

8>

Ci wb iaffaw tjb rufbs cm Geve& tjb pralfbk jbrb cs tjb deffs iar tjb kbtja` tbst5- Cm tjbsbdam` deff ai tjb kbtja` d5 em` d< erb djeredtbr vefubs em` tjb kbtja` cs bxpbdtcmhcmtbhbr vefubs- Cm tjb tjcr` deff ai tjb kbtja` tjb pralfbk cs wctj tjb d5& ehecm ct cs edjeredtbr vefub wjbm em cmtbhbr cs bxpbdtb`-

Desb 2-cmt c& k? laafbem g?pulfcd vac` kecm*# {

cmt k? cmt e_[?e ; mbw cmt_g[?

}

Jbrb tjb pralfbk wcff lb tjet wb erb uscmh e laafbem vercelfb es em cm`bx iar em errey-Ehecm& sakb femhuehbs kchjt damsc`br tjcs vefc`& sakb atjbrs mat- Pjet cs wjy ct csckpartemt ta `bicmb tjb sbkemtcd rufbs iar yaur femhuehb-

Desb 9-cmt c?

vac` kecm*cmt k# {c//? rbturm c?

}

Jbrb tjb pralfbk cs wctj tjb rbturm bxprbsscam- Pjb kbtja` `abs mat bxpbdt ta rbturmemytjcmh& cts typb cs vac`? jawbvbr& tjbrb cs e rbturm bxprbsscam wctj em cmtbhbr vefub-

Pa ckpfbkbmt tjb sbkemtcd emefyzbr ct wcff lb mbdbssery ta jevb e haa` um`brstem`cmh ai tjb symtex rufbs& `ub ta tjb iedt tjb da`b irak tjb sbkemtcd emefyzbr wcff lb e``b` am tjbtap ai tjb kbtja`s drbetb` iar tjb symtex rufbs-

Lbsc`b tjet& ct wcff lb mbdbssery ta drbetb e Tyklaf Pelfb damiarkb` wctj eff tjb

vercelfbs em` kbtja`s `bicmb` cm e prahrek& em` e dulb ai apbretcams tjet `bicmb wjcdjapbretcams erb vefc` iar bedj typb ai `ete em` tjb typb iar tjb rbsuft ai tjet apbretcam-

0-5- Tyklaf telfb Cm ar`br ta ckpfbkbmt tjb sbkemtcd emefyzbr ct cs mbb`b` ta drbetb e telfb& mekb` Tyklaftelfb- Pjcs telfb starbs tjb mekb ar schmeturb ai bedj vercelfb es wbff es cts typb em`sdapb-

Ta& bvbry tckb e vercelfb cs `bdferb` ct cs starb` cm tjb syklaf telfb- Em` bvbry tckb e

vercelfb cs usb` ct cs ckpartemt ta djbdo tjet tjb vercelfb wes efrbe`y `bdferb`-

Damsc`br tjcs da`b7

cmt c?djer g? cmt k?

vac` kbtja`*cmt m& djer d# {

cmt m? sjart f?

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 71/113

85

c ; g? c ; k?}

cmt c& g?vac` kbtja`*# {

cmt c ; 2?cmt g ; c / c?cmt c ; c / c?

}

cmt c& k& o? laafbem g?

vac` kbtja`*cmt c# {

ci *c=2# { //c? }wjcfb *c / 5# { //c? }`a {//c? } wjcfb *c#?iar *c ; >? k? //c# {

o//?}

}

Xjcfb drbetcmh tjb telfb ai syklafs amb ‖raw‛ cs drbetb` iar bedj vercelfb- Ta& iar cmstemdb iar tjb vercelfb ‖c‛& tjbrb wcff lb e raw7

c hfalef cmt kbtja` cmtKbemcmh tjet tjb vercelfb ‖c‛ cs `bdferb` es e hfalef cmt vercelfb lut efsa cmsc`b tjbkbtja` deffb` kbtja` es em cmt vefub-

cmt e&l? djer d& `? ifaet b&i?

vac` iaa5*cmt e# {

!! ifaet e ; 5?ifaet e ; e?

}vac` iaa<*djer l# {

cmt e ; d / `?}

cmt iaa4*# {

cmt c ; e / l?}

Pjb syklaf telfb iar tjcs da`b wcff lb tjb iaffawcmh7

e hfalef cmt  iaa5Qcmt cmt iaa5Qcmt ifaet  iaa<Qdjer cmt l hfalef cmt iaa< djer d hfalef djer ` hfalef djer b hfalef ifaeti  hfalef ifaetiaa5Qcmt iumdtcam vac`

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 72/113

8<

iaa<Qdjer  iumdtcam vac`iaa4Q  iumdtcam cmtc iaa4 cmt

 Matb tjet iar tjb kbtja`s mat amfy tjb mekb cs starb` lut tjb wjafb schmeturb tjetdamscsts am tjb mekb em` tjb typb ai perekbtbrs-

Ta iar tjb desb ai vercelfb ‖e‛ tjbrb cs e pralfbk *kerob` cm rb`#& `ub ta tjb iedt tjbrb erbtwa c–s cmsc`b tjb sekb sdapb iaa5Qcmt-

 Maw cm tbrks ai usehb ai tjb vercelfbs& wjet jeppbm wjbm wb mbb` ta rbvcbw tjet amb evercelfb cs `bicmb` lbiarb ct cs usb`1 Xbff wb erb hacmh ta usb tjb syklaf telfb ta rbvcbwtjet- Cm hbmbref tbrks& wjbm uscmh e vercelfb& ct dem lb sec` tjet fadef vercelfbs jevb prcarcty avbr hfalef vercelfbs-

Cm ar`br ta drbetb tjb syklaf telfb ct cs passclfb ta ka`ciy tjb kbtja`s ai tjb ^ersbr *prahrek& `verQhfalef& `kbtja`& em` perekbtbr# cm ar`br ta starb tjb vercelfbs em`kbtja`s wjcfb tjb ^ersbr rbdahmczbs e vefc` vercelfb& kbtja`& ar perekbtbr-

Pjb rb` leffaams cm`cdetb tjb pfedbs cm tjb kbtja` wjbrb ct cs mbb` ta e`` sakb da`b-Takb ai tjet da`b wcff cmdfu`b ta e`` tjb vercelfbs cmta tjb Tyklaf Pelfb-

Ta& wjbm e prahrek sterts ct cs bxpbdtb` ta jevb sakb hfalef vercelfbs em`!ar sakbkbtja`s- Ta& stertcmh wctj tjb ‖prahrek‛ rufb& bedj tckb tjet e typb cs rbdahmczb` ct dem lb starb` es wbff es bedj tckb em c`bmtcicbr cs rbdahmczb` ct dem lb starb`- Maw& tjbrb erb

twa aptcams bctjbr ct cs e hfalef vercelfb ar ct ct–s e kbtja`- Ta ci ct cs e hfalef vercelfb ctdauf` lb amfy amb ar e fcst ai tjbk& sa bvbry tckb tjb rufb dakpfbtbs tjb faap ai e mbwc`bmtcicbr tjcs c`bmtcicbr dauf` lb efsa starb` uscmh tjb fest rbdahmczb` typb- Maw& wjbmtjb sbkcdafam cs `btbdtb`& tjcs kbems tjet tjb fcst ai vercelfbs bm`s em` tjet ct cs esymtedtcdeffy darrbdt fcst ai hfalef vercelfbs& tjbm tjcs cs jbrb wjbm tjasb vercelfbs sjauf` lb e``b` ta tjb Tyklaf Pelfb-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 73/113

84

 

 Maw ci ct cs e kbtja`& bvbry tckb e typb ai e perekbtbr cs c`bmtcicb` ct sjauf` lb starb` cmar`br ta drbetb tjb kbtja` schmeturb lut ct wauf` lb umtcf eff perekbtbrs erb `btbdtb`*eitbr tjb dfascmh perbmtjbscs# tjet ct cs passclfb ta sey tjb eff erb symtedtcdeffy darrbdt&wjbm wb sjauf` starb tjb kbtja` schmeturb em` eff cts perekbtbrs ta tjb Tyklaf Pelfb-

0-<- Yercelfbs erb prbvcausfy `bdferb`  Maw& ci wb mbb` ta rbvcbw tjet e c`bmtcicbr wes `bicmbs lbiarb ct cs usb`& ar tjet e kbtja`bxcsts lbiarb ct cs usb`& wb mbb` ta e`` sakb fcmbs ai da`b cm tjb ‖tbrk‛ em`‖deffQiumdtcam‛ rufbs-

0-4- Pypb ketdjcmh em` tjb dulb ai typbs 

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 74/113

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 75/113

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 76/113

89

 passclfb ta bvefuetb ci tjb typb ai tjb bxprbsscam& defdufetb` wctj tjb `brcvetcam trbb em`tjb dulb& ketdjbs tjb typb ai tjb c`bmtcicbr-

Jakbwaro <- \bvcbw yaur ^ersbr ta essurb yau um`brstem` eff tjb rufbs iar yaur

hrekker-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 77/113

88

XBBO >3

BZEK \BYCBX7 FBZCDEF EM@ TSMPEZ EMEFSTCT 

Damsc`br tjb iaffawcmh da`b7

cmt e?

cmt d* cmt l# {\bturm l ' 4 ' < ' 5?

}

vac` kecm *# {e ; 5?laafbem e ; d *50# ! < = 5?

}

5-  Altecm tjb fcst ai Paobms-

<- 

Lucf` tjb `brcvetcam trbb-

Pjb fcst ai Paobms wcff lb es iaffaws7cmt typbe c`? `bfckctbrcmt obywar`d c`* `bfckctbrcmt typbl c`# `bfckctbr{ `bfckctbrrbturm obywar`

l c`' apbretar4 cmtbhbr' apbretar< cmtbhbr' apbretar5 cmtbhbr? `bfckctbr} `bfckctbrvac` typb

kecm c`* `bfckctbr# `bfckctbr{ `bfckctbre c`; apbretar5 cmtbhbr? `bfckctbrlaafbemtypbe c`; apbretar

d c`* `bfckctbr50 cmtbhbr# `bfckctbr! apbretar< cmtbhbr= apbretar5 cmtbhbr? `bfckctbr} `bfckctbr

Pjb `brcvetcam trbb wcff faao fcob es iaffaw *damsc`br tjet mat eff tjb tbrkcmef bfbkbmts erbsjawm cm tjb trbb#7

 MAPB7 Pjbrb cs em brrar cm tjb deffQiumdtcam rufb& tjbrb cs e sbkcdafam *?# tjet cs kcspfedb`? ctdemmat lb cm tjet rufb- ^fbesb djbdo ct em` icx ct-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 78/113

8:

 

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 79/113

83

BZEK \BYCBX7 TBKEMPCD EMEFSTCT  Maw& damsc`brcmh tjb sekb da`b elavb& wb dem altecm tjb Tyklaf telfb iar ct-

cmt e?

cmt d* cmt l# {\bturm l ' 4 ' < ' 5?

}

vac` kecm *# {e ; 5?laafbem e ; d *50# ! < = 5?

}

 Maw tjb Tyklaf telfb wcff faao es iaffaws7

e hfalef cmt kecm laafbem

dQcmt

iumdtcam cmtl dQcmt cmt

kecm iumdtcam vac`

Ta& et tjcs kakbmt& wb jevb tjb taobms& tjbcr typbs& em` efsa tjb syklaf telfb-

\bkbklbr tjet& cm ar`br ta `a tjb sbkemtcd emefyscs wb mbb` ta djbdo iar scx tjcmhs7

5-  \bvcbw tjet e vercelfb cs umcqub em` tjet lbiarb ct cs usb`& tjb vercelfb wes `bdferb`-<-  \bvcbw tjet tjb vefub esschmb` ta e vercelfb darrbspam`s ta tjb typb ai tjb vercelfb-4-  \bvcbw tjet tjb cm`bxbs cm em errey erb cmtbhbr-0-  \bvcbw tjet eff tjb dam`ctcams cm em ci em` wjcfb strudturbs erb laafbem-

2-  \bvcbw tjet tjb rbturm vefub ai e kbtja` darrbspam`s ta tjb typb ai tjb kbtja`-9-  \bvcbw tjet tjb perekbtbrs cm tjb deff ai e kbtja` darrbspam`s cm muklbr em` typb ta

tjb `bdferetcam ai tjb kbtja`-

\bkbklbr tjet wb erb mat jem`fcmh erreys& sa wb amfy jevb ta djbdo iar 2 tjcmhs-

Cm tbrks ai prahrekcmh& wb erb hacmh ta usb e stedo es `ete strudturb ta ckpfbkbmt tjbsbkemtcd emefyzbr-

Amb ckpartemt tjcmh ta damsc`br cs tjet et tjcs pacmt wb jevb eff tjb taobms& eff tjb typbs&wb omaw tjet eff tjb bxprbsscams erb darrbdt& em` wb efsa jevb tjb dulb ai typbs-

Rscmh tjb stedo ct cs passclfb ta rbvcbw tjb rbsuft typb ai emy bxprbsscam-

Fbts damsc`br tjet wb erb emefyzcmh tjb fcmb ‖l ' 4 ' < '5‛

Ta& wjbm wb erb drbetcmh tjb `brcvetcam tjrbb& em` wb erb `befcmh wctj em bxprbsscam em`hbt ta e ‖tbrk‛ tjcs kbems tjet wb jevb em apbrem`- Ta& faaocmh et tjb `brcvetcam trbb& wb

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 80/113

:>

hbt cmta e ‖tbrk‛ wjbm wb pradbssb` tjb taobm ‖l‛- Ta& wb erb hacmh ta starb tjb typb ai tjb taobm cm tjb stedo7

cmt l

 Maw& wjbm wb icm` tjb taobm ‖'‛& wb mbb` ta starb ct cm ar`br ta djbdo tjet tjb apbretcamwb erb elaut ta pradbss rbturm e vefc` typb- Ct cs ckpartemt ta rbkbklbr tjet ‖'‛ cs e lcmery apbretar& tjcs kbems tjet ct mbb`s twa apbrem`s- Xjbm wb rbe` em apbretar tjet csumery& tjb wey ta pradbb` cs `ciibrbmt& `ub ta tjb iedt wb `am–t mbb` ta pradbss tjbapbretcam wctj amb bfbkbmt-

 Maw& wb hbt ehecm ta e ‖tbrk‛ maw wctj tjb cmtbhbr ‖4‛& sa wb starb tjb typb cm tjb stedo7

cmt 4

cmt l

 Maw& wjbm ta pradbss tjb apbrem`s cm tjb stedo- Bvbry tckb tjet wb hbt ta tjb bm` pacmtai tjb ‖pra`udt‛ rufb& wb erb hacmh ta pradbss tjb typbs am tjb stedo uscmh tjb starb`apbretar-

Ta& cm aur bxekpfb& wb jevb twa cmtbhbrs cm tjb stedo em` wb jevb starb` tjb apbretar ‖'‛- Ta& wb mbb` ta rbvcbw cm tjb dulb ai typbs ci tjb apbretar ‖'‛ jevb e vefc` typb iar 

twa cmtbhbrs- Ta cm tjcs desb ct jes ct& em` tjb rbsuftcmh typb cs em cmtbhbr-

Xb wcff puff aut tjbm tjb twa pradbssb` typbs em` pusj cm tjb rbsuft- Maw tjb taobm wcfffaaos fcob tjcs7

cmt l'4

Xb wcff iaffaw tjb sekb pradbss ta pradbss tjb rbst ai tjb bxprbsscam l ' 4 ' < '5- Et

tjb bm`& wb wcff jevb em cmt typb cm tjb stedo- Pjcs kbems tjet tjb rbsuft typb ai tjb wjafbbxprbsscam cs em cmt- Et tjcs pacmt& ct cs passclfb ta rbvcbw ct tjb bxprbsscam ketdjbs& cm tjcsdesb& wctj tjb rbturm typb ai tjb kbtja`- Ta& cm tbrks ai ckpfbkbmtetcam& wjbm wb hbt tatjb bm` ai tjb rufb rbturm wb dem djbdo iar typb ketdjcmh lbtwbbm tjb typb ai tjb kbtja`em` tjb typb ai tjb bxprbsscam am tjb rbturm stetbkbmt-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 81/113

:5

Pjcs sekb waros wjbm wb erb rbvcbwcmh em` esschmkbmt stetbkbmt- Xjbm wb icmcsj ta pradbss tjb bxprbsscam am tjb rchjt sc`b ai tjb esschmetcam wb dem rbvcbw tjet tjb rbsufttypb ai tjb rchjt sc`b ketdjbs tjb rbsuft typb ai tjb fbit sc`b-

Fbt–s rbvcbw wjet jeppbm wjbm wb deff e kbtja`- Xjet jeppbms cm tbrks ai ketdjcmh

typbs-

Cm tjb sbkc bxprbsscam ‖d*50#‛

Xb erb deffcmh d*50#& sa wb mbb` ta omaw ci tjb typb ai tjb perekbtbr usb` cm tjb deffketdjbs tjb typb ai tjb `bdferb` perekbtbr- Pa `a tjcs& bvbry tckb wb hbt ta tjb pacmt cmtjb rufb deffQiumdtcam wjbrb wb icm` tjb dfascmh perbmtjbscs& wb dem rbvcbw tjet tjb typbai tjb bxpfah ketdjbs tjb typb `bicmb` iar tjb kbtja`- Ehecm& tjb typb ai tjb bxpfah wcff lb tjb typb et tjb tap ai tjb stedo& em` tjb typb ai tjb `bicmb` perekbtbr wcff lb cm tjbsyklaf telfb-

 Maw& cm ar`br ta rbvcbw tjb fcmb wctj tjb `bdferetcam ai tjb fadef vercelfb tjet efsa jes emcmctcef `bdferetcam7

laafbem e ; d*50# ! < = 5?

wb mbb` ta omaw latj tjb typb ai tjb fbit em` rchjt sc`b ai tjb ‖;‛ syklaf- Cm tjcs pertcdufer desb tjb fbit sc`b cs em c`bmtcicbr tjet tjrauhj tjb telfb ai syklafs wb icm` aut ctcs e laafbem- Xb mbb` ta altecm tjb typb ai tjb rchjt sc`b- Xb stert wctj tjb bxprbsscam&em` uscmh tjb stedo wb dem altecm tjb rbsuft typb ai tjet bxprbsscam-

Ta& icrst wb hbt tjb deff ta tjb iumdtcam d*50#& iar tjb prcar bxpfemetcam wb omaw tjet tjbtypb ketdjbs em` tjet tjb rbsuftemt typb cs cmt& sa cm tjb stedo wb wcff jevb em cmt-

cmt d*50#

 Maw& tjb mbxt taobm cs ‖!‛& sa wb starb tjet apbretar- Pjb mbxt taobm cs ‖<‛ tjet cs emcmtbhbr- Ta& wjbm wb hbt ta tjb ‖tbrk‛ rufb wb starb cm tjb stedo tjb typb- Ta& tjb stedo faaos fcob7

cmt <

cmt d*50#

 Maw& es wb pess twcdb iar tjb ‖pra`udt‛ rufb& wb mbb` ta pradbss tjb apbretar& ‖!‛& cm tjcsdesb- Xb mbb` ta rbvcbw cm tjb dulb ci tjb apbretar ‖!‛ jevb e vefc` rbsuft typb iar twa

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 82/113

:<

cmtbhbrs& cm tjcs desb fbts essukb tjet tjb rbsuftemt typb cs em cmt- Ta& wb puff aut tjb twacmtbhbrs em` wb pusj cm tjb rbsuftemt typb

cmt d*50# ! <

 Maw& tjb mbxt apbretar cs ‖=‛& sa ehecm& tjcs cs e lcmery apbretar- Ta& rbe` tjb mbxt taobmtjet cs 5-

cmt 5

cmt d*50# ! <

 Maw& wjbm wb pess tjb sbdam` typb iar tjb ‖pra`udt‛ rufb wb pradbss tjb apbretar- Ta& ci wb faao cmta tjb dulb iar tjb vefc` typbs iar tjb apbretar ‖=‛& wb wcff icm` tjet tjbrbsuftemt typb iar twa cmtbhbrs cs e laafbem-

 laafbem d*50# ! < = 5

Ta& wjbm cm tjb rufb ‖`verfadef‛ wb hbt ta tjb pacmt wjbrb wb icm` tjb sbkcdafam& tjbmwb dem rbvcbw tjet ci tjbrb wes em cmctcef esschmetcam iar e vercelfb tjet tjb typb ketdjbs-

Cm tjcs pertcdufer desb& wb maw tjet ‖e‛ tjb fadef vercelfb cs e laafbem *faaocmh et tjbsyklaf telfb# em` tjbm tjb bxprbsscam cs efsa e laafbem-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 83/113

:4

XBBO 5>

2- DA@B HBMB\EPCAM EM@ DAK^CFCMH

Ta ier wjet wb jevb `amb cs rbvcbw tjet e pcbdb ai da`b iaffaws tjb fbxcdef& symtex& em`

sbkemtcd rufbs ai e pertcdufer femhuehb- Pjb mbxt stbp cm aur dakpfcbr wcff lb ta tremsfetbe jchj fbvbf femhuehb ta e faw fbvbf femhuehb ta hbmbretb tjb da`b em` dakpcfb ct-

2-5- Dakpcfbrs 

Damsc`br tjb iaffawcmh da`b7

cmt e *cmt l& cmt d& cmt `& strcmh s# {ci *s ;; ‖s‛# {

rbturm l ' d / `?}

}

vac` kecm {prcmt * e*0&2&9&‛s‛# #?

}

Ta& ci wb tremsfetb tjb prcar da`b ta e faw+fbvbf femhuehb ct wauf` lb sakbtjcmh fcob tjbiaffawcmh7

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 84/113

:0

sta >& ssta >& `sta >& dsta >& `fa` s& >fct ‖s‛& >apr >& 50gkd i& QB5fa` l& >fa` d& >apr >& 0fa` `& >apr >& <sta >& eapr >& 5fa` QB<& >fct 0& >fct 2& >fct 9& >fct ‖s‛& >

def e& 5 ?mekb em` e``rbssfa` e& >apr >& <5apr >& 5

2-<- Cmstrudtcam em` vercelfbs jem`fcmh Ci wb dauf` rbvcbw em -bxb icfb damtbmt ar e GeveLytbDa`b icfb damtbmt& wb dauf` sbb*ichuretcvbfy# tjet tjb icfb jevb e sbdtcam tjet darrbspam`s ta tjb vercelfb `bdferetcam em` esbdtcam wctj tjb edtuef da`b- Pjet kbems tjet cm ar`br ta bxbdutb e pcbdb ai da`b wb mbb`ta `bicmb eff tjb bfbkbmts *vercelfbs cm tjb da`b# em` tjbcr typb& cm ar`br ta rbsbrvb tjb

mbb`b` kbkary ta fae`!starb tjb vercelfbs- Pjb haa` mbws cs tjet eff tjet cmiarketcam csefrbe`y cm tjb syklaf telfb- Cm atjbr war`s& wjbm e pcbdb ai da`b cs hacmh ta lb bxbdutb`twa tjcmhs erb fae`b` cm tjb kbkary ai tjb dakputbr7 tjb syklaf telfb *tjet cs starb` cmtjb Ttedo — @ete sbhkbmt# em` tjb cmstrudtcams *cmstrudtcam sbhkbmt#- Efsa& es pert ai tjbcmiarketcam starb` cm tjb `ete sbhkbmt cs e muklbr tjet cm`cdetbs wjcdj fcmb ai tjb faw+fbvbf da`b cs tjb amb wjbrb tjb kecm kbtja` ai tjb prahrek sterts-

Xjbm e pcbdb ai da`b cs fae`b` em` cs bxbdutb`& `ete ifaws irak tjb *bxbdutcam# kbkaryta tjb kbkary cmsc`b ai tjb D^R& tjb rbhcstbrs& em` vcdb vbrse- Pjb faw+fbvbf da`b usbsamfy apbretcams tjet tjb D^R cs elfb ta um`brstem` *b-h-& essbklfydakkem`s!cmstrudtcams#-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 85/113

:2

 

2-<-5- Tbt ai cmstrudtcams Cm tjcs bxekpfb& tjb cmstrudtcams evecfelfb cm tjb faw+fbvbf femhuehb erb tjb iaffawcmh7

FCP Kavbs e vefub *b-h-& 2# ta e rbhcstbr cm tjb D^R-

FA@ Kavbs tjb vefub cm e vercelfb *b-h-& e# ta e rbhcstbr cm tjb D^R-TPA Ttarbs tjb vefub ai e rbhcstbr ta e vercelfb *syklaf telfb#-A^\ Cm`cdetbs ta bxbdutb em apbretcam- Bedj apbretcam jes e muklbr es em C@-GKD Cm`cdetbs e dam`ctcamef gukp-GK^ Cm`cdetbs e gukp ta e pertcdufer fcmb-DEF Cm`cdetbs tjb deff ta e kbtja`- Pjb perekbtbr cs tjb fcmb wjbrb tjb kbtja` sterts-

2-<-<- \bhcstbrs 

Pjb D^R jes cts awm kbkary& deffb` rbhcstbrs- Pjcs rbhcstbrs starb tjb vefubs tjet erbhacmh ta lb usb` wjbm em apbretcam cs bxbdutb`- Pjet kbems tjet tjb vefubs irak tjbkbkary sjauf` lb fae`b` ta tjb rbhcstbrs am tjb D^R- Ci tjb rbsuft ai emy cmstrudtcamsmbb`s ta lb starb` cm e vercelfb& tjbm tjb vefub ai tjb rbhcstbr cs fae`b` cmta e vercelfb& emspedb cm tjb kbkary-

Pjbrb cs e spbdcef rbhcstbr cm tjb D^R& ^D *^rahrek Daumtbr# rbhcstbr& wjcdj cs e daumtbr tjet cm`cdetbs wjcdj fcmb ai tjb da`b cs lbcmh bxbdutb`- Bvbry tckb em cmstrudtcam cs

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 86/113

:9

bxbdutb` tjb vefub cm tjcs rbhcstbr cs cmdrbkbmtb` cm amb- Pjb prahrek icmcsjbs wjbm tjb‖A^\ +5&>‛ cmstrudtcam cs iaum` cm tjb da`b- Pjcs apbretcam cm`cdetbs tjb bm` ai tjb prahrek-

2-<-4- Ttedo  Pjb vercelfbs ai e prahrek erb fae`b` cm tjb Kbkary Ttedo- Pjcs spedb ai tjb kbkary cs‖rbsbrvb`‛ es tjb vercelfbs erb `bicmb`- Bvbry tckb tjet e vercelfb cs esschmb` wctj e mbwvefub tjet vefub cs starb` cm tjb kbkary stedo- Bvbry tckb tjet ct cs rbqubstb` ta prcmt tjbvefub ai e vercelfb& tjb vefub am tjb stedo cs teobm em` prcmtb`-

Damsc`br tjb iaffawcmh da`b7

vac` kbtja` *cmt e# {prcmt *e#?ci *e 6 5># kbtja`*e/5#?bfsb

rbturm?}

Es ct dem lb sbbm tjcs cs e rbdurscvb kbtja`- Cm tjcs desb& bvbry tckb tjb kbtja` cs deffb`tjb vefub ai ‖e‛ wcff djemhb- Cm tbrks ai kbkary& tjcs kbems tjet bvbry tckb tjet tjbkbtja` cs deffb` tjb vefub cm ‖e‛ cs hacmh ta djemhb- Jawbvbr& ct cs mat avbrwrcttbm& e mbwspedb cm kbkary cs drbetb`& lut ct cs mat drbetb` cm tjb kbkary lut cm tjb jbep-

2-<-0- Jbep Lbsc`b tjb stedo& tjbrb cs efsa e jbep- Pjcs jbep cs efsa pert ai tjb kbkary- Pjb jbep csusb` ta starb dakpfbx vercelfbs& sudj es erreys& algbdts? c-b-& tjasb typbs tjet jevb sbvbref lescd typbs cmsc`b ai tjbk- Pjb stedo starbs tjbm tjb e``rbssbs ai wjbrb tjb sbt ai vefubstjet dakpaum` tjet dakpfbx typb sters cm tjb jbep-

Iar bxekpfb& tjb iaffawcmh da`b cs cm D!D//7

cmt x? !!tjb vefub ai x wcff lb starb` cm tjb stedo-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 87/113

:8

cmt 'e? !!tjb stedo wcff jevb tjb e``rbss wjbrb tjb vefub ai‖e‛

!!cs starb` cm tjb jbepcmt _[l? !!tjb stedo jevb tjb e``rbss wjbrb tjb icrst bfbkbmtai

!!tjb errey cs- Pjb cm`bx ai tjb errey cs usb` ta

!!cmdrbkbmt tjb e``rbss ai tjb icrst bfbkbmt ‖cm`bx‛!!pfedbs ejbe` cm tjb jbep-

cmt ''d? !!tjb stedo starbs em` e``rbss- Pjcs e``rbss wcff jevb!!starb` ematjbr e``rbss tjet cs tjb e``rbss wjbrb tjb!!vefub ‖e‛ cs starb`-

Iar tjb desb ai jevb em algbdt cm Geve& tjb stedo starbs tjb e``rbss wjbrb tjb icrst bfbkbmt*ettrclutb!vercelfb# ai tjb algbdt sterts-

2-<-2- Ycrtuef kedjcmb

 Takb femhuehbs sudj es Geve& jevb wjet cs deffb` e vcrtuef kedjcmb *YK#- E YK cs ocm`ai e tremsfetar *mat e dakpcfbr#- Xjet tjcs tremsfetar `abs cs ta teob tjb dakpcfb` da`b em`tjbm tremsfetb ct cm e faw+fbvbf da`b& wjcdj wcff lb spbdcicd ta tjb AT em` tjb erdjctbdturbai tjb dakputbr wjbrb tjb YK cs rummcmh-

Pjb YK cs elfb ta pbriark tjb kbkary jem`fcmh em` jevb herlehb daffbdtcam ibeturbs-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 88/113

::

XBBO 55

2-4- Dakpcfcmh Xb jevb lbcmh tefocmh elaut dakpcfbrs? cm iedt wb erb warocmh cm tjb `bvbfapkbmt ai e

dakpcfbr- Amb ai tjb tesos tjet tjb dakpcfbr `abs& es tjb icmef stbp& cs ta teob tjb da`b em`tremsfetb ct cmta e faw fbvbf da`b em` keob ct rbe`elfb em` um`brstem`elfb iar tjb D^R-

Takb dakpcfbrs& sudj es Geve& jevb wjet cs deffb` e Ycrtuef Kedjcmb- Pjcs YK cs emcmtbrprbtbr em` ct tjb amb cm djerhb ai keocmh tjcs tremsfetcam ai tjb da`b ta e faw fbvbfda`b-

9- KBKA\S 

Xjcfb drbetcmh e prahrek tjbrb erb `ciibrbmt weys ta kemehb tjb kbkary-

9-5- \umtckb Kbkary Amb ckpartemt tjcmh ta damsc`br wjbm rummcmh!bxbdutcmh e prahrek cs tjb usb ai kbkary&c-b-& jaw kudj kbkary `abs tjb prahrek mbb`s cm ar`br ta bxbdutb- Pjb ekaumt ai kbkary `bpbm`s `crbdtfy am tjb muklbr ai vercelfbs& tjb typb ai tjb vercelfbs em` tjbmuklbr ai cmstrudtcams am ct-

9-5-5- Ttedo  

Xjbm e prahrek cs bxbdutb` e dbrtecm ekaumt ai kbkary wcff lb usb`- Takb kbkarywcff lb usb` ta starb tjb syklaf telfb? pert ai tjb tjcmhs tjet erb starb` cs efsa tjb vefub ai tjb vercelfb cm eff kakbmt `urcmh tjb bxbdutcam ai tjb prahrek- Eff tjcs cs starb` cm tjbstedo- Jawbvbr& jaw tjcs spedb cm kbkary cs usb`1 Jaw tjb vefubs erb starb`1

Damsc`br tjb iaffawcmh pcbdb ai da`b& ci tjb icrst deff ai tjb kbtja` cs ‖kbtja` *5#‛& wjetwauf` lb tjb autput cm tjb damsafb1

pulfcd dfess tbst {pulfcd stetcd vac` kbtja` *cmt e# {Tystbk-aut-prcmt *e/,&,#?ci *e 65># kbtja`*e/5#? bfsb rbturm?Tystbk-aut-prcmt *e/,&,#?

}pulfcd stetcd vac` kecm*Ttrcmh _[ erhs# {kbtja` *5#?

}}

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 89/113

:3

Cm tjcs pcbdb ai da`b& tjb kbtja` ‖kbtja`‛ cs e rbdurscvb kbtja`& c-b-& ct deffs ctsbfi-Faaocmh cmta tjb da`b& tjb vefub ai ‖e‛& tjb perekbtbr& cs prcmtb` twcdb& lbiarb tjb ci&wjbrb tjb kbtja` cs deffb` rbdurscvbfy& em` eitbr tjb ci-

Pjb cmput ai tjcs da`b wauf` lb7

5& <& 4& 0& 2& 9& 8& :& 3& 5>& 3& :& 8& 9& 2& 0& 4& <& 5 

Jaw cs tjb rb` sbqubmdb cs hbmbretb`1 Pjcs sbqubmdb cs hbmbretb` ly tjb prcmt cmstrudtcameitbr tjb ‖ci‛& lut jaw1 Bvbry tckb tjb kbtja` cs deffb` tjb vefub ai ‖e‛ wcff lb prcmtcmhem` tjb kbtja` ,kbtja`, wcff lb deffb`& lut tjbrb cs e prcmt stetbkbmt pbm`cmh- Xjbm ‖e‛hbts ta tjb vefub ai 5>& tjbm tjb rbdurscvb deff wcff stap& lut tjbrb erb 3 prcmts pbm`cmh tjetmaw erb hacmh ta lb bxbdutb`- Maw& tjb cmtbrbstcmh pert dakbs tjet wjbm bvbr bedj ai tjcs pbm`cmh deffs bxbdutbs ct wcff rbkbklbr tjb edtuef vefub ai tjb vercelfb ‖e‛ am bedj deff-Ta& tjb vefubs erb starbs cm tjb kbkary& sa wjbm bvbr tjb pbm`cmh fcmb cs bxbdutb`& tjbvefub ai ‖e‛ dem lb rbtrcbvb`-

9-5-<- Kbkary Tpedb Xjbm cm e prahrek wb `bicmb e vercelfb& wjet wb erb `acmh cs rbqubstcmh e spedb cm tjbTtedo ai tjb kbkary- Cm tjet spedb wb erb starcmh vefub ai tjb vercelfb& em` wb erb hacmhta rbibr ta tjet vefub uscmh tjb mekb ai tjb vercelfb-

Pjbrb erb `ciibrbmt weys ta rbibr ta tjet spedb cm kbkary- Bedj prahrekkcmh femhuehb pravc`bs `ciibrbmt weys em` eppraedjbs ta `a tjcs- Amb ai tjbsb eppraedjbs cs tjb ambusb` cm D!D//& wjbrb ct cs passclfb ta usb ‖pacmtbrs‛- E pacmtbr cs e rbibrbmdb *e``rbss# tavercelfb!vefub- Ta& tjb spedb mbb`b` ta starb tjb e``rbss cs rbsbrvb` irak tjb Ttedo&

jawbvbr& tjb spedb ai kbkary wjbrb bedj pacmtbr pacmts cs rbsbrvb` irak tjb jbep-

Damsc`br tjbsb fcmbs ai da`b7cmt e?

Pjcs fcmb kbems tjet e spedb ai tjb kbkary *cm tjb Ttedo# cs rbqubstb` ta starb em cmtbhbr-‖x‛ wcff lb tjb rbibrbmdb ai tjcs spedb ai kbkary& em` tjcs spedb ai kbkary jes eme``rbss& b-h- >xII-

cmt 'l?

Pjcs kbems tjet ‖l‛ cs e pacmtbr ta em cmtbhbr- Pjcs kbems tjet ‖l‛ wcff starb em e``rbss*tjcs vefub cs cm tjb Ttedo#& em e``rbss tjet rbibrs ta em cmtbhbr vefub& c-b- e spedb cm tjbkbkary *cm tjb Jbep# tjet cs elfb ta starb!effadetb em cmtbhbr- Ta& uscmh tjb bxekpfbelavb& ‖l‛ dem starb tjb e``rbss ai e vercelfb- B-h-& ci wb jevb tjcs esschmetcam7 l ; )e-

Xjet cs tjb kbemcmh ai tjb ekpbrsem`1 Xjcfb tjb estbrcso kbems tjet tjb vercelfb cs e pacmtbr& tjb ekpbrsem` kbems tjet wb wemt ta usb tjb e``rbss *cmstbe` ai tjb vefub# ai e

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 90/113

3>

vercelfb- Ta tjb esschmetcam elavb cs seycmh tjet ‖l‛ cs hacmh ta starb tjb e``rbss ai wjbrbtjb vercelfb e cs starb`& cm tjcs bxekpfb& >xII-

cmt _[l?

Em errey cs ocm` ai e pacmtbr- Cm tjcs desb& l cs e pacmtbr ta tjb icrst bfbkbmt ai tjb errey-Ehecm tjb e``rbss *tjb pacmtbr# cs starb` cm tjb Ttedo& wjcfb tjb edtuef vefubs erb starb` cmtjb Jbep-

cmt ''d?

Cm tjcs desb& wb jevb e pacmtbr ta e pacmtbr& tjcs kbems tjet wb e vercelfb tjet starb tjbe``rbss tjet pacmts ta ematjbr e``rbss-

9-<- ^acmtbrs cm D!D// 

Cm D!D// wjbm wb wemt ta drbetb e pacmtbr wb eso iar tjb spedb ai kbkary& uscmhcmstrudtcams es mbw!keffad- Cm tjb sekb wey& wjbm wb `am–t mbb` tjasb pacmtbr emy karb&ct cs ckpartemt ta fbt tjb prahrek omaw wb `am–t mbb` tjbk emykarb cm ar`br ta dfbem!irbbtjb kbkary- Ci wb `am–t dfbem tjb kbkary wjet jeppbm1 Xbff& wb wcff jevb spedbs cmkbkary& e``rbssbs tjet erb starcmh herlehb-

Takb femhuehbs& sudj es Geve& jevb wjet cs deffb` e Herlehb Daffbdtar- Pjb herlehbdaffbdtar cs pert ai tjb Ycrtuef Kedjcmb- Ta& tjb YK cs ocm` ai tjb ‖memmy‛& em` ct wcff lbcm djerhb ar irbb tjasb spedbs cm tjb kbkary tjet erb mat lbbm usb` emy karb? lut& jaw`abs ct omaw tjet tjb kbkary cs mat usb` emy karb1 Xbff& tjb oby cs ta rbvcbw ci tjbrb csemy pacmtbr ta tjet spbdcicd spedb ai kbkary- Geve `abs mat jevb pacmtbrs? jawbvbr& bvbry

tckb wb `bicmb e vercelfb wb erb `bicmcmh& sakbjaw& ta e spedb cm kbkary-

Bvbry tckb wb `bicmb e mbw vercelfb& wb erb eddbsscmh e mbw evecfelfb spedb cm kbkary&c-b-& ma emy atjbr prahrek cs uscmh tjet spedb- Jawbvbr& wjbm wb effadetb tjcs spedb ai kbkary wb mbb` ta lb surb tjet tjb spedb cs dfbem& c-b-& ct cs e haa` c`be ta cmctcefczb tjbvercelfb- Takb femhuehbs& sudj es Geve& pravc`b dfbem spedbs *vce tjb YK#? jawbvbr&femhuehbs es D!D// `abs mat werremty tjet tjb spedb cs dfbem em` tjcs dem pra`udb sakbewower` lbjevcar cm tjb da`b-

Damsc`br tjb iaffawcmh pcbdb ai da`b7

djer dj ; ‚d–?djer 'djptr ;)dj?

‖dj‛ cs e vercelfb& em` ‖djprt‛ cs e pacmtbr- Cm tjcs desb& wb dem sey tjet ‖djptr‛ cs pacmtcmh ta tjb e``rbss ai ‖dj‛-

cmt c ; <>?cmt 'cmtptr ; )c?

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 91/113

35

 ehecm& ‖c‛ cs e vercelfb& em` ‖cmtptr‛ cs e pacmtbr ta em cmtbhbr-

djer 'ptr ; ‖C ek e strcmh‛?

Cm tjcs desb& ptr cs e pacmtbr ta e djer- \bkbklbr& e pacmtbr starbs em e``rbss *em` ct cs cmtjb Ttedo#- Cm tjcs desb& wb jevb e pacmtbr ta tjb icrst fbttbr am tjb strcmh em` wb demeddbss tjb wjafb strcmh *tjet cs cm tjb Jbep# ly cmdrbkbmtcmh tjb pacmtbr- Ta& e strcmh csmat emytjcmh bfsb tjem e pacmtbr ta e sbqubmdb ai djeredtbrs& wjbrb tjb vercelfb starbs tjbe``rbss ai tjb icrst djeredtbr-

9-<-5- Efces Xjbm `bicmcmh e pacmtbr& wb mbb` ta rbsbrvb!effadetb tjb spedb ai tjb kbkary& tjcs spedbwcff lb e`+jad ta tjb typb ai pacmtbr wb wemt ta `bicmb-

cmt 'x& 'y?x ; *cmt '# ; keffad *sczbai *cmt##?'x ; 5?y ; x? !! efces'y;<?

Cm tjb da`b elavb wb jevb twa pacmtbrs7 ‖x‛ em` ‖y‛ em` wb erb rbsbrvcmh kbkary ta‖x‛- Pjbm wctj tjb cmstrudtcam 'x ; 5& wb erb seycmh tjet wb wemt ta starb tjb cmtbhbr vefub ‖5‛ cm tjb e``rbss starb` cm ‖x‛- Ta& ‖x‛ pacmts ta em e``rbss cm tjb Jbep& em` mawtjcs spedb cm tjb Jbep wcff jevb e ‖5‛ am ct- Xb erb seycmh ‖y;x‛ ta jevb e sbdam` pacmtbr ta tjb sekb spedb ai kbkary cm tjb jbep- Ta& wjbm wb jevb tjb fcmb ‖'y;<‛& wb erb

seycmh tjet tjb e``rbss pacmtb` ly ‖y‛ sjauf` starb e <- Matcdb tjet tjcs wcff avbrwrctb tjbmuklbr 5 starb` lbiarb& tjcs jeppbm lbdeusb ‖y‛ cs pacmtcmh ta tjb sekb spedb cm kbkarytjem ‖x‛- Ct cs sec` tjet ‖y‛ cs em efces ai ‖x‛-

Ematjbr bxekpfb7

cmt _[ x ; {5& <& 4}?cmt_[ y ; x?x_>[ ; 0?prcmti *‖"`Vm‛& y_>[#?prcmti *‖"`Vm‛& 'y#?prcmti *‖"`Vm‛& '*y/>##?

‖x‛ cs e pacmtbr& es wb kbmtcamb` lbiarb& erreys erb pacmtbrs& wjbrb tjb vercelfb ‖x‛ *cmtjb Ttedo# starbs tjb e``rbss ai tjb icrst bfbkbmt ai tjb errey *am tjb Jbep#-

‖y‛ cs ematjbr errey& wjcdj wcff jevb tjb pacmts ta tjb sekb e``rbss tjem ‖x‛-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 92/113

3<

Ci wb wemt ta starb e vefub cm tjb errey wb mbb` ta spbdciy cm wjcdj e``rbss *spedb# wbwemt ta starb tjet vefub tjet cs spbdcicb` uscmh em cm`bx- Cm tjb fcmb ‖x_>[;0?‛ wjet wb erbseycmh cs tjet wb wemt ta starb tjb vefub 0 cm tjb icrst e``rbss ai tjb errey-

Pjb fest tjrbb fcmbs ai tjb da`b& hbmbretbs autput cm tjb damsafb- Cm tjcs desb& tjb vefubs

 prcmtb` cm tjb damsafb wcff lb7 0? tjbm tjb damtbmt *'# ai tjb icrst bfbkbmt am tjb errey ‖y‛&em` tjbm ehecm tjb damtbmt *'# ai tjb icrst bfbkbmt */># am tjb errey ‖y‛-

9-<-<- @emhfcmh  Maw& damsc`br tjcs da`b7

cmt 'x& 'y?x ; *cmt'# ; keffad *sczbai*cmt##?'x ;5?y;x? !! efces

irbb*x#?prcmti *‖"`Vm‛& 'y#? !!cffbhef

Xb jevb twa pacmtbrs& ‖x‛& em` ‖y‛& lut wb amfy rbqubst e spedb iar ‖x‛-Xjbm wb sey y;x? wjet wb erb seycmh cs tjet ‖y‛ wcff pacmt ta tjb sekb spedb ai kbkarytjet ‖x‛- Xjbm wb irbb ‖x‛& wjet wb erb seycmh cs tjet ‖x‛ cs mat famhbr pacmtcmh ta tjetspedb& kbemcmh tjet wb fast tjb rbibrbmdb ta tjet spedb cm kbkary- Ta& bvbm wjbm ‖y‛wes mat irbb`& ct cs mat elfb ta eddbss tjb e``rbss emykarb `ub ta tjb iedt ‖x‛ wes irbb`em` `ub ta tjb iedt ‖y‛ wes amfy em efces& kbemcmh tjet wjbm ‖x‛ cs fast ‖y‛ cs fast& taa-

Pjcs cs deffb` `emhfcmh- Xb dem rbvcbw e mbw bxekpfb7

cmt ' `emhfb *# {cmt x?rbturm )x?

}vac` kecm*# {

cmt 'p ; `emhfb*#?prcmti *‖"`Vm‛& 'p#? !!cffbhef

}

Pjcs cs ematjbr desb ai `emhfcmh- Xjy1 Lbdeusb tjb kbtja` ‖`emhfb‛ cs rbturmcmh tjbe``rbss ai tjb fadef vercelfb ‖x‛& em` es saam es tjb prahrek rbturm ta tjb kecm kbtja`

tjcs rbibrbmdb wcff lb irbb` em` tjbm tjb rbibrbmdb wcff lb fast-

9-<-4- Herlehb  Maw& amb karb bxekpfb7

cmt 'x?x ; *cmt x# keffad *sczbai**cmt##?

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 93/113

34

x ; >?!! Xjet jeppbms cm tjb kbkary1

Cm tjcs desb tjb pralfbk cs tjet tjcs pcbdb ai da`b cs hbmbretcmh herlehb- Xjy& lbdeusb wberb mbvbr irbbcmh tjet spedb ai kbkary- Bvbm tjauhj wb erb seycmh ‖x;>‛ tjcs `absm–tirbb tjb pacmtbr& wb gust keob tjet ct fassbs tjb rbibrbmdb ai tjb spedb cm kbkary tjet ctwes pacmtcmh& lut tjb spedb cs kbkary cs stcff kerob` es usb` lut maw ct cs ma eddbssclfbiar emy rbibrbmdb-

Cm tjb iaffawcmh da`b&vac` p*# {

cmt 'x?x ; *cmt '# keffad*sczbai*cmt##?'x ;<?!! Xjet jeppbms cm tjb kbkary1!! kcsscmh irbb 1%

}

Cm tjcs desb& ehecm& wb erb hbmbretcmh herlehb- Xjbm tjb kbtja` icmcsjbs& tjb pacmtbr ‖x‛wcff lb ma famhbr usb`? jawbvbr& tjb spedb cm kbkary wcff lb kerob` es usb`- Pjcs wcffdeusb tjet tjet spedb cm kbkary rbkecms umevecfelfb iar emy atjbr prahrek-

9-<-0- Bxbrdcsb Damsc`br tjb da`b lbfaw7

cmt errey_[ ; {02& 98& :3}?cmt 'erreyQptr?

erreyQptr ; errey?prcmti *‖Icrst bfbkbmt7 "cVm& '*erreyQptr//##?prcmti *‖Tbdam` bfbkbmt7 "cVm& '*erreyQptr//##?prcmti *‖Pjcr` bfbkbmt7 "cVm& 'erreyQptr#?

Cm tjcs desb wb jevb twa pacmtbrs& errey em` erreyQptr- \bkbklbr tjet uscmh tjb ‖//‛kbems tjet icrst wb usb tjb vefub em` tjbm wb `a tjb cmdrbkbmt-

Ta& tjb icrst fcmb prcmts cm iedt tjb icrst bfbkbmt ai tjb errey em` tjbm tjb pacmtbr cscmdrbkbmtb` cm amb pasctcam-

Pjus& tjb sbdam` fcmb wcff prcmt tjb sbdam` bfbkbmt ai tjb errey em` tjbm& ehecm& tjb pacmtbr cs cmdrbkbmtb` cm amb pasctcam-

Pjus& tjb tjcr` fcmb wcff prcmt tjb tjcr` bfbkbmt ai tjb errey- Em` tjb pacmtbr wcff rbkecm pacmtcmh ta tjb tjcr` bfbkbmt ai tjb errey-

Pjb `bicmctcam ai tjb vercelfbs elavb dauf` lb efsa `bicmb` es iaffaws7

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 94/113

30

cmt errey_[ ; {02& 98& :3}?cmt ''erreyQptr?erreyQptr ; )errey?

Pjb `ciibrbmdb cs tjet erreyQptr cs e pacmtbr ta e pacmtbr- Ta& wjbm cmctcefczcmh erreyQptr& ctcs passclfb ta esschm tjb e``rbss ai ematjbr pacmtbr-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 95/113

32

XBBO 5< 

8- IRMDPCAMEF ^\AH\EKKCMH FEMHREHB7 FCT^ 

Ta ier wb jevb rbvcbw ckpbretcvb ar pradb`uref femhuehbs- Maw wb erb hacmh ta rbvcbw eiumdtcamef prahrekkcmh femhuehb& FCT^-

Iumdtcamef prahrekkcmh femhuehbs erb deffb` tjcs `ub ta tjb iedt bvbrytjcmh cs bxprbssb`es e ketjbketcdef iumdtcam-

FCT^ jes cts awm vcrtuef kedjcmb ! cmtbrprbtbr- Ta& ct teobs derb elaut tjb kbkary& sa wb`am–t mbb` ta warry elaut kbkary kemehcmh-

8-5- Etakcd bxprbsscams Amb ai tjb bfbkbmts tjet `ciibrbmtcetb amb femhuehb irak ematjbr cs tjb fbxcdef rufbs& c-b-&tjb taobms tjet erb rbdahmczb` es vefc`-

Cm FCT^& tjbsb taobms erb rbibrbmdb` es etakcd bxprbsscams- Jbrb cs e fcst ai etakcdbxprbsscams vefc` cm FCT^7

• +4

• <-04

• 5<440<4>43<405<4<40554<4<40>5<3<403<405<45<4><403<405><43<4005<4 _ct jes vbry famh muklbrs[

• $D*4-< <# _tjb dakpfbx muklbr 4-< / <c [

• <!4 _tjb iredtcam <!4- MAP ,`cvc`b < ly 4,[

• +4-<b<2 _tjb muklbr +4-< x 5>]<2[

• $Vh

• $V{

• $VTpedb

• $VMbwfcmb

• $VV _Pjb djeredtbr (V([

• $Vtel $Vmbwfcmb $Vspedb $Vledospedb $Vbsdepb

• ,Jbffa& Xarf`%‛

• ,Ct(s e hfarcaus `ey-‛

• ,Jb sec` V,Ma Xey%V, em` tjbm jb fbit-‛

• ,C tjcmo C mbb` e ledosfesj jbrb7 VV Ej& tjet wes lbttbr-‛• t _t+ syklafczb P\RB[

• mcf _mcf —syklafczb IEFTB[

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 96/113

39

8-<- Bvbrytjcmh cs e fcst   Maw cm tbrks ai symtex& cm FCT^& bvbrytjcmh cs e FCTP- Latj& `ete em` dakkem`s erbrbprbsbmtb` wctj fcsts& em` eff fcsts erb bmdfasb` cm perbmtjbscs- Cm FCT^& tjbrb erb MAPapbretars tjbrb erb amfy iumdtcams- Pjb iumdtcam cs tjb icrst bfbkbmt am tjb fcst-

Bxekpfbs7

• */ 4 < 8 3# _e`` 4/</8/3 em` rbturm tjb rbsuft[<5

• *' 0 <-4# _kuftcpfy 0 ly <-4 em` rbturm tjb rbsuft[3-<

• *sulsbq ,Jbffa& Xarf`, < 3# _rbturm tjb sulstrcmh[,ffa& Xa,

Takb iumdtcams sudj es e``ctcam */# em` kuftcpfcdetcam *'# `a mat jevb icxb` muklbr ai  perekbtbrs- Takb ai tjbk sudj es sulsbq *iar strcmhs# jevb e icxb` muklbr ar aptcamef

erhukbmts- Pjcs dem lb sbb es avbrfae`cmh e iumdtcam& ct jes tjb sekb mekb lut wctj e`ciibrbmt schmeturb-

8-4- ^rb`cdetbs Pjasb iumdtcams tjet rbturm e laafbem *trub ar iefsb# vefub erb deffb` prb`cdetbs- Ta&rbfetcamef em` fahcdef apbretars erb rbprbsbmtb` wctj prb`cdetbs-

• _2[= *; 0 4# _cs 0 ;; 4 1 [MCF

*6 4 3# _cs 4 6 3 1[P

• *muklbrp ,jbffa,# _cs ,iaa, e muklbr1[MCF

• *a``p 3# _cs 3 em a`` muklbr1[P

8-0- Brrars Cm tbrks ai brrars& bvbry tckb tjet tjbrb cs em brrar cm tjb da`b& FCT^ wcff stap& cm ar`br tadamtcmub tjb brrar sjauf` lb icxb`-

8-2- \bdurscam Cm FCT^ ct cs passclfb ta jevb iumdtcams cmsc`b iumdtcams& c-b-& rbdurscam- Fcst *perbmtjbscs#erb usb` ta spbdciy tjet e mbw iumdtcam cs deffb`-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 97/113

38

Bxekpfb7•  */ 44 *' <-4 0# 3#

Pjbrb erb twa fcsts& kbemcmh tjbrb erb twa iumdtcams& amb cmsc`b ai ematjbr- Cm tjcs desb&tjb sbdam` fcst *kuftcpfcdetcam# wcff lbdakb tjb sbdam` perekbtbr iar tjb icrst fcst

*e``ctcam#-

8-9- Damtraf Ttrudturbs FCT^ jes ocm` ai e CI+BFTB strudturb- Pjb mekb ai tjb iumdtcam cs ‖ci‛& em` tjb strudturbai tjb fcst cs es iaffaws7

*ci *dam`ctcam# *iumdtcam wjbm tjb dam`ctcams cs trub# *iumdtcam wjbm tjb dam`ctcam csiefsb##

Bxekpfb7•  *ci *6; 4 <# *' 4 3# */ 0 < 4##

Cm tjcs desb& tjcs kbems tjet ci 4 cs fbssbr ar bquef ta <& tjbm tjb iumdtcam wcff rbturm*4'3# ci mat ct wcff rbturm *0 / < / 4#- Cm tjcs desb& tjb rbsuft wcff lb 3-

Ct cs efsa passclfb ta jevb mbstb` strudturbs7•  *ci *; < <# *ci *= 4 <# 0 9# 3#

wjbrb tjb rbsuft wauf` lb 0-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 98/113

3:

XBBO 54

8-8- Lfados Ta ier eff tjb bxprbsscams tjet wb jevb rbvcbw jevb amfy AMB fcmb- Xjet elaut ci wb

wemt ta jevb sbvbref fcmbs& sckcfer ta tjb desb wjbrb em ci —bfsb jes sbvbref fcmbs em` wbusb tjb durfy lredobts ta rbprbsbmt e lfado ai fcmbs-

Cm FCT^ cs passclfb ta `bicmb sbvbref fcmbs& e lfado& ly uscmh tjb spbdcef iark pramh&wjcdj teobs tjb iark *prahm bxpr5 bxpr< bxpr4 ---#- Iar bxekpfb&

*ci *= 4 <#*prahm *prcmt ,jbffa,#

*prcmt ,ya,#*prcmt ,wjessup1,#*/ < <##

*/ 5 < 4##

8-:- Yercelfbs Ly ct meturb& FCT^ cs mat e femhuehb tjet derbs tjet kudj iar vercelfbs- Jawbvbr& ct cs passclfb ta `bicmb vercelfbs uscmh e kedra& tjb kedra sbti -

•  *sbfi x ># tjcs bxprbsscam cs sckcfer ta jevb x ; >?

•  *sbti x *' 4 <##9

•  x9

•  *sbti y */ x 4##3

8-3- Faaps Ct cs efsa passclfb ta jevb faaps- FCT^ `bicmb e faap ly uscmh tjb ctbretar  `atckbs tjet

teobs tjb iaffawcmh iark7

*`atckbs *ver jchj+vefaptcamef+rbturm+vef#

bxpr5bxpr<

…#

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 99/113

33

Bxekpfb7

•  *`atckbs *x 0# *prcmt ,jbffa,##

Pjcs wcff prcmt iaur fcmbs wctj tjb warf` jbffa-

•  *`atckbs *x 2#*prcmt x#

#

Pjcs wcff prcmt tjb muklbrs irak 5 ta 2-

•  *sbti leh <# + matcdb tjet wb `a mat jevb `ete typbs*`atckbs *x 4#

*sbti leh *' leh leh###

Iar tjcs da`b tjb icrst tckb x;5 em` leh;<& sa eitbr tjb icrst faap leh wcff jevb tjb vefub0? iar tjb sbdam` tckb x;< em` leh;0& tjbm eitbr tjb faap leh ; 59? iar tjb tjcr` tckb x;4em` leh;59& tjbm eitbr tjb faap let;<29-

Pjb da`b cm Geve iar tjb bxekpfb lbfaw wauf` lb 7cmt leh;<?iar *cmt x;5? x6;4? x//#

leh ; leh ' leh?

8-5>- Fadef Yercelfbs

 Xjbm uscmh tjb dfeusb *sbti x 0#& wb erb `bicmcmh hfalef vercelfbs- Ta& wjet jeppbm ci wbwemt ta drbetb fadef vercelfbs1 Cm ar`br ta drbetb fadef vercelfbs wb usb tjb fbt kedra-

*`bihfalef x <># ?x sbt hfaleffy*sbti x 0#*fbt **x 4## ?x `bdferb` fadef

*prcmt x#*sbti x 3# ?tjb fadef x cs sbt*prcmt x#*prcmt ,jbffa,# ?Xjy `abs ,jbffa, prcmt twcdb

#

Pjb autput iar tjcs lfado wcff lb7

4 tjb rbsuft ai *prcmt x#

3 tjb rbsuft ai tjb sbdam` *prcmt x# eitbr wb `a tjbesschmetcam‖jbffa‛‖jbffa‛

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 100/113

5>>

  Matcdb tjet tjb war` ‖jbffa‛ cs prcmtb` twcdb& wjy1 Pjb icrst ‖jbffa‛ cs tjb rbsuft ai tjbfcmb ‖*prcmt ‖jbffa‛#- Lut rbkbklbr tjet& FCT^ efweys prcmt tjb rbsuft ai tjb bxprbsscam& cmtjb desb ai jevcmh e sbt ai bxprbsscam tjb rbsuft ai tjb wjafb sbt cs tjb vefub ai tjb festbxprbsscam- Cm tjb bxekpfb lbfaw& tjb fest bxprbsscam ‖*prcmt ‖jbffa‛# rbturms ‖jbffa‛& sa

tjb rbsuft ai eff tjet sbt wauf` lb efsa ‖jbffa‛-

Ci eitbr tjb fbt wb jevb tjb fcmb *prcmt x#& tjb autput wcff lb 0& tjb vefub ai tjb hfalef x-

Pjb fbt kedra effaws `bicmcmh kemy fadef vercelfbs& b-h-&

*fbt **x ># *y 5# *z 4###

 Matcdb tjet bedj vercelfb cs `bicmb` cmsc`b perbmtjbscs-

Fbts rbvcbw ematjbr bxekpfb7

*fbt **x 4# *y */ 0 3###*' x y#

#

Pjb rbsuft ai tjcs fbt wcff lb7 43

Fbt–s rbvcbw e mbw bxekpfb7*fbt **x 4##

*prcmt x#*fbt *x# ?matb tjet es x `abs mat jevb e vefub

*prcmt x#*fbt **x ,jbffa,##

*prcmt x##*prcmt x#

#*prcmt x#*prcmt ‛bm`,#

#

Pjb autput iar tjcs da`b wauf` lb74MCF,jbffa,MCF4,bm`,,bm`,

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 101/113

5>5

8-55- Xrctcmh iumdtcams Cm FCT^ cs efsa passclfb ta drbetb aur awm iumdtcams& uscmh tjb `bium kedra- Pjb iark ai tjcs kedra cs7

*`bium iumdtcam+mekb *perekbtbrs# edtcam#

Fbt–s rbvcbw sakb bxekpfbs-

Bxekpfb 57

Ci wb `bicmb tjb iaffawcmh iumdtcam7*`bium `a+jbffa+warf` * # ,Jbffa Xarf`‛#

 Matcdb tjet tjb iumdtcam `abs mat jevb perekbtbrs- Pjb systbk wcff prcmt tjb mekb ai tjbiumdtcam cm uppbr desbs-@A+JBFFA+XA\F@

 Maw ci wb typb tjb mekb ai tjb iumdtcam& matcdb tjet ct sjauf` lb cm perbmtjbscs7*`a+jbffa+warf`#

Pjb rbsuft wcff lb7,Jbffa& Xarf`%‛

Bxekpfb <7

Ci wb `bicmb tjb iaffawcmh iumdtcam7*`bium e``+iaur *x# */ x 0##

 Matb tjet tjb iumdtcam jes amb perekbtbr& x& em` tjb edtcam cs ta pbriark tjb e``ctcam ai tjb perekbtbr pfus 0- Pjb systbk wcff prcmt tjb mekb ai tjb iumdtcam cm uppbr desbs- E@@+IAR\ 

 Maw ci wb typb tjb mekb ai tjb iumdtcam& matcdb tjet ct sjauf` lb cm perbmtjbscs em` tjetwb mbb` ta pravc`b tjb perekbtbr-*e``+iaur 8#

Pjb rbsuft wcff lb7 55

Bxekpfb 47

Xb dem jevb karb tjem amb perekbtbr7*`bium jypatbmusb *fbmhtj wc`tj#

*sqrt */ *' fbmhtj fbmhtj#*' wc`tj wc`tj####JS^APBMBRTB

*jypatbmusb 8 3#55-0>58

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 102/113

5><

Bxekpfb 07

Xb dem drbetb tjb iaffawcmh iumdtcam7*`bium icrst+m+djers *strcmh m rbvbrsb+ct#

*ci rbvbrsb+ct*sulsbq *rbvbrsb strcmh# > m#

*sulsbq strcmh > m###IC\TP+M+DJE\T

*icrst+m+djers ,jbffa warf`, 2 mcf# ?mcf vefub,jbffa,

*icrst+m+djers ,jbffa warf`, 2 t#,`fraw,

*icrst+m+djers ,jbffa warf`, 2 <>54#,`fraw,

Bxbrdcsb 57 Xrctb tjb darrbspam`cmh da`b cm FCT^ iar tjb iaffawcmh da`b cm Geve7

pulfcd stetcd `aulfb iedtarcef *`aulfb m# {`aulfb suk ; 5?iar *`aulfb c;>?c 6 m? c//#

suk ; suk ' *5 / c#?rbturm suk?

}

pulfcd stetcd vac` kecm*Ttrcmh _[ erhs# {Tystbk-aut-prcmtfm*iedtarcef*5>>>#/,,#?

}

•  Pjb mekb ai tjb kbtja` cs iedtarcef-

•  suk cs e hfalef vercelfb

•  iar cs hacmh ta lb e `atckbs& wjbrb c cs cm`bx iar tjb faap& cmsc`b tjb faap wb jevb tjbapbretcam suk;suk ' *5/ c#?

•  Pjb iumdtcam sjauf` prcmt tjb iedtarcef-

Pjb tremsfetcam iar tjcs kbtja` cm FCT^ wauf` lb es iaffaws7

*`bium iedtarcef **m##

* fbt *suk 5#*`atckbs *c m#

*sbti suk *' suk */ c 5####suk

##

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 103/113

5>4

Bxbrdcsb <7

Premsfetb tjb iaffawcmh rbdurscvb kbtja` cm Geve ta FCT^-

pulfcd stetcd `aulfb iedtarcef *`aulfb m# {ci *m6;5#

rbturm 5?bfsbrbturm m ' iedtarcef *m+5#?

}

Pjb tremsfetcam wauf` lb7

*`bium iedtarcef *m#*ci *6; m >#

5*' m *iedtarcef *+ m 5###

##

8-5<- @ete Ttrudturbs \bkbklbr tjet bvbrytjcmh cm FCT^ cs e fcst-

Jaw dem wb `bicmb e fcst-

*quatb *5 jbffa < war`##

Pjcs wcff sbt e fcst wctj iaur bfbkbmts7 5& jbffa& <& em` war`-

Jevcmh *quatb *## cs sckcfer ta jevb ‚*#- Ta tjb prbvcaus fcst dem lb sbt es ‚*5 jbffa <war`# 

Xb dem efsa jevb fcsts wctj fcst am ct& sudj es *5 < *jbffa 4# 4 *lyb# 4# 

Pjbrb erb iumdtcams ta rbtrcbvb vefubs irak e fcst- Pjbrb cs tjb iumdtcam der ar icrst&

wjcdj rbturms tjb icrst bfbkbmt ai tjb fcst *ct dauf` lb em bfbkbmt ar e fcst#- Pjbm& tjbrb cstjb iumdtcam rbst ar d`r tjet rbturms e fcst wctj eff lut tjb icrst bfbkbmt- Fbt–s sbb sakb

bxekpfbs-

Jevcmh tjb fcst **E L# D *@##& tjcs fcst jes 4 bfbkbmts- Amb fcst wctj E em` L& tjbm e

scmhfb vefub D& em` tjbm e fcst wctj tjb bfbkbmt @-

Ci wb wemt tjb *der *der F## ?*icrst *icrst *F## 

Ta cm ar`br ta safvb tjcs wb dem `a ct stbp ly stbp-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 104/113

5>0

*icrst *icrst ***E L# D *@####

Ta tjb cmsc`b icrst wcff rbturm tjb fcst *E L#& sa maw wb jevb tjcs7

*icrst **E L###

Em` tjb rbsuft wcff lb E-

Ci wb wemt tjb *d`r *der F## ?*fest *icrst F##

Ta icrst wb `a *icrst F# tjet rbturms tjb fcst *E L#- Pjbm wb mbb` tjb *d`r *E

L##& tjet wcff lb e fcst wctj E am ct *E# 

*der *d`r F## ?*icrst *fest F##

sa icrst wb `a *fest F# tjcs wcff rbturm tjb fcst *D *@##- Pjbm wb mbb` tjb icrst ai *D

*@##& wjcdj wcff rbturm tjb bfbkbmt D- 

Ct cs ckpartemt ta kbmtcam tjet wb demmat hbt tjb d`r *fest# ai e scmhfb bfbkbmt-

Damsc`br tjb iaffawcmh fcst7

*E *L *# *D *# *# ## *@ *B *# *# # *# # #*der *der F## ?* icrst * icrst *F##

Xb mbb` tjb icrst ai tjb fcst& wjcdj wcff lb tjb bfbkbmt E- Ci wb eso iar tjb icrst bfbkbmtai e scmhfb bfbkbmt& tjcs wcff lb em B\\A\-

*d`r* der F## ?* fest * icrst *F##

Icrst wb wcff hbt tjb icrst ai tjb fcst& wjcdj wcff lb tjb bfbkbmt E- Ci wb eso iar tjb fest *efcst# ai e scmhfb bfbkbmt& tjcs wcff lb em B\\A\-

*der *d`r F## ?* icrst * fest *F##

Icrst wb mbb` tjb rbkcm`br ai tjb fcst tjet wcff lb tjb fcst **L *# *D *# *# ## *@ *B

*# *# # *# ##& tjbm wb mbb` tjb icrst ai tjet fcst& wjcdj wcff lb tjb fcst *L *# *D *#*# ##-

E haa` qubstcam iar tjb icmef bxek7 Ci wb jevb tjb fcst *E# em` wb eso iar tjb d`r ai tjet

fcst& wjet wauf` lb tjb emswbr1e#   MCF l#  Bkpty fcst *#d#  B\\A\ 

Jakbwaro7 \bvcbw tjb fest icvb sfc`bs ai tjb sfc`b icfb- Pjby damtecm cmtbrbstcmh

bxekpfbs em` tjb cmstrudtcams ta `awmfae` FCT^ em` ^\AFAH-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 105/113

5>2

8-54- Bxekpfb Jbrb wb erb `bicmcmh e iumdtcam& ky+rbvbrsb& wjcdj jes e perekbtbr& fcst-

*`bium ky+rbvbrsb *fcst#*fbt *mbw+fcst# ? bkpty fcst

*`afcst *x fcst#*sbti mbw+fcst *dams x mbw+fcst##

#mbw+fcst#

#

Pjb faap cmsc`b tjb iumdtcam wcff teob bedj ai tjb vefubs am tjb fcst em` damdetbmetb*dams# tjbk cm em bkpty fcst *mbw+fcst#- Pjb iedt tjet tjby erb rbvbrsb` cs lbdeusb

tjb dakkem` dams damdetbmetb tjb bfbkbmt x et tjb lbhcmmcmh ai tjb fcst-

Xjet cs tjb purpasb ai tjb fcmb mbw+fcst1 Lbcmh tjb fest edtcam cm tjb iumdtcam& ct cs

tjbrb ta rbturm tjb dakpfbtb fcst es e rbsuft ai tjb iumdtcam-

8-50- Bxbrdcsbs e#  Hcvbm tjb fcst ****e####- Ct cs ckpartemt ta um`brstem` tjet tjcs cs e lumdj ai mbstb`

fcsts- Ci wb wemt ta rbdavbr tjb bfbkbmt ‚e– wb wcff mbb` tjcs bxprbsscam7 

*icrst*icrst*icrst*icrst F####-

Xjet ci wb e`` amb karb icrst cm tjb bxprbsscam elavb1 Pjb rbturm vefub wcff lb MCF-

 l#  Xrctb e kbtja` tjet prcmts tjb bvbm muklbrs lbtwbbm twa hcvbm vefubs ‚e– em` ‚l–hcvbm es perekbtbrs-

Cm Geve tjcs wcff faao fcob tjcs1

vac` kbtja` *cmt e& cmt l#{iar *cmt c;e? c6l? c//#{

ci *c!< ;; ># {prcmt *c#?

}

}}

JAKBXA\O- Xrctb tjcs iumdtcam cm FCT^- Efsa& usb tjb bxbrdcsbs cm tjb sfc`b tctfb`

‖Bxek‛ es prbperetcam iar yaur icmef bxek-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 106/113

5>9

Uubstcam- Hcvb 4 bfbkbmts cm FCT^ tjet keobs ct lbttbr tjem ctbretcvb prahrekkcmhfemhuehbs7

  Ct jes ferhbr muklbrs& wjcdj effaw us ta jem`fb  Pjbrb erb mat `ete typbs- Ma typb destcmh- 

Pjbrb cs e iredtcam typb-  Kbkary jem`fcmh cs bescbr& FC^T teobs derb ai tjcs- Ma pacmtbrs-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 107/113

5>8

XBBO 50

:- FAHCDEF ^\AH\EKKCMH FEMHREHBT7 ^\AFAH ^\AFAH cs em bxekpfb ai e fahcdef prahrekkcmh femhuehb- Fahcdef prahrekkcmh cs

`ciibrbmt irak ckpbretcvb em` iumdtcamef- Xjbm tefocmh elaut fahcdef prahrekkcmh wbdem tjcmo cm e `b`udtcvb `etelesb *@L# wjbrb wb dem keob qubrcbs ta rbtrcbvbcmiarketcam irak tjet @L- Fahcdef prahrekkcmh cs dfasbr ta e `etelesb kemehbr *b-h-&TUF# tjem ta e iumdtcamef ar ctbretcvb prahrekkcmh femhuehb *b-h-& Geve#-

:-5- Iedts em` \ufbs Pjb ocm` ai `ete tjet cs starb` dauf` lb bctjbr iedts ar rufbs- Cm ^\AFAH eff tjbcmiarketcam *`ete# cs c`bmtcicb` lbdeusb tjby erb cm fawbrdesbs- Yercelfbs erb wrcttbmuscmh uppbrdesbs *et fbest tjb icrst fbttbr ai tjb mekb#-

Bxekpfb7

cmstrudtar*gajm&ds492#-cmstrudtar*kery&ds455#-cmstrudtar*peuf&ds009#-bmraffb`*gasbpj&ds455#-bmraffb`*gasbpj&ds492#-bmraffb`*gasbpj&ds009#-bmraffb`*`emcbffb&ds492#-bmraffb`*`emcbffb&ds009#-

:-<- Uubrcbs Xjet jeppbm ci wb cmsbrt tjcs qubry11+ cmstrudtar*Z&S#

Ct wcff rbturm eff tjb pecrs ai tjb iedts iar cmstrudtar-

Xjet jeppbm ci wb cmsbrt tjcs qubry11+ cmstrudtar *peuf& Z#-

Ct wcff rbturm ds009-

:-4- @bicmcmh rufbs  Maw& wjet ci wb wemt ta e`` sakb rufbs- \ufbs `bicmb mbw prb`cdetbs uscmh iedts-

Rscmh tjb bxekpfb elavb& ci wb pravc`b tjb iaffawcmh rufbs7

tbedjbs*^raibssar&Ttu`bmt# 7+ cmstrudtar*^raibssar&Daursb#&bmraffb`*Ttu`bmt&Daursb#-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 108/113

5>:

dfessketbs*Ttu`bmt5&Ttu`bmt<# 7+ bmraffb`*Ttu`bmt5&Daursb#&bmraffb`*Ttu`bmt<&Daursb#-

 Matb tjet tjb matetcam ta `bicmb e rufb cs7

Iedt 7+ Iedt& Iedt& …

Xjbrb ‖7+‖ cs ocm` ai em ‖ci‛ em` tjb dakes cm tjb rchjt sc`b ai tjcs syklaf ‖7+‛ rbprbsbmtem ‖em`‛-

Ta tjb icrst rufb elavb ‖tbedjbs‛ dauf` lb rbe` es iaffaws7 ^raibssar tbedjbs Ttu`bmt CI^raibssar cs cmstrudtar ai tjb Daursb EM@ tjb Ttu`bmt cs bmraffb` cm tjb Daursb-

 Maw& ci wb usb tjb iaffawcmh qubry7

1tbedjbs*gajm& XJA#

XJA cs e vercelfb& em` tjcs vercelfb wcff teob tjb vefub tjet keobs tjcs iedt trub- Ta&damsc`brcmh tjb iedts elavb& tjb systbk wcff rbturm tjb iaffawcmh vefubs7

XJA ; gasbpjXJA ; `emcbffb

Damsc`brcmh tjb iedts `bicmb` elavb& wjet wcff lb tjb emswbr iar tjcs qubry7

1+ dfessketbs*gevcbr&peuf#-

Pjb systbk wcff djbdo tjb pravc`b` iedts- Jawbvbr& tjbrb cs mat e iedt tjet jes

cmiarketcam elaut ‖gevcbr‛& sa tjb rbsuft wcff lb iefsb-

 Maw& ci wb eso tjb iaffawcmh qubry7

1+ dfessketbs *gasbpj&`emcbffb#-

Pjb systbk wcff djbdo eff tjb iedts bmraffb` iar latj gasbpj em` `emcbffb-bmraffb`*gasbpj&D#-bmraffb`*`emcbffb&D#-

Em` ci tjbrb cs e D tjet cs bquef iar tjb latj ai tjbk& tjbm tjb rufb dfessketbs wcff lb trub-Cm tjcs desb tjbrb erb twa vefubs iar D tjet keobs tjcs rufb trub- Ta tjb systbk wcff rbturmtjasb vefubs-

 Maw& wb dem drbetb e karb dakpfbx rufb7

dfessketbs*Ttu`bmt5& Ttu`bmt<& Daursb# 7+bmraffb`*Ttu`bmt5&Daursb#&bmraffb`*Ttu`bmt<&Daursb#-

Cm tjcs desb& ci wb dem drbetb tjb iaffawcmh qubry7

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 109/113

5>3

 dfessketbs*gasbpj&`emcbffb&D#-

Pjb systbk wcff rbturm eff tjb vefubs iar D wjbrb latj gasbpj em` `emcbffb erb bmraffb`-

 Maw ci wb eso7dfessketbs*gasbpj&`emcbffb&ds009#-

Pjb systbk wcff rbturm trub& `ub ta tjb iedt latj gasbpj em` `emcbffb erb bmraffb` cm tjb

ds009-

:-0- Bxbrdcsbs Damsc`br tjb iaffawcmh iedts em` rufbs7

Iedts7katjbrQdjcf`*tru`b& seffy#-

ietjbrQdjcf`*tak& seffy#-ietjbrQdjcf`*tak& brcde#-ietjbrQdjcf`*kcob& tak#-

\ufbs7sclfcmh*Z& S# 7+ perbmtQdjcf`*W& Z#& perbmtQdjcf`*W& S#-perbmtQdjcf`*Z& S# 7+ ietjbrQdjcf`*Z& S#-perbmtQdjcf`*Z& S# 7+ katjbrQdjcf`*Z& S#-

Xjet `abs cs ct kbems ta jevb tjb sekb rufb `bicmb` twcdb& b-h-& perbmtQdjcf`*Z&S#1

Pjcs kbems em` A\-

Xjy `abs tjb qubry ‖1+ sclfcmh*seffy& brcde#-‛ rbturms e P\RB vefub1

Ct cs trub& lbdeusb tjbrb erb twa iedts7 ietjbrQdjcf`*tak&seffy# em` ietjbrQdjcf`*tak&brcde#&sa tjb sclfcmh rufb cs setcsicb`-

Xjet ci wb wemt ta e`` e hrem`Qietjbr rufb1

hrem`Qietjbr *Z& S# 7+ ietjbrQdjcf`*Z&W# & perbmtQdjcf`*W&S#

 Maw wjet ci wb eso tjb qubry7hrem`Qietjbr*kcob& brcde#-

Pjb systbk wcff rbvcbw ci tjbrb erb emy iedt wjbrb7ietjbrQdjcf`*kcob&W# EM@ perbmtQdjcf`*W&brcde# bxcts-

Cm tjcs djesb tjb emswbr iar tjb icrst iedt& W;tak- Iar tjb sbdam` iedt& tjbrb erb twa vefubsiar W7 seffy em` brcde- Es brcde cs tjbrb& tjbm tjb dam`ctcam ietjbrQdjcf`*kcob&tak# 

EM@ perbmtQdjcf`*tak&brcde# cs trub-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 110/113

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 111/113

555

Ci tjbrb cs tjb iaffawcmh iedts cm tjb `etelesb7

bxekQhre`b*jbfbm&pess#-1+ icmefQhre`bQdsb40>*jbfbm&Z#-Z;pess1+ icmefQhre`bQdsb40>*jbfbm&pess#-

trub

 Maw ci wb djemhb tjb rufb7

icmefQhre`bQdsb40>*TPR@BMP&H\E@B# 7+ bxekQhre`b*TPR@BMP&H\E@B#&pragbdtQhre`b*TPR@BMP#-

Ci wb eso icmefQhre`bQdsb40>*jbfbm&pess#- Pjb rbsuft wcff lb iefsb& `ub ta tjb

iedt wb `a mat jevb emy cmiarketcam elaut pragbdtQhre`b iar jbfbm-

Ci wb e`` tjb iaffawcmh iedt7

pragbdtQhre`b*jbfbm#

Pjbm tjb rbsuft wcff lb trub& `ub ta tjb iedt latj dam`ctcams wcff lb trub-

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 112/113

55<

Gufy& <>54

Gevcbr Hamzefbz+TemdjbzgevcbrhsNedk-arh

Kerce+Bfbme Djevbz+BdjbehereyjbfbmdjevbzNedk-arh

7/22/2019 Principles of Programming Languages | ASU 2013

http://slidepdf.com/reader/full/principles-of-programming-languages-asu-2013 113/113