Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouEster Trigo Alterado mais de 9 anos atrás
1
Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Imperativa 2
Augusto Sampaio e Paulo Borba Centro de Informática Universidade Federal de Pernambuco
2
Visão Geral Estende a linguagem imperativa 1 com declarações e chamadas de procedimentos: procedimentos podem ser recursivos e parametrizados procedimentos não são valores procedimentos podem ser declarados em qualquer parte do programa Um programa é um comando
3
BNF Novo comando: ChamadaProcedimento Nova declaração: DecProcedimento
4
Programa Exemplo 1 proc incA () { a := a + 1 }; call incA(); write(a)
{ var a = 0 , proc incA () { a := a + 1 }; call incA(); write(a) } = 2
5
Programa Exemplo 2 = Ola Ola Ola { var b = 3,
proc escreveRecursivo (int a) { if (not (a == 0)) then { var x = 0; x := a - 1; write("Ola"); call escreveRecursivo(x) } else skip }; call escreveRecursivo(b) } = Ola Ola Ola
6
Programa Exemplo 3 { var x = 0, proc p (int y) {x := x + y};
call p(3); write(x) }; call p(4); write(x) } = 4 4
7
Ambiente do Interpretador
O ambiente inclui quatro componentes: uma pilha de mapeamentos de identificadores em valores (memória principal) duas listas de valores (entrada e saída) uma pilha de mapeamentos de identificadores em procedimentos (declarações)
8
Ambiente do Interpretador
O ambiente pode ser modificado por atribuições e por declarações de variáveis!
9
Projeto e Implementação do Interpretador
A execução de comandos retorna um contexto derivado do que é recebido como argumento Modelo de projeto Partes do código
10
Características do Interpretador
Escopo dinâmico para variáveis e procedimentos Passagem de parâmetros por valor Avaliação de argumentos da esquerda para à direita
11
Exercícios Estenda a Linguagem Imperativa 2 com os seguintes recursos:
procedimentos com parâmetros opcionais proc Id(ListaIdValor) = Comando procedimentos que retornam valores proc Id(ListaId) return Id = Comando call Id(ListaExpressao) return Id;
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.