Tip:
Highlight text to annotate it
X
Nesta unidade, vamos cobrir o significado de programas,
e especialmente seu significado em termos do contexto --
do ambiente em que operam.
Isso é chamado de semânica formal e, embora isso possa parecer, inicialmente, um pouco érido,
é de fato um dos meus tópico favoreitos em ciência da computação.
De fato, antes do meu trabalho passar a ser grande glória de corrigir erros em programas --
e comecei tentando encontrar erros em programas,
e uma das surpreendente lições sobre encontrar erros em programas
é que tanto o programa quento nossa idéia sobre o que ele deve significar são importantes.
Todos voc6es provavelmente já tiveram um erro em seu código, alguma vez,
e, oficialmente, um erro é, de fato, apenas uma instância em que o significado do programa difere da sua especificação --
o que ele faz não está de acordo com o que ele deveria fazer.
Um resultado talvez surpreendente é que, na prárica,
muitas vezes o erro é, de fato, na especificação,
e voc6e provavelmente já deve ter visto isso no mundo real.
Um amigo pode ter pedido a você para fazer alguma coisa,
voc6e faz exatamente isso, pra então descobrir que não era realmente aquilo que seu amigo queria --
era apenas aquilo que ele disse para voc6e fazer.
O mesmo tipo de coisa ocorre em pesquisas para encontrar e corrigir erros.
Frequentemente, a especificação formal de um problema -- isso nunca deveria acontecer para os exercícios desse curso -- é vaga e imprecisa.
Não é suficiente para dizer a você o que deve acontecer.
Independentemente de se o problema é com código fonte ou com a especificação,
entender o que o código significa em um contexto é crítico para entender o que está correto ou errado,
e é isso que vamos fazer nesta unidade.