11
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

Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Imperativa 2

  • Upload
    monet

  • View
    42

  • Download
    16

Embed Size (px)

DESCRIPTION

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. Visão Geral. Estende a linguagem imperativa 1 com declarações e chamadas de procedimentos: - PowerPoint PPT Presentation

Citation preview

Page 1: Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Imperativa 2

Paradigmas de Linguagens de Programação

BNF e Interpretador daLinguagem Imperativa 2

Augusto Sampaio e Paulo BorbaCentro de Informática

Universidade Federal de Pernambuco

Page 2: Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Imperativa 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

Page 4: Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Imperativa 2

Programa Exemplo 1

{ var a = 0 , proc incA () { a := a + 1 }; call incA(); call incA(); write(a)}

= 2

Page 5: Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Imperativa 2

Programa Exemplo 2{ 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

Page 6: Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Imperativa 2

Programa Exemplo 3{ var x = 0, proc p (int y) {x := x + y}; { var x = 1; call p(3); write(x) }; call p(4); write(x)}

= 4 4

Page 7: Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Imperativa 2

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)

Page 8: Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Imperativa 2

Ambiente do Interpretador

O ambiente pode ser modificado por atribuições e por declarações

de variáveis!

Page 10: Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Imperativa 2

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

Page 11: Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Imperativa 2

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;