• Aucun résultat trouvé

Les rationalités des actionnaires dans les politiques de vote : l’expression d’un régime de

PARTIE III – PRINCIPES D’ENGAGEMENT RESPONSABLE DE L’ACTIONNAIRE: LE

III. Les rationalités des actionnaires dans les politiques de vote : l’expression d’un régime de

A formulação original da semântica de ações inclui uma interpretação operacional das ações utilizando semântica operacional estruturada, a qual possui baixa modularidade. Com isso, extrair partes para reúso ou estender a notação de ações requeria extensa reformulação das regras operacionais. Para resolver esse problema, Wansbrough & Hamer (1997) propuseram a união entre ações e mônadas. No novo método, as primi- tivas utilizadas para a criação da ações são definidas por meio de mônadas, fornecendo um núcleo modular e facilmente extensível. Além disso, a base matemática que am- para a semântica de mônadas possibilita o raciocínio equacional, facilitando a prova de teoremas. No entanto, ao trocar a semântica operacional estruturada por semân- tica de mônadas, a expressividade do modelo diminui, tornando, por exemplo, inviável lidar com múltiplos processos que se comuniquem, como apontado por Wansbrough & Hamer (1997).

2.6

Semântica Operacional Modular

Ao expor a falta de modularidade do núcleo da semântica de ações, Wansbrough & Hamer (1997) motivaram Mosses (2004) a melhorar a modularidade da semântica ope- racional, de modo a manter a interpretação operacional da notação de ações e evitar as desvantagens do uso de mônadas. O resultado é uma técnica que produz definições modulares, extensíveis e facilmente reusáveis. Inspirada no uso de mônadas para trazer modularidade à semântica denotacional, essa nova abordagem de semântica operacional abstrai informações de contexto ao incorporar todas as entidades semânticas nos ró- tulos das transições. Dessa forma, as configurações utilizadas nas transições envolvem apenas elementos sintáticos e valores computados.

Os rótulos da MSOS possuem diversos componentes que modelam as informações de contexto utilizadas. Tais componentes podem ser lidos e modificados em cada transi- ção, bastando para isso mencioná-los nos rótulos. No entanto, caso os componentes não sejam mencionados, o seu valor é mantido implicitamente durante a transição. Com isso, a regra de transição para uma construção como um if-then-else, a qual trabalha apenas com o fluxo de controle, pode ser escrita de forma genérica, independentemente de detalhes como efeito colateral, lançamento de exceções ou interação com processos concorrentes.

A flexibilidade que os rótulos de MSOS conferem à técnica tornam possível um processo incremental de definição semântica, pois novos construtos podem ser adici- onados sem a necessidade de redefinição. Além disso, funcionalidades presentes em

diversas linguagens, como a construção if-then-else mencionada anteriormente, podem ter sua definição reutilizada sem reformulação (Mosses 2002b). Todavia, o autor alerta para o fato de que mudar o estilo de uma definição em MSOS entre small-step (Plotkin 1981) e big-step (Kahn 1987) requer extensa reformulação das regras de transição.

Apesar da modularidade alcançada por MSOS e pela semântica de ações, cujo núcleo passou a ser definido em MSOS, Mosses (1999) advoga a preferência pela semân- tica de ações. Segundo o autor, a principal vantagem da notação de ações é que seus combinadores proveem abreviações concisas para certos padrões de regras de transição. Por exemplo, o combinador para execução sequencial sem fluxo de dados (escrito A1

and_then A2) abrevia um padrão que ocorre em muitas definições de avaliação feita

da esquerda para a direita em MSOS ou SOS. No entanto, a notação utilizada por MSOS, ao se manter próxima à notação tradicional de semântica operacional, pode ser mais familiar do que a notação de ações. Além disso, MSOS possui base teórica mais poderosa do que a semântica de ações (Mosses 1999), sendo portanto mais adequada à prova de propriedades da linguagem definida.

Recentemente, essa abordagem sofreu uma pequena alteração que simplifica sua notação e favorece ainda mais o reúso (Mosses & New 2009). A I-MSOS difere do método anterior na forma como entidades auxiliares não mencionadas nas regras de transição são tratadas. Enquanto MSOS agrupa todas as entidades não menciona- das em um único rótulo, fazendo assim com que seus valores sejam transmitidos sem alteração, I-MSOS estabelece que toda entidade não mencionada em uma regra tem seu valor transmitido implicitamente. Isso torna as regras de transição de I-MSOS consideravelmente mais legíveis.

A Tabela 2.1 mostra uma comparação entre definições semânticas de valores cons- tantes utilizando SOS, MSOS e I-MSOS. No primeiro caso, o estado da máquina, representado por σ e σ′, é citado na regra de transição, embora seu valor não influ-

encie a transição. No caso de I-MSOS, a transição inspeciona o valor da constante x no environment, mas nenhuma informação de contexto é alterada. Algo semelhante ocorre com a definição em MSOS, mas é necessário explicitar no rótulo da transição que o valor do environment no fim da transição e a transmissão das outras informações de contexto sem alterações. A primeira linha de cada exemplo mostra o formato das transições e, no caso de MSOS, o rótulo utilizado.

SOS: MSOS: I-MSOS: ρ⊢ he, σi → he′, σi

e−→ eX ′ Label={ρ:Env, . . .} ρ⊢ e → e′

ρ(x) = con ρ⊢ hx, σi → hcon, σi

ρ(x) = con x−−−→ con{ρ,–}

ρ(x) = con ρ⊢ x → con

Tabela 2.1: Comparação da semântica da avaliação de valores constantes utilizando SOS, MSOS e I-MSOS – extraída de Mosses & New (2009).

2.7

Semântica Incremental

Um problema não resolvido pelas demais metodologias é a dificuldade de se estender uma definição semântica. Para resolver esse problema, a semântica incremental pro- posta por Tirelo et al. (2005, 2008, 2009) foca na falta de escalabilidade e legibilidade das metodologias de semântica denotacional, desenvolvendo o conceito de vagueza, muito comum na prática de ensino. Quando um professor apresenta um conceito a seus alunos, ele primeiro trabalha o núcleo de ideias e depois acrescenta outros concei- tos relacionados de menor relevância. Dessa forma, os alunos concentram-se primeiro nos aspectos mais importantes para depois explorar detalhes.

Na abordagem incremental, a definição semântica é dada por uma sequência de definições e funções de transformação. Cada versão da definição é obtida pela união de novos conceitos e uma transformação aplicada à versão anterior – a função de transformação é responsável por adaptar as demais regras semânticas aos novos conceitos. O ponto forte dessa abordagem é a possibilidade de se organizar os conceitos em módulos transversais às equações semânticas, o que estimula um desenvolvimento incremental da linguagem e torna a definição mais legível. De fato, a abordagem traz uma forma disciplinada de se alterar denotações para inserir novas construções.

Entretanto, a metodologia não é indicada para a prototipação, mas apenas para a apresentação de linguagens completas. Embora as funções de transformação permitam uma definição incremental, a adição de construções não antecipadas pode ser complexa. Conhecer todas as demandas a priori permite ao projetista modelar cada versão da definição de forma a simplificar as transformações necessárias.

Finalmente, assim como a programação orientada a aspectos, a semântica incre- mental dificulta o raciocínio equacional. Ao se fazer demonstrações de propriedades, sugere-se primeiro fazer a demonstração com base na definição inicial e depois verificar a cada transformação quais propriedades da especificação anterior se mantêm válidas.