Formalności w programowaniu współbieżnym i / lub rozproszonym?


10

Moje tło wywodzi się z języków imperatywnych, głównie C, C ++ i Python. Kilka lat później wybrałem Scalę, Erlanga i trochę Haskella i od tego czasu bardzo zainteresowałem się programowaniem funkcjonalnym i formalizacjami.

Interesuje mnie również współbieżne i rozproszone programowanie i zastanawiam się nad formalizmami, szczególnie tymi, które widziały choć trochę „światła dziennego” (np. Zastosowanie w prawdziwym świecie lub przynajmniej gdzieś wdrożenie). Jak dotąd znam się na komunikowaniu procesów sekwencyjnych, modelu aktora, algebrze procesów komunikowania i rachunku systemów komunikacyjnych. Wśród nich wiem, że model Actor zrealizował się w takich językach jak Erlang, Scala i Haskell.

Zastanawiam się, czy istnieją podstawy, które powinienem nauczyć się i ćwiczyć przed zajęciem się tymi dziedzinami, czy istnieje „klasyczny”, który powinienem najpierw zbadać, i czy są jakieś inne popularne, których mogłem przegapić?

Odpowiedzi:


5

Najczęściej stosowanym formalizmem jest -calculus Milnera, Parrowa i Walkera. Jest rozszerzeniem CCS i występuje w wielu wariantach, z których niektóre (asynchroniczne -calculus) próbują być formalizacją modelu aktora. Istnieje wiele dyscyplin pisania dla -calculi, z których najprostszymi są prawdopodobnie typy sesji Hondy. Takie typy powoli rozprzestrzeniają się od prac badawczych do realizacji badań.πππ


Ach, bardzo interesujące, dzięki! Jakie tło matematyczne polecasz przed zmierzeniem się z takim polem, czy jest ono mniej lub bardziej samodzielne?
adelbertc

2
Jest mniej lub bardziej samowystarczalny. Przynajmniej podstawy. Systemy komunikacji i mobilne Milnera to przyjazne wprowadzenie. Jeśli chcesz zapoznać się z typami współbieżności, sugeruję najpierw zapoznać się z typem -calculus, a być może także z znajomością -calculi. πλ
Martin Berger,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.