Nomes são associados a várias entidades
- Variáveis
- Subprogramas
- Parâmetros
- Classes
- Objetos
- Rótulos
- Exceções
- Constantes
- …
\pause Servem de referência às entidades de programação
- Definem uma entidade e permitem sua utilização
\pause Questões de Projeto
- Os nomes são sensíveis a maiúsculas e minúsculas?
- As palavras especiais são reservadas ou palavras-chaves?
Uma cadeia de caracteres de identificação
Alguns exemplos
- Fortran 95 aceitava nomes até 31 caracteres
- C89 não tinha limites, mas usava somente os 31 primeiros
- Java, C# e Ada sem limites
- C++ sem limites, mas implementações os impõem
- Simplifica a etapa de compilação (tabela de símbolos)
\pause Definição do que é um nome \alert{pode variar}
\pause Uma definição comum é descrita pela BNF seguinte
letra_ | → | [ A-Za-z_ ] |
digito | → | [ 0-9 ] |
identificador | → | letra_ (letra_ | digito)* |
Linguagens sensíveis – case-sensitive
- nome ≠ NOME ≠ Nome
- Exemplos: C, C++, Java, Objective-C, Modula-2, …
- Exemplo
int Nome; int nome; int NOME;
\pause Linguagens não sensíveis – case-insensitive
- nome = NOME = Nome
- Exemplos: Pascal, Delphi, Basic, Ada, …
int Nome; int nome; /* erro: esta variável já está declarada */
\pause Discussão: legibilidade e redigibilidade?
São utilizadas para tornar programas mais legíveis
- Nomeam ações (\texttt{for}, \texttt{while}, \texttt{then})
- Separam entidades sintáticas (\texttt{def}, \texttt{;})
\pause Palavra Chave – keyword
- É especial somente em alguns contextos
- Exemplo em Fortran
Real Apple Real = 3.4
- \pause Caso extremo
Real Integer Integer Real
\pause Palavra Reservada – reserved word
- Palavra não pode ser usada como nome
- Problema potencial: ter muitas palavras reservadas
- \pause Cobol tem cerca de 300 palavras reservadas
LENGTH, BOTTOM, DESTINATION, COUNT
- \pause Cobol tem cerca de 300 palavras reservadas