A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Implementar Listas em Linguagem Funcional II Projeto I - PLP Prof. Augusto Sampaio Equipe :Ana Paula Cavalcanti (apcc2) Clélio Feitosa (cfs) Zildomar C.

Apresentações semelhantes


Apresentação em tema: "Implementar Listas em Linguagem Funcional II Projeto I - PLP Prof. Augusto Sampaio Equipe :Ana Paula Cavalcanti (apcc2) Clélio Feitosa (cfs) Zildomar C."— Transcrição da apresentação:

1 Implementar Listas em Linguagem Funcional II Projeto I - PLP Prof. Augusto Sampaio Equipe :Ana Paula Cavalcanti (apcc2) Clélio Feitosa (cfs) Zildomar C. Felix (zcf)

2 21/06/2005Projeto I - PLP Agenda  Linguagem Funcional 2;  Projeto;  Alterações na BNF e no Parser;  Novas Classes;  Alteração nas classes existentes; e  Exemplos.

3 21/06/2005Projeto I - PLP Linguagem Funcional 2 – LF2  Estende LF1 com funções de alta ordem  Uma função passa a ser um valor (flexibilidade na def. de funções)  O contexto inclui um único componente: Mapeamento de identificadores em valores (pilhaValor) Não existe pilhaFuncao  O resultado da avaliação de uma expressão pode ser uma função, uma função pode ser argumento de outra função,...  Um programa é uma expressão

4 21/06/2005Projeto I - PLP Projeto Proposto  Estender a linguagem funcional II Implementar um novo tipo de dados “Lista”.  Uma lista é uma seqüência de valores;  Listas são homogêneas;  Listas são dinâmicas;  Representação de Listas: Lista Vazia → [ ] Lista de elementos → [t1,t2,t3,t4…,tn] Ex: [‘a’,’b’,’c’], [1,2,3] ou [[true],[false]]

5 21/06/2005Projeto I - PLP Projeto Proposto  Estender a linguagem funcional II Implementar os Operadores de Lista.  head;  tail;  cons;  concat Exemplos:head [10,20,30] tail [10,20,30] 10 : [20,30] ou 10 cons [20,30] [‘a’,’b’,’c’] concat [‘d’,’e’]

6 21/06/2005Projeto I - PLP Projeto Proposto  Estender a linguagem funcional II Implementar o Casamento de Padrão em Lista.  fun [] = 0;  fun (x:xs) = x + fun xs Exemplos  Let fun soma [soma[] = 0 | soma (x:xs) = soma (xs) + x];  let fun product [ product [] = 1 | product(x:xs) = product(xs)*x]

7 21/06/2005Projeto I - PLP Alteração na BNF Programa ::= Expressao Expressao ::= Valor | ExpUnaria | ExpBinaria | ExpDeclaracao | Id | Aplicacao | IfThenElse Valor ::= ValorConcreto | ValorAbstrato ValorAbstrato ::= ValorFuncao | ValorLista ValorConcreto ::= ValorInteiro | ValorBooleano | ValorString ValorFuncao ::= "fn" SeqId "." Expressao SeqId ::= Id | Id, SeqId ValorLista ::= "[]" | Expressao ":" ValorLista | "[" Expressao ("," Expressao)* "]" ExpUnaria ::= "-" Expressao | "not" Expressao | "length" Expressao | "head" Expressao | "tail" Expressao ExpBinaria ::= Expressao "+" Expressao | Expressao "-" Expressao | Expressao "and" Expressao | Expressao "or" Expressao | Expressao "==" Expressao | Expressao "++" Expressao ExpDeclaracao ::= "let" DeclaracaoFuncional "in" Expressao DeclaracaoFuncional ::= DecVariavel | DecFuncao | DeclaracaoFuncional "," DeclaracaoFuncional | PDeclFuncaoPadrao DecVariavel ::= "var" Id "=" Expressao DecFuncao ::= "fun" Id Valor "=" Valor | "fun" Id Id Id "=" Expressao Aplicacao:= Expressao(Expressao, Expressao)

8 21/06/2005Projeto I - PLP Solução Adotada  Novas classes de projeto: TipoLista, ValorLista, ExpHead, ExpTail, ExpCons, ExpConcatLista, ListaVaziaException DecFuncaoPadrao, ValorFuncaoPadrao, Padrao, ValorListaPadrao, Ambiente/ContextoExecucaoFuncional e GUI_Execution

9 21/06/2005Projeto I - PLP Solução Adotada  Classes alteradas: ValorFuncao, ExpDeclaracao, Id, ExpEquals, Programa e PartialInstantiatorVisitor

10 21/06/2005Projeto I - PLP Solução Adotada  ValorLista  ExpCons  PartialInstantiatorVisitor  Padrao (ValorListaPadrao e prox Padrao)  ValorListaPadrao ([], x:xs)  ValorFuncaoPadrao (Padrao+Expressao+prox ValorFuncaoPadrao)  DecFuncaoPadrao  ExpDeclaracao  Ambiente/ContextoExecucaoFuncional e Id

11 21/06/2005Projeto I - PLP Exemplos...

12 21/06/2005Projeto I - PLP Referências  [SEBESTA2000] SEBESTRA, Robert W. Conceitos de Linguagem de Programação. 4 Ed. Bookman, 2000.  [WATT, 2004] WATT, David A. Programming Language Concepts and Paradigms

13 Implementar Listas em Linguagem Funcional II Projeto I - PLP Equipe :Ana Paula Cavalcanti (apcc2) Clélio Feitosa (cfs) Zildomar C. Felix (zcf)


Carregar ppt "Implementar Listas em Linguagem Funcional II Projeto I - PLP Prof. Augusto Sampaio Equipe :Ana Paula Cavalcanti (apcc2) Clélio Feitosa (cfs) Zildomar C."

Apresentações semelhantes


Anúncios Google