Advanced Topics in Programming Languages: Concurrency/message passing Newsqueak. Dotyczył on języka Newsqueak, który podobnie jak Haskell oraz Erlang stanowią dla mnie wielką zagadkę poznawczą :)
Oto omawiany filmik, gdyby ktoś się skusił:
Ogólnie wiadomo, że założenia konstrukcyjne mogą szokować. Tak też jest w przypadku języka Newsqueak, który dość jasno określa zasady:
- odrzuć koncepcje programowania wielowątkowego bazującej na Andrew Birrell's ''An Introduction to Programming with Threads.''
- odrzuć typowe podejście w programowaniu z maszyną stanów
- zastanów się nad swoimi interfejsami i potraktuj je jako struktura danych zawierająca kanały komunikacyjne
- pozwól swoim interfejsom działać jako procesy
- spróbuj utworzyć kanały komunikacyjne (bazując na interfejsach), które w dedykowanych (odrębnych) procesach enkapsulują kanały informacyjne (transmisje Twoich danych)
- stwórz oprogramowanie bez myślenia, że popełniasz błędy - nie tracąc czasu na debugowanie
- nie zamartwiaj się zbytnio obciążeniem stworzonego systemu - to kwestia balancingu działających procesów
Materiały dodatkowe:
Montage: Breaking Windows into Small Pieces
Video example
Rob Pike wikipedia page Rob Pike
A Concurrent Window System
The Good, the Bad, and the Ugly: The Unix Legacy - Slides of his presentation at the commemoration of 1000000000 seconds of the Unix clock.
Newsqueak: A Language for Communicating with Mice article 2
Resources about threaded programming in the Bell Labs CSP style
WikiProject Plan 9
Genuinely Functional User Interfaces - Theories of Programming Languages, Cambridge University
Limbo programming language
Squinting at Power Series
Acme is a text editor and graphical shell from the Plan 9 from Bell Labs operating system, designed and implemented by Rob Pike.
List of Plan 9 applications plan9 papers
Rob Pike on newsqueak
Declarative event-oriented programming
The lecture notes about the Plan 9 window system
Inferno Programming With Limbo
Brak komentarzy:
Prześlij komentarz