Please enable JavaScript.
Coggle requires JavaScript to display documents.
SISTEMA OPERACIONAL, SEMÂNTICA AXIOMÁTICA, SISTEMA DENOTACIONAL,…
SISTEMA OPERACIONAL
Definição e Objetivo da Semântica Operacional
Define o significado de sentenças/programas a partir da execução em uma máquina idealizada.
Mostra a evolução do estado da máquina (armazenamento e variáveis).
Objetivo: oferecer uma descrição formal do comportamento do programa.
Avaliação de Expressões
Pode ser feita em dois níveis:
Natural → foca apenas no resultado final da execução.
Estrutural → mostra cada passo da execução e as mudanças no estado.
Exemplo prático: programadores testando pequenos trechos de código para entender construções de linguagem estão, na prática, usando semântica operacional.
SEMÂNTICA AXIOMÁTICA
Conceito e importância da semântica aximomática
Define significado de programas por meio de lógica formal.
Usa pré-condições (o que deve ser verdadeiro antes da execução) e pós-condições (o que deve ser verdadeiro após).
Importância: permite provar a correção de programas.
Fundamenta técnicas modernas de verificação e análise estática de software.
Axiomas e regras de inferência
Axiomas → descrições básicas do comportamento de comandos simples (ex.: atribuição).
Regras de inferência → permitem derivar propriedades de comandos compostos a partir das propriedades de seus componentes.
Exemplos de uso da semântica axiomática
Provar que um laço while termina e satisfaz uma condição final desejada.
Validar que uma atribuição preserva uma propriedade esperada.
Verificação de programas críticos (ex.: softwares de aviação, sistemas bancários, protocolos de rede).
SISTEMA DENOTACIONAL
Definição e propósito da semântica denotacional
Baseada em teoria de funções matemáticas e recursivas.
Define significado por meio de mapeamento de entidades sintáticas → objetos matemáticos.
Domínio sintático = estruturas da linguagem.
Domínio semântico = objetos matemáticos (ex.: números, estados, funções).
Objetivo: oferecer uma descrição precisa, rigorosa e matemática do significado das construções de linguagem.
Exemplos de aplicação da semântica denotacional
Números binários: cadeia "110" → mapeada para decimal 6.
Números decimais: cadeias de dígitos → inteiros correspondentes.
Expressões: operadores + e * → funções matemáticas que mapeiam variáveis e valores.
Atribuições: modeladas como funções que transformam estados.
Laços while: descritos como funções recursivas, convertendo iteração em recursão.
COMPARAÇÃO ENTRE AS SEMÂNTICAS
Diferenças fundamentais
Semântica Operacional → descreve o processo de execução passo a passo, mostrando como o estado da máquina/programa muda.
Semântica Denotacional → traduz construções da linguagem diretamente em funções matemáticas ou objetos abstratos, sem mostrar os passos intermediários.
Semântica Axiomática → expressa o significado em termos de propriedades lógicas, focando na correção do programa em relação a pré e pós-condições.
Vantagens e Desvantagens
Operacional
✔ Intuitiva e próxima da execução real.
✔ Útil para ensinar e entender linguagens.
✘ Muito detalhada e extensa (dificulta descrições formais completas).
Denotacional
✔ Altamente rigorosa, baseada em matemática.
✔ Permite abstrações elegantes e precisas.
✘ Difícil de aplicar em linguagens complexas.
✘ Exige conhecimento matemático avançado.
Axiomática
✔ Focada em provar correção e propriedades do programa.
✔ Base da verificação formal e confiabilidade de software.
✘ Nem sempre prática para descrever o comportamento completo.
✘ Pode ser difícil formular axiomas e provas para programas reais.
Relação com Linguagens de Programação:
Como as diferentes abordagens semânticas se relacionam com o design e a implementação de linguagens de programação.
Semântica Operacional → influencia o design de interpretadores e máquinas virtuais, ajudando a definir como instruções realmente executam.
Semântica Denotacional → usada em projeto de linguagens e compiladores, fornecendo uma base matemática para garantir consistência e prever comportamentos.
Semântica Axiomática → aplicada em verificação de programas e análise formal, essencial em linguagens que precisam de confiabilidade alta (segurança, sistemas críticos).