1 / 44

Żywe języki programowania Living it up with a Live Programming Language

Ż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. Agenda. Dynamiczne języki programowania. Programowanie wysokopoziomowe Dynamiczne typowanie Spadek wydajności Lisp Smalltalk

niyati
Télécharger la présentation

Żywe języki programowania Living it up with a Live Programming Language

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Żywe języki programowaniaLiving it up with a Live Programming Language Sean McDirmid Ecole Polytechnique Fédérale de Lausanne (EPFL) sean.mcdirmid@epfl.ch Marcin Hagmajer

  2. Agenda Marcin Hagmajer

  3. Dynamiczne języki programowania • Programowanie wysokopoziomowe • Dynamiczne typowanie • Spadek wydajności • Lisp • Smalltalk • Erling Marcin Hagmajer

  4. Programowanie na żywo Marcin Hagmajer

  5. Języki wizualne Marcin Hagmajer

  6. Tekstowy, żywy język programowania SUperGlue Marcin Hagmajer

  7. SuperGlue • Dane zmienne w czasie • Sygnały dynamicznie dziedziczą po klasach Marcin Hagmajer

  8. Przykład początkowy Marcin Hagmajer

  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 Marcin Hagmajer

  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 Marcin Hagmajer

  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 = Marcin Hagmajer

  12. Rozszerzenia (extensions) • Sprawiają, że sygnały rozszerzają klasy • Reguły wycelowane w sygnały poza ich definicją • Definiowane z wykorzystaniem operatora / „:” Marcin Hagmajer

  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ń Marcin Hagmajer

  14. Cel: uproszczony PacMan Marcin Hagmajer

  15. Rysunek (1/4) Marcin Hagmajer

  16. Rysunek (2/4) Marcin Hagmajer

  17. Rysunek (3/4) Marcin Hagmajer

  18. Rysunek (4/4) Marcin Hagmajer

  19. Rysunek - animacja Marcin Hagmajer

  20. Dodatkowe techniki Marcin Hagmajer

  21. Stany stałe i zmienne traktowane jednakowo Marcin Hagmajer

  22. Dynamiczne dziedziczenie Marcin Hagmajer

  23. Typowanie zależne Marcin Hagmajer

  24. Mediatory typów Marcin Hagmajer

  25. Wnioskowanie typów Marcin Hagmajer

  26. Wnioskowanie typów w Ide Marcin Hagmajer

  27. Wnioskowanie typów w Ide (1/4) Marcin Hagmajer

  28. Wnioskowanie typów w Ide (2/4) Marcin Hagmajer

  29. Wnioskowanie typów w Ide (3/4) Marcin Hagmajer

  30. Wnioskowanie typów w Ide (4/4) Marcin Hagmajer

  31. Wnioskowanie typów w Ide Marcin Hagmajer

  32. Realizacja języka Marcin Hagmajer

  33. przetwarzanie kodu • Parsowaniez pierwszeństwem • Damage and repair • Zmiany w kodzie • Zmiany stanu wywołane sygnałem • Zmiana grafu przepływu danych Marcin Hagmajer

  34. Błędy czasu wykonania • błędy reportowane jako wartości sygnałów w osobnym oknie • program kontynuujez wartościami domyślnymi Marcin Hagmajer

  35. implementacja Marcin Hagmajer

  36. Sygnały Marcin Hagmajer

  37. Rozszerzenia Marcin Hagmajer

  38. Dokończenie gry Pacman Marcin Hagmajer

  39. PacMan (1/4) Marcin Hagmajer

  40. PACMAN (2/4) Marcin Hagmajer

  41. PACMAN (3/4) Marcin Hagmajer

  42. PACMAN (4/4) Marcin Hagmajer

  43. pacman Marcin Hagmajer

  44. Dziękuję Marcin Hagmajer

More Related