Expressões 2
- Estende a Linguagem de Expressões 1 com identificadores (variáveis) que possuem um valor (constante)
- Durante a compilação, surge a necessidade de um contexto:mapeamento entre identificadores e tipos
- Durante a interpretação, surge a necessidade de um contexto: mapeamento entre identificadores e valores
- Na avaliação de uma expressão, a ocorrência de um identificador é substituída pelo valor associado ao identificador
- Um programa é uma expressão
Fontes
Expressao ::=
Valor
|
ExpUnaria
|
ExpBinaria
|
ExpDeclaracao
|
Id
Valor ::= ValorConcreto
ValorConcreto ::=
ValorInteiro
|
ValorBooleano
|
ValorString
ExpUnaria ::=
“-“ Expressao
|
“not” Expressao
|
“length” Expressao
ExpBinaria ::=
Expressao “+” Expressao
|
Expressao “-“ Expressao
|
Expressao “and” Expressao
|
Expressao “or” Expressao
|
Expressao “==” Expressao
|
Expressao “++” Expressao
ExpDeclaracao ::= “let” Declaracao “in” Expressao
Declaracao ::=
DecVariavel
|
DecComposta
DecVariavel ::= “var” Id “=” Expressao
DecComposta ::= Declaracao “,” Declaracao
Classes Auxiliares
Ambiente
AmbienteCompilacao
AmbienteExecucao
Contexto
ContextoCompilacao
ContextoExecucao
VariavelJaDeclaradaException
VariavelNaoDeclaradaException
IdentificadorJaDeclaradoException
IdentificadorNaoDeclaradoException