A ligação tem a ver com dar nomes a coisas (ou valores) em um determinado contexto bem delimitado. A tarefa é armazenar coisas (ou valores) em algum local (uma variável). Outra atribuição pode substituir um valor anterior por um novo. A avaliação consiste em vincular todos os identificadores de um texto formal a algo (com um valor). Em matemática, esses identificadores são freqüentemente chamados de variáveis, o que causa confusão com o conceito de variável (ou seja, armazenamento de memória) na ciência da computação.
Tentando fornecer detalhes mais intuitivos
A associação de nome atribui um significado aos identificadores em alguma parte (chamada escopo) do texto matemático ou de programação em questão. Esse significado pode realmente ser visto como um valor em algum domínio quando o texto é interpretado.
Por exemplo, se você declarar foo
como uma variável inteira, o valor anexado ao foo
escopo é uma variável inteira. Uma variável inteira pode ser vista informalmente como um contêiner que pode transportar um valor inteiro, que pode ser alterado. Você também pode vê-lo como o endereço de um local na memória onde o conteúdo pode ser armazenado.
Mas se você declarar foo
como o número inteiro 25, no escopo, qualquer uso de foo
é idêntico ao uso de 25. Se você declarar foo como uma constante inteira, ele não poderá ser alterado e, portanto, seu valor deverá ser especificado.
A ligação está anexando um nome a algum valor que não muda no escopo do nome. Um exemplo é um documento legal declarando que " for the purpose of this document, Mr. Brown, and the Smith family shall be called the beneficiary.
" o escopo é o documento jurídico. E em todo o documento, o uso da palavra beneficiary
significa o Sr. Brown e a família Smith. Você pode vê-lo como uma definição de terminologia local. Tem a ver com dar nomes às coisas. Vincular é falar, ler ou escrever. Não se trata de executar ou mover valores: isso corresponde à atribuição.
Uma variável pode ser vista como um pedaço de memória que pode conter um valor. Quando você tem uma variável, pode alterar o valor contido nessa variável com uma atribuição. Se foo
estiver vinculado a (ou denotar) uma variável no escopo atual, você poderá atribuir um valor a foo
, ou seja, à variável indicada por foo
, ou ler o valor contido nessa variável. E você pode alterar esse valor com uma nova atribuição.
Portanto, a ligação é uma operação que diz qual é o significado dos nomes no texto do programa ou do discurso matemático. É estático, no sentido de que o texto não muda. Mas atribuição é um conceito de programação que consiste em armazenar um valor em uma variável, ou seja, em um contêiner, que geralmente é um local na memória. É um conceito dinâmico relacionado a como (representações) dos valores são armazenados na memória, que muda à medida que o programa avança.
Observe que uma variável pode existir independentemente de qualquer nome ao qual possa estar vinculada. É o caso de um elemento de uma matriz, para dar um exemplo simples.
Em vários contextos, pode-se considerar expressões ou textos que usam nomes que não foram definidos. Por exemplo, você pode escrever
que é uma expressão aritmética. Depois, você pode avaliar as variáveis, associando um ambiente (você pode ler aproximadamente um escopo) onde as variáveis e são obrigados a alguns valores, por exemplo, 3 e 12, e estar interessado no valor assumido pelo exression. Uma avaliação é uma associação de um conjunto de nomes, cada um com um valor específico. A avaliação do nome é usada mais em matemática formal, enquanto atribuição é um conceito de programação.(a2−b2)/(a−b)ab
binding
. Quando a variável é vinculada a algum valor durante a execução do programa, dizemosit was assigned
e preferimos dizervaluated
no contexto formal / cs. Eu apenas comecei a olhar para as variáveis free / bound hoje e confuso. É como o contexto formal / cs, mas o jargão do compilador / engenheiro de computador é usado?