Técnicas de IO em LF1/LF2 Diego Martins, Laís Xavier, Paulo Martinelli e Turah Xavier.

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Tipos Explícitos e Tipos Polimórficos para LF1
Funções em C Prof. Fabiano Utiyama.
C/C++ para Sistemas Operacionais Professor: André Luis Meneses Silva /msn: Página:
Prof. Thiago Pereira Rique
O Essencial sobre Linguagens de Programação Luís Caires Maio 2005.
Software Básico Silvio Fernandes
Algoritmos e Programação Linguagens de Programação Teoria Aula (09/06)
JavaCC e JJTree Geração de compiladores implementados em Java
Rafael Pinto Frederico Corrêa
PROGRAMAÇÃO ou LINGUAGEM C?
Sobrecarga e Declaração de Operadores Rafael Fonseca e Romeu Guimarães.
Linguagem OperOR Agenda Descrição da Linguagem Funcionalidades BNF Limitações e Dificuldades Desenvolvimento Exemplos Dificuldades.
Introdução a JDBC Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Haskell Binding for GraphViz João Paulo Barbosa
Revisão da Linguagem C.
Classes e objetos P. O. O. Prof. Grace.
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
Implementar Listas em Linguagem Funcional II
Classes, Objetos e Encapsulamento
Desenvolvimento de Jogos e Entretenimento Digital
Aula prática 8 Ponteiros Monitoria de Introdução à Programação
Aula prática 13 Orientação a Objetos – C++ Parte 1
Aula prática 6 Vetores e Matrizes
Aula prática - análise contextual
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Definição de tipos - LF3Definição de tipos - LF3 PLP - Apresentação 1.
DEFINIÇÃO DE TIPOS – LF3 PLP – Apresentação 2. Equipe Felype Santiago Maria Carolina Paola Rodrigues Rodrigo Cardoso.
Conceitos de Linguagem de Programação
Métodos de Construção de Software: Orientação a Objetos
PROGRAMAÇÃO ESTRUTURADA (MODULARIZAÇÃO/SUBPROGRAMAÇÃO)
Estudo dos Conceitos e Paradigmas de Programação
Paradigmas de Linguagens de Programação Linguagem Imperativa 1
Paradigma Funcional Apresentação de LF1.
Augusto Sampaio e Paulo Borba Centro de Informática
Classes, Objetos, Atributos e Métodos JAVA
1 PLP – Varargs Adauto Trigueiro de A. Filho Emanoel Barreiros Helaine Lins.
Linguagens de Programação II
Estruturas de Dados Aula 2: Estruturas Estáticas 07/04/2014.
Sistema de Transformação para a linguagem OO1 Adeline Sousa Gustavo Santos.
Algoritmos e Estrutura de Dados I Jean Carlo Mendes
Emanuella Aleixo ( José Antônio Juliana Mafra Marcela Balbino
Linguagens de Programação
Aula Prática 4 Monitoria IP/CC (~if669).
Melhorias e Mensagens Amigáveis ao Usuário Centro de Informática Universidade Federal de Pernambuco Bruno Felipe Marco André Paulo Fernando Rodolfo Santos.
Lambda Cálculo & Programação Funcional
Mas para que serve um analisador sintático? Verificar se a estrutura gramatical do programa está correta Escrito de outra forma: O texto segue as regras.
Linguagem C - Funções Automação Industrial Informática Básica
1 Reestruturação das Linguagens da Disciplina “Paradigmas de Linguagens de Programação” para Java 1.5 Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt)
A Linguagem Formal de Especificação VDM-SL
Prof.: Francisco Heron Equipe: Israel Cavalcanti | Ricardo Ulisses | Marcos de Souza FFI - Foreign Function Interface Introdução Estrutura Léxica Declarações.
1 Reestruturação das Linguagens da Disciplina “Paradigmas de Linguagens de Programação” para Java 1.5 Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt)
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
PLP – Paradigma de Linguagens de Programação
1 IO em LF1 Paradigmas de Linguagens de Programação 2007 Diego Martins, Laís Xavier, Paulo Martinelli e Turah Xavier.
Concorrência em LF1 Paradigmas de Linguagens de Programação 20 de junho de 2006 Aline Timóteo Carlos Rodrigues Flávia Falcão Tiago Rolim.
Adriana Carla Projeto de PLP. 2 Roteiro Objetivos Alterações  Contextualização  BNF / Parser  checaTipo()  avaliar() Demonstração.
JavaCC.
Paradigmas de Linguagens de Programação Conceitos da Linguagem Imperativa 1 Augusto Sampaio e Paulo Borba Centro de Informática Universidade Federal de.
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Projeto II - PLP Prof. Augusto Sampaio
Padrão Visitor Paulo Mauricio Gonçalves Jr Rodrigo Teixeira Ramos Paradigmas de Linguagens de Programação Prof. Augusto Sampaio Julho de 2003.
Array e ArrayList LPOO – 01/09/14.
Implementar Listas em Linguagem Funcional II Projeto I - PLP Prof. Augusto Sampaio Equipe :Ana Paula Cavalcanti (apcc2) Clélio Feitosa (cfs) Zildomar C.
Linguagem de Programação
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
Análise Contextual Mauro Araújo Teoria e Implementação de Linguagens Computacionais - IF688 Centro de Informática – CIn Universidade Federal de Pernambuco.
1 Programação Multi-Paradigma Cristiano Bertolini – Ellison Siqueira – Guilherme Avelino –
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Transcrição da apresentação:

Técnicas de IO em LF1/LF2 Diego Martins, Laís Xavier, Paulo Martinelli e Turah Xavier

Roteiro Escopo Objetivos da 1ª parte Alterações na BNF Alterações nas classes Funcionando! Referências

Escopo Inserção de componentes e tipos básicos para suporte de Monads nas linguagens funcionais LF1 e LF2. Dar suporte a funções de entrada e saída como: getChar, putChar, getString. Dar suporte a funções de entrada e saída para manipulações de arquivos.

Objetivos na 1ª parte Inserção da definição de tipos nas declarações das funções. Inserção de um tipo IO, que encapsula outros tipos primitivos como int, string, boolean (Monads) Criação de um "prelude" similar ao de haskell para que o parser reconheça as chamadas de funções padrão tais como: getChar, getInt, getBoolean, getString. *em LF1

Alterações na BNF (1/3) ExpUnaria ::= ExpMenos | ExpNot | ExpLength | ExpDeclaracao | ExpCondicional | Aplicacao | ExpPrimaria | ExpAcaoPatternBound

Alterações na BNF (2/3) ExpAcaoPatternBound ::= "do" ListaPatternBound "\n" Expressao ListaPatternBound ::= ExpPatternBound | ExpPatternBound "," ListaPatternBound ExpPatternBound ::= Id "<-" Expressao DeclFuncao ::= "fun" Id ":" ListaTiposParam "\n" Id ListaId "=" Expressao ListaTiposParam ::= EspecTipoComposto | EspecTipoComposto " " ListaTiposParam

EspecTipoComposto ::= EspecTipoPrimitivo | EspecTipoIO EspecTipoPrimitivo ::= "int" | "boolean" | “string“ EspecTipoIO ::= "IO" EspecTipoPrimitivo | "IO" "(" ")" Alterações na BNF (3/3)

Declaração de Função Antes: DecFuncao ::= "fun" ListId "=" Expressao Ex: fun soma x y = x + y Depois: DeclFuncao ::= "fun" Id ":" ListaTiposParam "\n" Id ListaId "=" Expressao Ex: fun soma : int int int soma x y = x + y

Alterações nas classes - BNF Classes modificadas –Tipo Introdução do tipo IO na enumeração –DecFuncao Introdução do objeto EspecTipoFuncao Modificação da função checaTipo (aridade e tipos de parâmetros) Modificação da função getTipo (retirando checagem automática de tipos) –Aplicacao Modificação da função checkArgumentTypes (utilizada pelo checaTipo)

Alterações nas classes - BNF Classes criadas –EspecTipoBooleano –EspecTipoComposto –EspecTipoFuncao –EspecTipoInteiro –EspecTipoIO –EspecTipoPrimitivo –EspecTipoString –EspecTipoVoid –ExpPatternBound –ExpAcaoPatternBound ExpAcaoPatternBound ::= "do" ListaPatternBound "\n" Expressao ListaPatternBound ::= ExpPatternBound | ExpPatternBound "," ListaPatternBound –ValorIO

Alterações nas classes – “Prelude” As classes ContextoCompilacao e AmbienteExecucaoFuncional foram alteradas para que as funções de getN sejam reconhecidas em tempo de compilação e execução.

Funcionando!

Referências l_programminghttp://en.wikipedia.org/wiki/Monads_in_functiona l_programming ve.htmlhttp://citeseer.ist.psu.edu/peytonjones93imperati ve.html ads.pdfhttp://myweb.lsbu.ac.uk/~abdallae/units/fp/iomon ads.pdf dfhttp:// df