Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

ŻYWE JĘZYKI PROGRAMOWANIA LIVING IT UP WITH A LIVE PROGRAMMING LANGUAGE Sean McDirmid Ecole Polytechnique Fédérale de Lausanne (EPFL)

Podobne prezentacje


Prezentacja na temat: "ŻYWE JĘZYKI PROGRAMOWANIA LIVING IT UP WITH A LIVE PROGRAMMING LANGUAGE Sean McDirmid Ecole Polytechnique Fédérale de Lausanne (EPFL)"— Zapis prezentacji:

1 ŻYWE JĘZYKI PROGRAMOWANIA LIVING IT UP WITH A LIVE PROGRAMMING LANGUAGE Sean McDirmid Ecole Polytechnique Fédérale de Lausanne (EPFL) sean.mcdirmid@epfl.ch 5/24/2010MARCIN HAGMAJER 1

2 AGENDA GenezaSuperGlueDodatkowe technikiSzczegóły realizacji i implementacjaPrzykład - PacMan 5/24/2010MARCIN HAGMAJER 2

3 DYNAMICZNE JĘZYKI PROGRAMOWANIA 5/24/2010MARCIN HAGMAJER 3 edycja kompi- lacja debu- gowa- nie Programowanie wysokopoziomowe Dynamiczne typowanie Spadek wydajności Lisp Smalltalk Erling

4 PROGRAMOWANIE NA ŻYWO Natychmiastowe efekty zmian w kodzie Konstrukcje deklaratywne - mniej kodu Dopełnianie kodu i podpowiedzi Często oparte o metody wizualne 5/24/2010MARCIN HAGMAJER 4

5 JĘZYKI WIZUALNE Dla zwykłych użytkownikówKomponenty – model deklaratywnyProblemy z graficzną reprezentacją większych programówPołączenie cech wizualnych z tekstowymiExcel, Forms/3, Fabrik, LabVIEWApple Quartz Composer: graf połączeń dźwiękowych 5/24/2010MARCIN HAGMAJER 5

6 SUPERGLUE Tekstowy, żywy język programowania 5/24/2010MARCIN HAGMAJER 6

7 SUPERGLUE 5/24/2010MARCIN HAGMAJER 7 Sygnały i komponenty Dynamiczne dziedzi- czenie Graf przepływu danych + OOP Dane zmienne w czasie Sygnały dynamicznie dziedziczą po klasach

8 PRZYKŁAD POCZĄTKOWY 5/24/2010MARCIN HAGMAJER 8

9 SYGNAŁY Wartości w grafie przepływu danych, które ułatwiają komunikację pomiędzy komponentami. Są to obiekty dziedziczące po klasach, połączone z innymi sygnałami i zawierające sygnały zdefiniowane w ich nadrzędnych klasach. Definiuje się je jako elementy klasy używając słowa kluczowego port 5/24/2010MARCIN HAGMAJER 9

10 KLASY Definiują zachowanie Nie są wartościami i mogą być rozszerzone jedynie przez sygnały Definiowane w najwyższej warstwie programu lub jako elementy inncyh klasy z wykorzystaniem słowa kluczowego class 5/24/2010MARCIN HAGMAJER 10

11 POŁĄCZENIA Definiują zależność pomiędzy sygnałami, dzięki czemu ich wartość jest jednakowa Są regułami podobnymi do prostych, jednokierunkowych ograniczeń. Określany przy użyciu operatora = 5/24/2010MARCIN HAGMAJER 11

12 ROZSZERZENIA (EXTENSIONS) Sprawiają, że sygnały rozszerzają klasy Reguły wycelowane w sygnały poza ich definicją Definiowane z wykorzystaniem operatora / : 5/24/2010MARCIN HAGMAJER 12

13 WARUNKI (CONDITIONS) Określają kiedy reguły połączeń i rozszerzeń mogą być zastosowane. Odpytują istniejące połączenia i rozszerzenia za pomocą tych samych operatorów (= i ), których używa się do ich stworzenia Tworzeone przez konstrukcje if otaczające reguły połączeń i rozszerzeń 5/24/2010MARCIN HAGMAJER 13

14 CEL: UPROSZCZONY PACMAN Gracz steruje PacManem za pomocą strzałek na klawiaturze Komputer kontroluje duchy Po dotknięciu ducha, PacMan w prawy górny róg Kulka mocy na środku ektranu. 5/24/2010MARCIN HAGMAJER 14

15 RYSUNEK (1/4) 5/24/2010MARCIN HAGMAJER 15

16 RYSUNEK (2/4) 5/24/2010MARCIN HAGMAJER 16

17 RYSUNEK (3/4) 5/24/2010MARCIN HAGMAJER 17

18 RYSUNEK (4/4) 5/24/2010MARCIN HAGMAJER 18

19 RYSUNEK - ANIMACJA 5/24/2010MARCIN HAGMAJER 19

20 DODATKOWE TECHNIKI 5/24/2010MARCIN HAGMAJER 20

21 STANY STAŁE I ZMIENNE TRAKTOWANE JEDNAKOWO 5/24/2010MARCIN HAGMAJER 21

22 DYNAMICZNE DZIEDZICZENIE 5/24/2010MARCIN HAGMAJER 22

23 TYPOWANIE ZALEŻNE 5/24/2010MARCIN HAGMAJER 23

24 MEDIATORY TYPÓW 5/24/2010MARCIN HAGMAJER 24

25 WNIOSKOWANIE TYPÓW 5/24/2010MARCIN HAGMAJER 25

26 WNIOSKOWANIE TYPÓW W IDE 5/24/2010MARCIN HAGMAJER 26

27 WNIOSKOWANIE TYPÓW W IDE (1/4) 5/24/2010MARCIN HAGMAJER 27

28 WNIOSKOWANIE TYPÓW W IDE (2/4) 5/24/2010MARCIN HAGMAJER 28

29 WNIOSKOWANIE TYPÓW W IDE (3/4) 5/24/2010MARCIN HAGMAJER 29

30 WNIOSKOWANIE TYPÓW W IDE (4/4) 5/24/2010MARCIN HAGMAJER 30

31 WNIOSKOWANIE TYPÓW W IDE 5/24/2010MARCIN HAGMAJER 31

32 REALIZACJA JĘZYKA 5/24/2010MARCIN HAGMAJER 32

33 PRZETWARZANIE KODU 5/24/2010MARCIN HAGMAJER 33 skanowanieparsowanie wnioskowanie typów wykonanie Parsowanie z pierwszeństwem Damage and repair Zmiany w kodzie Zmiany stanu wywołane sygnałem Zmiana grafu przepływu danych

34 BŁĘDY CZASU WYKONANIA 5/24/2010MARCIN HAGMAJER 34 niejednoznacznie połączone sygnaly niepołączone sygnały prymitywne specyficzne błędy (np. dzielenie przez 0) błędy reportowane jako wartości sygnałów w osobnym oknie program kontynuuje z wartościami domyślnymi

35 IMPLEMENTACJA 5/24/2010MARCIN HAGMAJER 35

36 SYGNAŁY 5/24/2010MARCIN HAGMAJER 36

37 ROZSZERZENIA 5/24/2010MARCIN HAGMAJER 37

38 PACMAN Dokończenie gry 5/24/2010MARCIN HAGMAJER 38

39 PACMAN (1/4) 5/24/2010MARCIN HAGMAJER 39

40 PACMAN (2/4) 5/24/2010MARCIN HAGMAJER 40

41 PACMAN (3/4) 5/24/2010MARCIN HAGMAJER 41

42 PACMAN (4/4) 5/24/2010MARCIN HAGMAJER 42

43 PACMAN 5/24/2010MARCIN HAGMAJER 43

44 DZIĘKUJĘ 5/24/2010MARCIN HAGMAJER 44


Pobierz ppt "ŻYWE JĘZYKI PROGRAMOWANIA LIVING IT UP WITH A LIVE PROGRAMMING LANGUAGE Sean McDirmid Ecole Polytechnique Fédérale de Lausanne (EPFL)"

Podobne prezentacje


Reklamy Google