Rachunek Lambda i J zyki Programowania

Podobne dokumenty
Programowanie funkcyjne. Wykªad 13

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Twierdzenie Wainera. Marek Czarnecki. Warszawa, 3 lipca Wydziaª Filozoi i Socjologii Uniwersytet Warszawski

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Wykªad 4. Funkcje wielu zmiennych.

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Indeksowane rodziny zbiorów

Listy i operacje pytania

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

Podstawy modelowania w j zyku UML

Logika matematyczna (16) (JiNoI I)

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

Metody numeryczne i statystyka dla in»ynierów

Wykład 2: Rachunek lambda

Zbiory i odwzorowania

Funkcje wielu zmiennych

Model obiektu w JavaScript

W poprzednim odcinku... Podstawy matematyki dla informatyków. Relacje równowa»no±ci. Zbiór (typ) ilorazowy. Klasy abstrakcji

*** Teoria popytu konsumenta *** I. Pole preferencji konsumenta 1. Przestrze«towarów 2. Relacja preferencji konsumenta 3. Optymalny koszyk towarów

Geometria Algebraiczna

Automorzmy modeli i twierdzenie EhrenfeuchtaMostowskiego

Zastosowania matematyki

Podstawy matematyki dla informatyków. Logika formalna. Skªadnia rachunku zda« Skróty i priorytety. Wykªad 10 (Klasyczny rachunek zda«) 15 grudnia 2011

Ekonometria. wiczenia 13 Metoda ±cie»ki krytycznej. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Algorytmy zwiazane z gramatykami bezkontekstowymi

Ekonometria Bayesowska

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Maªgorzata Murat. Modele matematyczne.

2 Liczby rzeczywiste - cz. 2

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

Ekstremalnie maªe zbiory

Programowanie wspóªbie»ne

1 Metody iteracyjne rozwi zywania równania f(x)=0

1 Poj cia pomocnicze. Przykªad 1. A A d

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

1. Wprowadzenie do C/C++

Strategia czy intuicja?

Metodydowodzenia twierdzeń

Ekonometria - wykªad 8

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Równania ró»niczkowe I rz du (RRIR) Twierdzenie Picarda. Anna D browska. WFTiMS. 23 marca 2010

Teoretyczne Podstawy Informatyki

Zdzisªaw Dzedzej, Katedra Analizy Nieliniowej pok. 611 Kontakt:

Metody dowodzenia twierdze«

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Wyra»enia logicznie równowa»ne

1 Granice funkcji wielu zmiennych.

3. (8 punktów) EGZAMIN MAGISTERSKI, Biomatematyka

1. Wprowadzenie do C/C++

Biostatystyka, # 4 /Weterynaria I/

Logika pierwszego rz du. Sposób u»ycia. Tautologie, sposoby u»ywania logiki pierwszego rz du, zwi zki z j zykiem naturalnym

Programowanie funkcjonalne. Wykªad 12

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

EGZAMIN MAGISTERSKI, r Matematyka w ekonomii i ubezpieczeniach

Podstawy Informatyki Gramatyki formalne

Rachunek lambda CBN i CBV

Ekonometria. wiczenia 7 Modele nieliniowe. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

Rachunek caªkowy funkcji wielu zmiennych

Liniowe zadania najmniejszych kwadratów

x y x y x y x + y x y

Macierze. 1 Podstawowe denicje. 2 Rodzaje macierzy. Denicja

Funkcje wielu zmiennych

1 0 Je»eli wybierzemy baz A = ((1, 1), (2, 1)) to M(f) A A =. 0 2 Daje to znacznie lepszy opis endomorzmu f.

Ksztaªt orbity planety: I prawo Keplera

Numeryczne zadanie wªasne

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Wykªad 10. Spis tre±ci. 1 Niesko«czona studnia potencjaªu. Fizyka 2 (Informatyka - EEIiA 2006/07) c Mariusz Krasi«ski 2007

Informatyka, matematyka i sztuczki magiczne

Konstruowanie Baz Danych Wprowadzenie do projektowania. Normalizacja

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Podstawy modelowania w j zyku UML

Proste modele o zªo»onej dynamice

Wnioskowanie Boolowskie i teoria zbiorów przybli»onych

Ukªady równa«liniowych

Analizy populacyjne, ªadunki atomowe

Operacje morfologiczne

Statystyka matematyczna - ZSTA LMO

Programowanie wspóªbie»ne

Matematyka 1. Šukasz Dawidowski. Instytut Matematyki, Uniwersytet l ski

Wykªad 12. Transformata Laplace'a i metoda operatorowa

Elementy geometrii w przestrzeni R 3

Informacje pomocnicze

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, Dawid Rasaªa Metody numeryczne 1 / 9

Zagadnienia na wej±ciówki z matematyki Technologia Chemiczna

Rachunek zda«. Relacje. 2018/2019

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów

Zagadnienia programowania obiektowego

Preliminaria logiczne

Lekcja 12 - POMOCNICY

Matematyka. Justyna Winnicka. rok akademicki 2016/2017. Szkoªa Gªówna Handlowa

Funkcje wielu zmiennych

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Programowanie i struktury danych 1 / 44

Materiaªy do Repetytorium z matematyki

MODEL HAHNFELDTA I IN. ANGIOGENEZY NOWOTWOROWEJ Z UWZGL DNIENIEM LEKOOPORNO CI KOMÓREK NOWOTWOROWYCH

Granular Computing 9999 pages 15 METODY SZTUCZNEJ INTELIGENCJI - PROJEKTY

Transkrypt:

Rachunek Lambda i J zyki Programowania Maªgorzata Biernacka Instytut Informatyki UWr Wykªad 3 1

Plan 1 Ewaluacja w j zykach funkcyjnych Ewaluacja w kontekstach Maszyny abstrakcyjne 2

Plan 1 Ewaluacja w j zykach funkcyjnych Ewaluacja w kontekstach Maszyny abstrakcyjne 3

Plan 1 Ewaluacja w j zykach funkcyjnych Ewaluacja w kontekstach Maszyny abstrakcyjne 4

Semantyka operacyjna j zyków I Znaczenie konstrukcji j zyka okre±la pewna specykacja procesu 'wykonania' programu I Semantyka operacyjna mo»e by okre±lona w sposób formalny, np. przez system reguª dedukcji okre±laj cych pewn relacj przej±cia: Semantyka du»ych kroków deniuje relacj mi dzy programami a ich warto±ciami Semantyka maªych kroków deniuje relacj przej±cia mi dzy stanami wykonania programu I Semantyka operacyjna powinna by czytelna dla u»ytkownika j zyka, powinna umo»liwia wnioskowanie o programach oraz implementacj j zyka I Ró»ne opisy semantyczne tego samego j zyka powinny by równowa»ne 5

Semantyka wykonywalna I Semantyka zadana przez program (interpreter, kompilator) I J zyk, którego semantyk deniujemy, nazywamy j zykiem deniowanym, ¹ródªowym I J zyk, w którym okre±lona jest semantyka wykonywalna (interpreter lub kompilator) nazywamy j zykiem deniuj cym I J zyk deniuj cy musi by wystarczaj co ekspresywny, by symulowa zachowanie j zyka deniowanego I Semantyka, jak okre±limy dla j zyka deniowanego zale»y od semantyki j zyka deniuj cego (oraz j zyka docelowego w przypadku kompilatora) 6

Semantyka wykonywalna I Interpreterem j zyka S napisanym w j zyku L nazywamy L-program int, który dla dowolnego S-programu s i danych dla programu s, b dzie symulowaª wykonanie programu s w j zyku L, a» do obliczenia warto±ci (je±li istnieje): [s ] S (x) = [int ] L (s, x) I Kompilatorem j zyka S do j zyka T, napisanym w j zyku L, nazywamy L-program comp taki,»e [s ] S = [[comp ] L (s)] T 7

J zyk Λ n I Program dowolny zamkni ty λ term: I Warto± programu λ-abstrakcja: t := x t t λx.t v := λx.t I Strategia normalna (`woªanie-przez-nazw ', 'call-by-name') I Semantyka operacyjna maªych kroków realizuj ca t strategi : (λx.t) s n t [s/x] I Obserwacyjna równowa»no± : r n s r u n s u t ctx s 8C.C[t] = C[s] (= oznacza,»e oba zatrzymuj si i zwracaj te same warto±ci, lub oba nie zatrzymuj si ) 8

Równowa»no± programów I Obserwacyjna równowa»no± : kiedy dwa termy (fragmenty programu) s wymienialne? Kiedy mo»na jeden zast pi drugim? I Zastosowanie: optymalizacja kodu, uproszczenie kodu I Równowa»no± obserwacyjna jest wra»liwa na rozszerzenia j zyka 9

Ewaluacja w Λ n a teoria λβ 1 Dla ka»dego termu r, r v dla pewnej warto±ci v r n v 0 dla pewnej warto±ci v 0. 2 Dla ka»dych r, s, λβ ` r = s r ctx s. Teoria λβ nie jest zupeªna: dowolne dwa termy, których ewaluacja si nie zatrzymuje s obserwacyjnie równowa»ne, ale nie musz by równe w teorii (np. Ω i Ω (λx.x)). 10

Równowa»no± semantyki du»ych i maªych kroków Twierdzenie Dla ka»dego programu t 2 Λ n, t n v t n v. 11

J zyk Λ v I Program dowolny zamkni ty λ term: I Warto± programu λ-abstrakcja: t := x t t λx.t v := λx.t I Strategia aplikatywna (`woªanie-przez-warto± ', 'call-by-value') I Semantyka maªych kroków realizuj ca t strategi : (λx.t) v v t [v/x] r v s r u v s u r v s v r v v s 12

Ewaluacja w Λ v a teoria λβ v I Jaki jest zwi zek ewaluacji w Λ v z teori λβ? I Zdeniujmy teori λβ v przez zastrze»enie relacji β-konwersji do reguªy I Teori λβ v (λx.t) v = t [v/x] deniuj reguªy: s = u s = s u = s r = s r = u s = u (λx.t) v = t [v/x] s = r s t = r t s = t s = t r s = r t λx.s = λx.t I Podobnie jak w przypadku λβ, deniujemy relacj redukcji przez skierowanie równa«i Powstaªa relacja redukcji ma wªasno±ci CR i standardyzacji 13

Ewaluacja w Λ v a teoria λβ v, c.d. 1 Dla ka»dego termu r, r v dla pewnej warto±ci v r v v 0 dla pewnej warto±ci v 0. 2 Dla ka»dych r, s, λβ v ` r = s r ctx s. Teoria λβ v nie jest zupeªna: dowolne dwa termy, których ewaluacja si nie zatrzymuje s obserwacyjnie równowa»ne, ale nie musz by równe w teorii (np. Ω i Ω (λx.x)). 14

Translacja mi dzy Λ v i Λ n I Translacja : Λ v Λ n x = λk.k x λx.t = λk.k (λx.t) t 1 t 2 = λk.t 1 (λv 1.t 2 (λv 2.v 1 v 2 k)) I Translacja przeprowadza termy do stylu kontynuacyjnego (continuation-passing style, CPS) 15

Translacja mi dzy Λ n i Λ v, c.d. Wªasno±ci termów w CPS: I Niezale»no± ewaluacji od strategii redukcyjnej j zyka deniuj cego: I Symulacja ewaluacji: gdzie φ(λx.r) = λx.r. I Translacja: t(λx.x) v v t(λx.x) n v t v v t(λx.x) n φ(v), λβ v ` r = s λβ v ` r = s λβ n ` r = s I Wªasno± zachowania równowa»no±ci obserwacyjnej: I Odwrotna implikacja nie zachodzi t(λx.x) n s(λx.x) t v s 16

Redeksy administratywne I Translacja : narzuca porz dek ewaluacji podtermów nazywa cz ±ciowe wyniki oblicze«i Translacja wprowadza dodatkowe redeksy (niewyst puj ce w termie ¹ródªowym), tzw. redeksy administratywne I Redeksy administratywne mog by zredukowane, prowadz c do bardziej zwi zªej postaci termu I Programuj c translacj, mo»na wykona wszystkie redeksy administratywne w jednym przej±ciu (u»ywaj c ewaluacji na poziomie metaj zyka do ich zredukowania) 17

Przykªad λx.x = λk.k (λxk 0.k 0 x) y = λk.k y (λx.x) y = λk.(λxk.k x) y k 18

Translacja mi dzy Λ n i Λ v I Translacja : Λ v Λ n x = x λx.t = λk.k (λx.t) t 1 t 2 = λk.t 1 (λv.v t 2 k) 19

Translacja mi dzy Λ n i Λ v, c.d. Wªasno±ci termów w CPS: I Niezale»no± ewaluacji od strategii redukcyjnej j zyka deniuj cego: I Symulacja ewaluacji: gdzie φ(λx.r) = λx.r. I Translacja: t(λx.x) v v t(λx.x) n v t n v t(λx.x) v φ(v), λβ n ` r = s λβ v ` r = s λβ n ` r = s I Wªasno± zachowania równowa»no±ci obserwacyjnej: t(λx.x) v s(λx.x) t n s I Odwrotna implikacja nie jest prawdziwa 20

Interpreter dla Λ n I Rozwa»my nieformaln denicj iterpretera dla rachunku lambda (j zyka S): E(Var x) = x E(App r s) = (E(r))(E(s)) E(Abs f ) = λv.e(f v) I J zyk deniuj cy L lambda rachunek z pewn strategi ewaluacji I Ka»da konstrukcja j zyka deniowanego jest modelowana przez t odpowiadaj c cech j zyka deniuj cego I Pytanie: jaka jest strategia, któr nadamy j zykowi deniowanemu? Co si stanie, je±li j zmienimy? 21

Interpreter dla Λ n I Rozwa»my nieformaln denicj iterpretera dla rachunku lambda (j zyka S): E(Var x) = x E(App r s) = (E(r))(E(s)) E(Abs f ) = λv.e(f v) I J zyk deniuj cy L lambda rachunek z pewn strategi ewaluacji I Ka»da konstrukcja j zyka deniowanego jest modelowana przez t odpowiadaj c cech j zyka deniuj cego I Pytanie: jaka jest strategia, któr nadamy j zykowi deniowanemu? Co si stanie, je±li j zmienimy? I Je±li L jest CBN, to App (Abs (λxy.y)) Ω ewaluuje do λy.e(y) I Je±li L jest CBV, to App (Abs (λxy.y)) Ω nie zatrzymuje si 21

Interpreter dla Λ n, c.d. I Przy u»yciu kontynuacji mo»emy narzuci konkretn strategi : E(Var x) c = c x E(App r s) c = E(r) (λf.e(s) (λv.f v c)) E(Abs f ) c = c (λvc 1.E(f v) c 1 ) I Wniosek: Semantyka j zyka ¹ródªowego zale»y od semantyki j zyka deniuj cego w tym przypadku nadali±my j zykowi ¹ródªowemu semantyk aplikatywn przez jawne wyspecykowanie kolejno±ci oblicze«za pomoc kontynuacji 22

Interpreter ze ±rodowiskiem I Je±li nie chcemy u»ywa HOAS ani podstawienia, standardowym rozwi zaniem jest interpreter ze ±rodowiskiem (environment) I u»ycie ±rodowiska umo»liwia opó¹nione podstawienie dopiero wtedy, gdy ewaluacja dotrze do zmiennej, wybieramy ze ±rodowiska to, co nale»aªo podstawi (domkni cie) I domkni cie (closure) jest par (term, ±rodowisko) I ±rodowisko jest list par (zmienna, domkni cie) I Interpreter ze ±rodowiskiem: e := (x, c) :: e c := (t, e) E(Var x) e = lookup e x E(App r s) e = (E(r) e)(e(s) e) E(Abs (x, r)) e = λv.e(r) (extend x v e) 23

Ewaluacja w kontekstach Plan 1 Ewaluacja w j zykach funkcyjnych Ewaluacja w kontekstach Maszyny abstrakcyjne 24

Ewaluacja w kontekstach Semantyka redukcyjna I Semantyka maªych kroków I Jawny kontekst oblicze«i Otrzymywana bezpo±rednio z denicji poj cia redukcji i redukcji jednokrokowej 25

Ewaluacja w kontekstach Strategia w Λ n za pomoc kontekstów I Konteksty wyra»aj reguªy kompatybilno±ci: r n s r u n s u I Skªadnia kontekstów: C n := [ ] C n [[ ] t] I Semantyk kontekstów deniuje funkcja wstawiania: [ ][r] = r C n [[ ] s][r] = C n [(r s)] I Wówczas strategi ewaluacji mo»na przedstawi nast puj co: C n [(λx.r) s] n C n [r [s/x]] 26

Ewaluacja w kontekstach Semantyka redukcyjna, c.d. I gramatyka termów I gramatyka kontekstów I funkcja wstawiania I poj cie redukcji (jeden krok obliczenia) I warto±ciami s termy, które nie s redeksami i które nie dadz si zapisa w postaci C [t] 27

Ewaluacja w kontekstach Strategia w Λ v za pomoc kontekstów I Mamy 2 reguªy kompatybilno±ci: r v s r u v s u r v s v r v v s I Skªadnia kontekstów: C v := [ ] C v [[ ] t] C v [v [ ]] I Denicja funkcji wstawiania: [ ][r] = r C v [[ ] s][r] = C v [r s] C v [v [ ]][r] = C v [v r] I Wówczas strategi ewaluacji mo»na przedstawi nast puj co: C v [(λx.r) v] n C v [r [v/x]] 28

Ewaluacja w kontekstach Wªasno± jednoznacznego rozkªadu I Je±li strategia jest deterministyczna, to mamy wªasno± jednoznacznego rozkªadu: Semantyka redukcyjna ma wªasno± jednoznacznego rozkªadu, je±li dla ka»dego termu t nieb d cego warto±ci, istnieje dokªadnie jeden kontekst C i dokªadnie jeden (potencjalny) redeks r taki,»e C [r] = t. I Semantyka przy CBV i CBN ma wªasno± jednoznacznego rozkªadu. 29

Ewaluacja w kontekstach Potencjalne redeksy I Redeksem potencjalnym nazywamy term, który mo»e by albo redeksem wªa±ciwym, albo termem niepoprawnym w sensie semantyki j zyka (stuck term). I Rozwa»my rozszerzenie Λ n o staªe liczbowe dne i staª S reprezentuj c operacj nast pnika. I Warto±ci: v := λx.r dne I Potencjalne redeksy: r := v t Sv I Dodatkowe reguªy redukcji: S dne n dn + 1e I Termy postaci dne r lub S λx.r s poprawne skªadniowo, ale niepoprawne semantycznie nie mo»na ich ewaluowa, ale nie s poprawnymi warto±ciami 30

Ewaluacja w kontekstach Interpreter I Semantyka redukcyjna prowadzi do nast puj cej implementacji procesu ewaluacji: 1 Napisz funkcj dekomponuj c term na redeks i kontekst 2 Wykonaj β-redukcj 3 Wstaw zredukowany term do kontekstu 4 Powtarzaj a» do osi gni cia warto±ci (je±li istnieje) 31

Ewaluacja w kontekstach Refocusing optymalizacja ewaluacji t 0 1 t 1 1 t 2 1 33

Ewaluacja w kontekstach Refocusing optymalizacja ewaluacji t 0 1 t 1 plug β 1 t 2 plug β 1 β 33

Ewaluacja w kontekstach Refocusing optymalizacja ewaluacji t 0 1 t 1 plug β refocus 1 t 2 plug β refocus 1 β I refocusing optymalizacja ci gu redukcji (bez rekonstrukcji termów po±rednich) I refocus funkcja przej±cia mi dzy stanami I stan = (term, kontekst) I przechodnie domkni cie funkcji refocus (iteracja) (prawie) maszyna abstrakcyjna 33

Maszyny abstrakcyjne Plan 1 Ewaluacja w j zykach funkcyjnych Ewaluacja w kontekstach Maszyny abstrakcyjne 34

Maszyny abstrakcyjne Maszyny abstrakcyjne I Abstrakcyjny model implementacji j zyka lub symulacji wykonania programu wedªug pewnej strategii I Maszyna abstrakcyjna jest okre±lona jako funkcja przej±cia mi dzy stanami (konguracjami): stan okre±la chwilowy stan oblicze«(ª cznie z ewentualnym stanem zasobów potrzebnych do wykonania tych oblicze«) mo»liwe przej±cia mi dzy stanami okre±la funkcja przej±cia (determinizm) wyró»niamy stan pocz tkowy i stan ko«cowy (lub stany ko«cowe) I Maszyna abstrakcyjna jest abstrakcyjnym modelem, który mo»e pomija pewne szczegóªy implementacyjne, zale»nie od zastosowania 35

Maszyny abstrakcyjne Maszyna Krivine'a z podstawieniem I Warto±ci: v ::= λx.t I Konteksty ewaluacyjne: E ::= [ ] E[[ ] t] I Przej±cia maszyny: t ht, [ ]i hλx.t, E[[ ] t 0 ]i ht [t 0 /x], E i ht 1 t 2, E i ht 1, E[[ ] t 2 ]i hv, [ ]i v 37

Maszyny abstrakcyjne Maszyna Krivine'a ze ±rodowiskiem I Warto±ci: v ::= (λx.t, e) I rodowisko: e ::= e empty e[x 7 (t, e)] I Konteksty ewaluacyjne: E ::= [ ] ARG(t, e, E) I Przej±cia maszyny: t ht, e empty, [ ]i hx, e, E i ht, e 0, E i gdzie e(x) = (t, e 0 ) hλx.t, e, ARG(t 0, e 0, E)i ht, e[x 7 (t 0, e 0 )], E i ht 1 t 2, e, E i ht 1, e, ARG(t 2, e, E)i hλx.t, e, [ ]i (λx.t, e) 39

Maszyny abstrakcyjne Strategia maszyny Krivine'a I Maszyna Krivine'a jest poprawna wzgl dem semantyki maªych kroków Twierdzenie Dla ka»dego programu t 2 Λ n, t n v ht, e empty, [ ]i (v 0, e), gdzie (v 0, e) reprezentuje warto± v. I Strategia maszyny symuluje strategi n I Ka»da tranzycja w maszynie odpowiada albo β-redukcji, albo regule kompatybilno±ci, która wybiera nast pny podterm do ewaluacji 40

Maszyny abstrakcyjne rodowisko a podstawienie Realizacja β-redukcji: I przez podstawienie (λx.t) s t [s/x] I przez ±rodowisko hλx.t, e, ARG(t 0, e 0, E)i ht, e[x 7 (t 0, e 0 )], E i hx, e, E i ht 0, e 0, E i gdzie e(x) = (t 0, e 0 ) 41

Maszyny abstrakcyjne rodowisko a podstawienie, c.d. I rodowisko: nie ma potrzeby wykonywa α-przemianowanie umo»liwia rozumowanie przez indukcj strukturaln na termach podczas ewaluacji, termy nie ulegaj zmianie, wi c mog by kompilowane I Podstawienie: meta-operacja brak zwi zku z praktyczn technik implementacji ±rodowiskiem, co utrudnia wnioskowanie o wªasno±ciach implementacji 42

Maszyny abstrakcyjne Maszyna CEK ze ±rodowiskiem I Warto±ci: v ::= [x, t, e] I rodowisko: e ::= e empty e[x 7 v] I Konteksty: E ::= [ ] ARG(t, e, E) FUN(v, E) I Przej±cia maszyny: t ht, e empty, E i eval hx, e, E i eval he, e (x)i apply hλx.t, e, E i eval he, [x, t, e]i apply ht 1 t 2, e, E i eval ht 1, e, ARG(t 2, e, E)i eval harg(t, e, E), v i apply ht, e, FUN(v, E)i eval hfun([x, t, e], E), v i apply ht, e[x 7 v], E i eval h[ ], v i apply v 44

Maszyny abstrakcyjne Strategia maszyny CEK I Maszyna CEK jest poprawna wzgl dem semantyki maªych kroków Twierdzenie Dla ka»dego programu t 2 Λ v, t v v ht, e empty, [ ]i (v 0, e), gdzie (v 0, e) reprezentuje warto± v. I Strategia maszyny symuluje strategi v I Ka»da tranzycja w maszynie odpowiada albo β-redukcji, albo regule kompatybilno±ci, która wybiera nast pny podterm do ewaluacji 45

Maszyny abstrakcyjne Maszyna SECD I Pierwsza maszyna abstrakcyjna dla lambda rachunku (Landin '64) I Konguracja maszyny hs, E, C, Di zawiera: stos warto±ci S ±rodowisko E kod C stos D I Ekstensjonalnie równowa»na maszynie CEK (strategia CBV) I Intensjonalnie realizuje inny model implementacyjny ni» CEK 46

Maszyny abstrakcyjne Maszyna SECD, c.d. t h, e empty, t, i h[x, t, e] :: S, E,, hs 0, E 0, C 0, D 0 ii h[x, t, e] :: S 0, E 0, C 0, D 0 i hs, E, x :: C, Di he(x) :: S, E, C, Di hs, E, λx.t :: C, Di h(λx.t, E) :: S, E, C, Di h(λx.t, E 0 ) :: v :: S, E, ap :: C, Di h, E[x 7 v], t, hs, E, C, Dii hs, E, (r s) :: C, Di hs, E, s :: r :: ap :: C, Di hv :: S, e empty,, i v 47

Maszyny abstrakcyjne Maszyna SECD vs. CEK I SECD: W momencie wywoªania funkcji bie» cy stan maszyny jest zachowywany na stosie I CEK: Kontekst jest rozszerzany w momencie ewaluacji funkcji i argumentu; wywoªanie funkcji zawsze zmniejsza kontekst I Te wªasno±ci powoduj,»e maszyny konsumuj ró»n ilo± miejsca na kontekst: Ewaluacja Ω jest niesko«czona na obu maszynach Ilo± miejsca na stos konsumowana przez CEK w tej ewaluacji jest ograniczona Stos w SECD ro±nie nieograniczenie z ka»dym wywoªaniem funkcji I rodowisko mo»e rosn nieograniczenie w obu przypadkach (t wad mo»na wyeliminowa ) 48