Semântica denotacional
# Semântica denotacional

Semântica denotacional designa uma abordagem de semântica formal. A semântica formal é uma das áreas de estudo de ciência da computação, preocupada em atribuir significado às construções das linguagens de programação. Nesta abordagem, os significados são modelados por objetos matemáticos, geralmente funções semânticas definidas composicionalmente, que representam o efeito de executar uma estrutura.
Na semântica denotacional o efeito da computação interessa mais que como ela é produzida.
As funções semânticas usadas são funções que mapeiam estruturas da linguagem para funções parciais que representam o comportamento dos programas. Daí vem o nome da abordagem, denotacional, indicando que as funções semânticas denotam os significados das estruturas das linguagens de programação. A abordagem faz uso de cálculo lambda para modelar as funções.
A exigência de composicionalidade destas funções significa que elas podem ser compostas para representar o comportamento de comandos compostos. Por exemplo, o significado do comando de composição $S_{1};S_{2}$ é dado por $E(S_{1};S_{2})=E(S_{2})\circ E(S_{1})$, e $\circ$ é a operação de composição de funções.
A semântica denotacional modela o significado de um laço de repetição usando pontos fixos (veja teoria dos pontos fixos). Um ponto fixo $g_{0}$ de um funcional $F$ é dado por $F\ g_{0}=g_{0}$.
A abordagem denotacional foi proposta por Scott e Strachey, na monografia clássica "Toward a mathematical semantics for computer languages".