Primeiro, recomendo que você analise o PROMELA , uma linguagem usada para descrever um algoritmo simultâneo, para que um verificador de modelos possa fazer força bruta para forçar todas as execuções possíveis para verificar se é incapaz de comportamento incorreto. (A programação simultânea é notoriamente difícil de acertar, e é por isso que essas técnicas de verificação são importantes.) Ela não executa todas as construções em threads separados, mas possui sintaxe e semântica bastante estranhas, porque seu foco é o não determinismo de programas concorrentes.
Tornando-se mais abstrato, o π-cálculo é uma bela abordagem para modelar a computação paralela. É difícil entender o assunto, a menos que você compre o livro Sistemas móveis e de comunicação: o cálculo de Pi , de Robin Milner. Isso me ajudou a pensar em computação paralela em um sentido mais amplo que "vários threads acessando uma memória compartilhada". É bastante interessante como declarações condicionais, "gotos" e assim por diante podem ser construídas a partir de primitivas mais simples e naturalmente paralelas.
Com relação à sintaxe ... a melhor maneira de resolver isso é escrever alguns programas de amostra. Escreva um programa para classificar uma matriz ou, simultaneamente, faça ping em vários servidores e relate qual deles responde mais rapidamente, ou tente resolver um labirinto em paralelo, ou algo assim. Enquanto você faz isso, as coisas que estão faltando na sintaxe se tornam aparentes e você pode adicioná-las. Depois de adicionar várias coisas, pergunte-se se elas têm algo em comum e, se houver, talvez você encontre uma abordagem mais simples que possa servir a vários propósitos.