Pular para o conteúdo principal

1.1.2 Nomenclatura e o Ambiente

Um aspecto crítico de uma linguagem de programação são os meios que ela fornece para o uso de nomes para se referir a objetos computacionais, e nosso primeiro desses meios são constantes. Dizemos que o nome identifica uma constante cujo valor é o objeto.

Em JavaScript, nomeamos constantes com declarações de constantes.

Exemplo de Código
⛓ sessão — este bloco compartilha o ambiente da página: as declarações dos blocos anteriores são avaliadas antes deleCódigo editável · Ctrl+Enter executa · Esc solta o foco

faz com que o intepretador associe o valor 2 ao tamanho do nome.1 Depois que o nome size foi associado ao número 2, podemos nos referir ao valor 2 pelo nome:

Exemplo de Código
⛓ sessão — este bloco compartilha o ambiente da página: as declarações dos blocos anteriores são avaliadas antes deleCódigo editável · Ctrl+Enter executa · Esc solta o foco

2

Exemplo de Código
⛓ sessão — este bloco compartilha o ambiente da página: as declarações dos blocos anteriores são avaliadas antes deleCódigo editável · Ctrl+Enter executa · Esc solta o foco

10

O interpretador JavaScript precisa executar a declaração da constante size antes que o nome size possa ser usado em uma expressão. Nesta edição, os exemplos de uma mesma página compartilham o mesmo ambiente: ao executar um bloco, as instruções dos blocos anteriores são avaliadas primeiro, automaticamente. Assim, executar

Exemplo de Código
⛓ sessão — este bloco compartilha o ambiente da página: as declarações dos blocos anteriores são avaliadas antes deleCódigo editável · Ctrl+Enter executa · Esc solta o foco

equivale a executar o programa completo, com suas dependências incluídas:

Exemplo de Código
Código editável · Ctrl+Enter executa · Esc solta o foco

Aqui estão outros exemplos do uso de const:

Exemplo de Código
⛓ sessão — este bloco compartilha o ambiente da página: as declarações dos blocos anteriores são avaliadas antes deleCódigo editável · Ctrl+Enter executa · Esc solta o foco
Exemplo de Código
⛓ sessão — este bloco compartilha o ambiente da página: as declarações dos blocos anteriores são avaliadas antes deleCódigo editável · Ctrl+Enter executa · Esc solta o foco
Exemplo de Código
⛓ sessão — este bloco compartilha o ambiente da página: as declarações dos blocos anteriores são avaliadas antes deleCódigo editável · Ctrl+Enter executa · Esc solta o foco

314.159

Exemplo de Código
⛓ sessão — este bloco compartilha o ambiente da página: as declarações dos blocos anteriores são avaliadas antes deleCódigo editável · Ctrl+Enter executa · Esc solta o foco
Exemplo de Código
⛓ sessão — este bloco compartilha o ambiente da página: as declarações dos blocos anteriores são avaliadas antes deleCódigo editável · Ctrl+Enter executa · Esc solta o foco

62.8318

A declaração de constantes é o meio mais simples de abstração em nossa linguagem, pois nos permite usar nomes simples para se referir aos resultados de operações compostas, como a circumference (circunferência) calculada acima. Em geral, objetos computacionais podem ter estruturas muito complexas e seria extremamente inconveniente ter que lembrar e repetir seus detalhes cada vez que quisermos usá-los. De fato, programas complexos são construídos construindo, passo a passo, objetos computacionais de complexidade crescente. O interpretador torna a construção do programa passo a passo particularmente conveniente porque as associações nome-objeto podem ser criadas de forma incremental em interações sucessivas. Esse recurso incentiva o desenvolvimento e teste incrementais de programas e é amplamente responsável pelo fato de um programa JavaScript geralmente consistir em um grande número de funções relativamente simples.

Deve estar claro que a possibilidade de associar valores a nomes e posteriormente recuperá-los significa que o interpretador deve manter algum tipo de memória que monitore os pares nome-objeto. Essa memória é chamada de ambiente (mais precisamente o ambiente do programa, já que veremos mais tarde que uma computação pode envolver vários ambientes diferentes).2


[1] Neste livro, não mostramos a resposta do interpretador para avaliar programas que terminam com declarações, uma vez que isso pode depender de instruções anteriores. Consulte o exercício 4.8 para obter detalhes.

[2] O Capítulo 3 mostrará que essa noção de ambiente é crucial para entender como o interpretador funciona. O Capítulo 4 usará ambientes para implementar interpretadores.

📝 Encontrou algo errado nesta página?

Sua ajuda é muito importante para melhorar a qualidade da tradução!

🐛 Encontrou um erro?

Se você encontrou:

  • Erro de tradução (palavra incorreta, termo técnico errado)
  • Erro de ortografia ou gramática
  • Link quebrado
  • Código de exemplo que não funciona
  • Problema de formatação

Reporte um bug →

❓ Tem uma dúvida?

Se você tem:

  • Dúvida sobre o conteúdo desta seção
  • Pergunta sobre um conceito do SICP
  • Dificuldade em entender algum exemplo
  • Questão sobre a tradução de algum termo

Inicie uma discussão →

💡 Tem uma sugestão de melhoria?

Se você quer sugerir:

  • Melhoria na explicação
  • Exemplo adicional
  • Recurso visual (diagrama, ilustração)
  • Qualquer outra ideia

Sugira uma melhoria →

🌍 Quer discutir a tradução?

Se você quer debater:

  • Escolha de tradução de algum termo
  • Consistência de terminologia
  • Nuances do português

Discussão de tradução →

Obrigado por ajudar a melhorar o SICP.js PT-BR! ✨