Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałWiga Stefański Został zmieniony 10 lat temu
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.