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
| SequenciaComando “;” Comando
| Skip
Skip ::=
Atribuicao ::= Id “:=” Expressao
Expressao ::= Valor
| ExpUnaria
| ExpBinaria
| Id
Valor ::= ValorConcreto
ValorConcreto ::= ValorInteiro
| ValorBooleano
| ValorString
ExpUnaria ::= ExpMenos “-“ Expressao
| ExpNot “not” Expressao
| ExpLength “length” Expressao
ExpBinaria ::= ExpSoma Expressao “+” Expressao
| ExpSub Expressao “-“ Expressao
| ExpAnd Expressao “and” Expressao
| ExpOr Expressao “or” Expressao
| ExpEquals Expressao “==” Expressao
| ExpConcat 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 “write” “(“ Expressao “)”
| Read “read” “(“ Id “)”
Classes Auxiliares
AmbienteCompilacaoImperativa
AmbienteExecucaoImperativa
ContextoCompilacaoImperativa
ContextoExecucaoImperativa
EntradaVaziaException
ListaValor
Lista