Visualizando Concorrência: Um Guia para Entender o Espaço de Estado do Programa
A programação concorrente é notoriamente complexa devido à dificuldade de enumerar todos os estados possíveis. Este artigo utiliza a visualização para explicar como entender a mecânica da execução de programas concorrentes. Começa introduzindo o conceito de estado do programa, que é uma combinação de valores de variáveis e localização de instruções, e depois demonstra o processo de transição de estados do programa e a geração do espaço de estado usando um exemplo simples de programa semelhante ao C. O artigo então introduz programas concorrentes e, usando dois programas concorrentes, P e Q, explica como representar o estado de um programa concorrente e a construção do espaço de estado. Finalmente, o artigo explora como usar a ferramenta de verificação de modelo SPIN e a linguagem LTL para verificar a correção de programas concorrentes, destacando o importante papel da verificação de modelo em garantir a correção de programas concorrentes.