Imperativa 1
- Estende a Linguagem de Expressões 1 com identificadores (variáveis) e comandos de atribuição, entrada/saída e controle de fluxo
- O contexto inclui três componentes:
- um mapeamento (dinâmico) de identificadores em valores
- uma lista de valores de entrada
- uma lista de valores de saída
- Um programa é um comando
Fontes
Comando ::=
Atribuicao
|
ComandoDeclaracao
|
While
|
IfThenElse
|
IO
|
Comando “;” Comando
|
Skip
Skip ::=
Atribuicao ::= Id “:=” Expressao
Expressao ::=
Valor
|
ExpUnaria
|
ExpBinaria
| 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
ComandoDeclaracao ::= “{“ Declaracao “;” Comando “}”
Declaracao ::=
DeclaracaoVariavel
|
DeclaracaoComposta
DeclaracaoVariavel ::= “var” Id “=” Expressao
DeclaracaoComposta ::= Declaracao “,” Declaracao
While ::= “while” Expressao “do” Comando
IfThenElse ::= “if” Expressao “then” Comando “else” Comando
IO ::=
“write” “(“ Expressao “)”
|
“read” “(“ Id “)”
Classes Auxiliares
AmbienteCompilacaoImperativa
AmbienteExecucaoImperativa
ContextoCompilacaoImperativa
ContextoExecucaoImperativa
EntradaVaziaException
ListaValor
Lista