Minha formação veio de linguagens imperativas, principalmente C, C ++ e Python. Peguei Scala, Erlang e um pouco de Haskell alguns anos depois e, desde então, fiquei muito interessado em programação funcional e nos formalismos por trás disso.
Também estou interessado em programação simultânea e distribuída e tenho estudado formalismos por trás disso, especialmente aqueles que viram pelo menos um pouquinho da "luz do dia" (por exemplo, uso no mundo real ou pelo menos uma implementação em algum lugar). Até agora, conheço os processos sequenciais de comunicação, o modelo do ator, a álgebra dos processos de comunicação e o cálculo dos sistemas de comunicação. Entre esses, eu sei que o modelo do ator se realizou em idiomas como Erlang, Scala e Haskell.
Gostaria de saber se existem fundações que eu deveria aprender e praticar antes de abordar esses campos, se há uma "clássica" que eu deveria estudar primeiro e se existem outras populares que eu possa ter perdido?