Especificações Formais: Além das Instruções, Definindo Comportamentos de Software

2025-07-28
Especificações Formais: Além das Instruções, Definindo Comportamentos de Software

Esta publicação aprofunda a distinção entre especificações formais e programas tradicionais. Enquanto programas são listas de instruções, especificações formais são conjuntos de comportamentos. Usando um contador como exemplo, o autor ilustra como as especificações definem todos os comportamentos corretos e utilizam a teoria dos conjuntos, empregando geradores (Init e Next) para descrever conjuntos infinitos de comportamentos. Isso contrasta com o conceito de não-determinismo na programação; em especificações formais, não-determinismo refere-se a múltiplas maneiras pelas quais um comportamento pode ser estendido, enquanto em programas, refere-se a caminhos de código incertos. O artigo enfatiza a importância de entender especificações formais como conjuntos de comportamentos, crucial para depuração e interpretação de erros do verificador de modelos.