Variáveis livres e variáveis associadas - Free variables and bound variables
Em matemática , e em outras disciplinas envolvendo linguagens formais , incluindo lógica matemática e ciência da computação , uma variável livre é uma notação (símbolo) que especifica lugares em uma expressão onde a substituição pode ocorrer e não é um parâmetro desta ou de qualquer expressão contêiner. Alguns livros mais antigos usam os termos variável real e variável aparente para variável livre e variável limitada, respectivamente. A ideia está relacionada a um espaço reservado (um símbolo que mais tarde será substituído por algum valor), ou um caractere curinga que representa um símbolo não especificado.
Na programação de computadores , o termo variável livre se refere a variáveis usadas em uma função que não são variáveis locais nem parâmetros dessa função. O termo variável não local é freqüentemente um sinônimo neste contexto.
Uma variável vinculada é uma variável que antes era livre , mas foi vinculada a um valor específico ou conjunto de valores denominado domínio do discurso ou universo . Por exemplo, a variável x torna-se uma variável limitada quando escrevemos:
Para todo x , ( x + 1) 2 = x 2 + 2 x + 1 .
ou
Existe x tal que x 2 = 2 .
Em qualquer uma dessas proposições, não importa logicamente se x ou alguma outra letra é usada. No entanto, pode ser confuso usar a mesma letra novamente em alguma proposição composta . Ou seja, as variáveis livres tornam-se limitadas e, em certo sentido, deixam de estar disponíveis como valores substitutos para outros valores na criação de fórmulas.
O termo "variável fictícia" também é algumas vezes usado para uma variável limitada (mais frequentemente na matemática geral do que na ciência da computação), mas esse uso pode criar uma ambigüidade com a definição de variáveis fictícias na análise de regressão .
Exemplos
Antes de declarar uma definição precisa de variável livre e variável limitada , a seguir estão alguns exemplos que talvez tornem esses dois conceitos mais claros do que a definição faria:
Na expressão
n é uma variável livre ek é uma variável limitada; conseqüentemente, o valor dessa expressão depende do valor de n , mas não há nada chamado k de que possa depender.
Na expressão
y é uma variável livre e x é uma variável limitada; conseqüentemente, o valor dessa expressão depende do valor de y , mas não há nada chamado x de que possa depender.
Na expressão
x é uma variável livre eh é uma variável limitada; conseqüentemente, o valor dessa expressão depende do valor de x , mas não há nada chamado h de que possa depender.
Na expressão
z é uma variável livre e x e y são variáveis limitadas, associadas a quantificadores lógicos ; conseqüentemente, o valor lógico dessa expressão depende do valor de z , mas não há nada chamado x ou y do qual ela possa depender.
Mais amplamente, na maioria das provas, usamos variáveis ligadas. Por exemplo, a seguinte prova mostra que cada quadrado de inteiro par é divisível por
- Let Ser um número inteiro positivo par. Então, há um número inteiro tal que . Desde então , temos divisíveis por
não apenas k, mas também n foram usados como variáveis limitadas como um todo na prova.
Operadores de ligação variável
A seguir
são alguns operadores de vinculação de variáveis comuns . Cada um deles se liga a variável X para um conjunto S .
Observe que muitos desses são operadores que atuam nas funções da variável associada. Em contextos mais complicados, essas notações podem se tornar estranhas e confusas. Pode ser útil mudar para notações que tornam a ligação explícita, como
para somas ou
para diferenciação.
Explicação formal
Os mecanismos de ligação de variáveis ocorrem em diferentes contextos em matemática, lógica e ciência da computação. Em todos os casos, entretanto, eles são propriedades puramente sintáticas de expressões e variáveis neles. Para esta seção, podemos resumir a sintaxe identificando uma expressão com uma árvore cujos nós folha são variáveis, constantes, constantes de função ou constantes de predicado e cujos nós não folha são operadores lógicos. Essa expressão pode então ser determinada fazendo uma travessia inordenada da árvore. Os operadores de vinculação de variáveis são operadores lógicos que ocorrem em quase todas as linguagens formais. Um operador de ligação Q leva dois argumentos: uma variável ve uma expressão P e, quando aplicado a seus argumentos, produz uma nova expressão Q ( v , P ). O significado dos operadores de ligação é fornecido pela semântica da linguagem e não nos interessa aqui.
A vinculação de variável relaciona três coisas: uma variável v , uma localização a para aquela variável em uma expressão e um nó não folha n da forma Q ( v , P ). Observação: definimos um local em uma expressão como um nó folha na árvore sintática. A vinculação de variável ocorre quando esse local está abaixo do nó n .
No cálculo lambda , x
é uma variável limitada no termo M = λx. T
e uma variável livre no termo T
. Dizemos que x
está ligado M
e livre T
. Se T
contiver um subtermo, λx. U
então x
é rebote neste termo. x
Diz-se que essa ligação interna aninhada de "sombreia" a ligação externa. As ocorrências de x
in U
são ocorrências livres do novo x
.
As variáveis vinculadas ao nível superior de um programa são variáveis tecnicamente livres dentro dos termos aos quais estão vinculadas, mas geralmente são tratadas de maneira especial porque podem ser compiladas como endereços fixos. Da mesma forma, um identificador vinculado a uma função recursiva também é tecnicamente uma variável livre dentro de seu próprio corpo, mas é tratado de maneira especial.
Um termo fechado é aquele que não contém variáveis livres.
Expressões de função
Para dar um exemplo da matemática, considere uma expressão que define uma função
onde t é uma expressão. t pode conter alguns, todos ou nenhum dos x 1 ,…, x n e pode conter outras variáveis. Nesse caso, dizemos que a definição da função vincula as variáveis x 1 ,…, x n .
Dessa maneira, as expressões de definição de função do tipo mostrado acima podem ser consideradas como o operador de ligação variável, análogo às expressões lambda do cálculo lambda . Outros operadores de ligação, como o sinal de soma , podem ser considerados como funções de ordem superior que se aplicam a uma função. Então, por exemplo, a expressão
poderia ser tratada como uma notação para
onde é um operador com dois parâmetros - uma função de um parâmetro e um conjunto para avaliar essa função. Os outros operadores listados acima podem ser expressos de maneiras semelhantes; por exemplo, o quantificador universal pode ser pensado como um operador que é avaliada como o conjunto lógico da função de valor booleano P aplicada sobre a (possivelmente infinito) conjunto S .
Linguagem natural
Quando analisadas na semântica formal , as linguagens naturais podem ser vistas como tendo variáveis livres e limitadas . Em inglês, pronomes pessoais como he , she , they , etc. podem atuar como variáveis livres.
- Lisa encontrou seu livro.
Na frase acima, o pronome possessivo ela é uma variável livre. Pode se referir à mencionada Lisa ou a qualquer outra mulher. Em outras palavras, seu livro pode estar se referindo ao livro de Lisa (uma instância de co-referência ) ou a um livro que pertence a uma mulher diferente (por exemplo, o livro de Jane). Quem quer que o referente de seu é pode ser estabelecida de acordo com a situação (ou seja pragmática contexto). A identidade do referente pode ser mostrada usando subscritos de indexação de moeda, onde i indica um referente ej indica um segundo referente (diferente de i ). Assim, a frase que Lisa encontrou em seu livro tem as seguintes interpretações:
- Lisa i encontrou- i livro. (interpretação # 1: dela = de Lisa )
- Lisa i encontrou- j livro. (interpretação # 2: dela = de uma mulher que não é Lisa)
A distinção não é de interesse puramente acadêmico, já que algumas línguas têm, na verdade, formas diferentes para her i e her j : por exemplo, norueguês e sueco traduzem coreferent her i as sin e noncoreferent her j como hennes .
O inglês permite especificar a co-referência, mas é opcional, pois ambas as interpretações do exemplo anterior são válidas (a interpretação não gramatical é indicada com um asterisco):
- Lisa i encontrou- i próprio livro. (interpretação # 1: dela = de Lisa )
- * Lisa i encontrou- j próprio livro. (interpretação # 2: dela = de uma mulher que não é Lisa)
No entanto, pronomes reflexivos , como ele mesmo , ela , eles mesmos , etc., e pronomes recíprocos , como um ao outro , agem como variáveis limitadas. Em uma frase como a seguinte:
- Jane se machucou .
a própria reflexiva só pode se referir ao antecedente mencionado anteriormente , neste caso Jane , e nunca pode se referir a uma pessoa diferente do sexo feminino. Neste exemplo, a própria variável está ligada ao substantivo Jane que ocorre na posição de sujeito . Indicando a indexação monetária , a primeira interpretação com Jane e ela mesma indexada é permitida, mas a outra interpretação onde eles não são indexados monetariamente não é gramatical :
- Jane, eu me machuquei i . (interpretação # 1: ela mesma = Jane )
- * Jane, eu me machuquei j . (interpretação # 2: ela mesma = uma mulher que não é Jane)
Observe que a ligação de correferência pode ser representada usando uma expressão lambda, conforme mencionado na seção de explicação formal anterior . A frase com o reflexivo pode ser representada como
- (λ x . x machuca x ) Jane
em que Jane é o argumento assunto referente e λx.x ferido x é a função de predicado (a abstração lambda) com a notação lambda e x indicando tanto o sujeito semântica eo objeto semântico da sentença como sendo vinculado. Isso retorna a interpretação semântica que JANE machucou JANE com JANE sendo a mesma pessoa.
Os pronomes também podem se comportar de maneira diferente. Na frase abaixo
- Ashley bateu nela .
o pronome ela só pode se referir a uma mulher que não seja Ashley. Isso significa que nunca pode ter um significado reflexivo equivalente a Ashley bater em si mesma . As interpretações gramaticais e não gramaticais são:
- * Ashley eu bati nela i . (interpretação # 1: ela = Ashley )
- Ashley eu bati nela j . (interpretação # 2: ela = uma mulher que não é Ashley)
A primeira interpretação é impossível. Apenas a segunda interpretação é permitida pela gramática.
Assim, pode-se ver que reflexivos e recíprocos são variáveis limitadas (conhecidas tecnicamente como anáforas ), enquanto os pronomes verdadeiros são variáveis livres em algumas estruturas gramaticais, mas variáveis que não podem ser limitadas em outras estruturas gramaticais. Os fenômenos de ligação encontrados nas línguas naturais foram particularmente importantes para o governo sintático e a teoria da ligação (ver também: Ligação (linguística) ).
Veja também
- Encerramento (ciência da computação)
- Lógica combinatória
- Lambda levantando
- Vinculação de nome
- Escopo (programação)
Referências
- Thompson, Simon (1991). Teoria dos tipos e programação funcional . Wokingham, Inglaterra: Addison-Wesley. ISBN 0201416670. OCLC 23287456 .