Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Orientada a Objetos Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz.

Slides:



Advertisements
Apresentações semelhantes
Java e OO – Isso é só um roteiro de aula
Advertisements

Paulo Marques Hernâni Pedroso
LPOO Classe e objeto.
Design Patterns Interpreter
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Generalização, Especialização e Conceitos
Polimorfismo e Acoplamento Dinâmico
Rafael Pinto Frederico Corrêa
Polimorfismo e Classes Abstratas Profa
Linguagem de Programação II
Wagner Santos C. de Jesus
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
CRIANDO OBJETOS EM JAVA
Funções Declaração function nomedafunção (arg_1, arg_2,..., arg_n) corpoDaFunção end.
Programação Orientada à Objetos
Gramáticas Livres de Contexto
Informática Teórica Engenharia da Computação
Estudo dos Conceitos e Paradigmas de Programação
Paradigmas de Linguagens de Programação Linguagem Imperativa 2
Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Orientada a Objetos Augusto Sampaio Jackson, Jean, Patrícia, Saulo Centro de Informática.
Paradigmas de Linguagens de Programação Linguagem Imperativa 1
Paradigma Funcional Apresentação de LF1.
Paradigmas de Linguagens de Programação Linguagem Orientada a Objetos 1 Augusto Sampaio e Paulo Borba Departamento de Informática Universidade Federal.
Augusto Sampaio e Paulo Borba Centro de Informática
Augusto Sampaio e Paulo Borba Centro de Informática
Classes, Objetos, Atributos e Métodos JAVA
Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz
Paulo Borba Centro de Informática Universidade Federal de Pernambuco
PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof
Orientação a Objetos Parte I
Pilhas Profa. Nádia Félix.
Paradigma funcional.
Wagner Santos C. de Jesus
Sistema de Transformação para a linguagem OO1 Adeline Sousa Gustavo Santos.
Aula prática 14 Orientação a Objetos – C++ Parte 2
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Emanuella Aleixo ( José Antônio Juliana Mafra Marcela Balbino
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Melhorias e Mensagens Amigáveis ao Usuário Centro de Informática Universidade Federal de Pernambuco Bruno Felipe Marco André Paulo Fernando Rodolfo Santos.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Classes Abstratas e Interface
Aula Prática 1 Monitoria IP/CC (~if669). Roteiro 1.Polimorfismo 2.Superclasses Abstratas 3.Dúvidas 4.Exercício.
Programação Funcional
Linguagem Orientada a Agentes Allan Lima, Bruno Edson, Nancy Lyra.
1 Reestruturação das Linguagens da Disciplina “Paradigmas de Linguagens de Programação” para Java 1.5 Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt)
Paradigmas de Programação –Aula 7 Lab 2 Professores: Eduardo Mantovani Fábio Paula Santos.
Construtores e Destrutores
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Bruno Inojosa MCP .NET Framework
Modificadores Programação II.
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
OO com Java Luiz Carlos d´Oleron Roteiro de aula.
Inserção dos conceitos de Interface e Classe Abstrata em LOO2 (2006.1) Projeto PLP Alunos: Carlos Eduardo Pontual (ceplc)‏ Fernanda d'Amorim (frsa)‏
Adriana Carla Projeto de PLP. 2 Roteiro Objetivos Alterações  Contextualização  BNF / Parser  checaTipo()  avaliar() Demonstração.
Paradigmas de Linguagens de Programação Conceitos da Linguagem Imperativa 1 Augusto Sampaio e Paulo Borba Centro de Informática Universidade Federal de.
Herança.
Emanuella Aleixo ( José Antônio Juliana Mafra Marcela Balbino
Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Orientada a Objetos Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Padrão Visitor Paulo Mauricio Gonçalves Jr Rodrigo Teixeira Ramos Paradigmas de Linguagens de Programação Prof. Augusto Sampaio Julho de 2003.
PARADIGMAS DE LINGUAGENS EXPRESSÕES E INSTRUÇÕES DE ATRIBUIÇÃO
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
Haskell (é uma função polimorfica) Laboratório Rafael Borges
Prof.: Bruno Rafael de Oliveira Rodrigues. Herança Possibilita a uma classe usar campos ou métodos definidos em outra classe. Assim a classe pai possui.
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
Implementação Orientada a Objetos – Aula 08 Herança, sobrescrita de métodos e polimorfismo Prof. Danielle Martin Universidade de Mogi das Cruzes
Linguagem Java Programação II.
Ambientação com a Sintaxe de Java: parte 2 Prof. Gustavo Wagner Slides Originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Orientada a Objetos Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz Rafael Dantas Renan Pereira Centro de Informática Universidade Federal de Pernamburco

2 Conceitos Básicos A problemática, A linguagem OO1 foi desenvolvida como passo inicial para abordar os conceitos básicos da orientação a objetos. Devido a este fato, algumas características interessantes ficaram de fora desta versão inicial da linguagem. 2

3 Conceitos Básicos A problemática, A linguagem OO2 tem como característica adicionar alguns conceitos amplamente conhecidos em linguagens mais maduras, como construtores e a herança, e, consequentemente, prover um maior poder de expressão para a linguagem. 3

BNF agens/OrientadaObjetos2/orientada Objetos2.htmlhttp:// agens/OrientadaObjetos2/orientada Objetos2.html Adição de Construtor e Herança 4

Construtor Métodos especiais chamados automaticamente a cada criação de um objeto Através do comando new Não pssuem valor de retorno e tem o mesmo nome da classe 5

Construtor Inicialmente, na linguagem OO1, não existe a definição formal de construtor A classe é criada através de um construtor simples, sem ser possível especializa-lo Linguagens mais sofisticadas permitem essa capacidade 6

Construtor Classes Geradas –NewOO2 (ListaExpressao) –DecClasseSimplesOO2 (DecConstrutor) –DecConstrutor (checaTipo, getProcedimento) –DefClasseOO2 –DecVariavelObjetoOO2 7

Exemplo Construtor 8 { classe Eletrodomestico{ boolean ligado = false, int voltagem = 220; Eletrodomestico(boolean ligado, int voltagem){ this.ligado := ligado; this.voltagem := voltagem }, proc ligar(){ this.ligado := true }, proc desligar(){ this.ligado := false },

Exemplo Construtor – Cont. 9 proc imprimeEstado(){ write("Ligado: " ++ this.ligado); write("Voltagem: " ++ this.voltagem) } }; { Eletrodomestico eletro := new Eletrodomestico(false,110); eletro.imprimeEstado(); eletro.ligar(); eletro.imprimeEstado() }

Herança Comandos Modificados: –AtribuicaoOO2 –ChamadaMetodoOO2 –NewOO2 Expressões modificadas: –AcessoAtributoOO2 –AcessoAtributoThisOO2 10

Herança Exemplo 11 classe Tv extends Eletrodomestico{ int canal = 3, int volume = 0; Tv(boolean ligado, int voltagem, int canal, int volume){ this.ligado := ligado; this.voltagem := voltagem; this.canal := canal; this.volume := volume }, proc aumentarVolume(){ this.volume := this.volume + 1 }, Continua…

Herança Exemplo - Cont. 12 proc diminuirVolume(int volumeMenos){ if(not (this.volume == 0)) then { this.volume := this.volume - volumeMenos } }, proc imprimeEstadoTv(){ write("Ligado: " ++ this.ligado); write("Voltagem: " ++ this.voltagem); write("Canal: " ++ this.canal); write("Volume: " ++ this.volume) } },

Herança Exemplo – Cont. 13 classe TvLCD extends Tv{ boolean fullHD = true; TvLCD(boolean ligado, int voltagem, int canal, int volume, boolean fullHD){ this.ligado := ligado; this.voltagem := voltagem; this.canal := canal; this.volume := volume; this.fullHD := fullHD }, proc imprimeEstadoTvLCD(){ this.imprimeEstadoTv(); write("FullHD: " ++ this.fullHD) } };

Herança Exemplo – Cont. 14 { Tv tv := new Tv(false,110,13,20); write("Estado Inicial da Tv"); write(" "); tv.imprimeEstado(); tv.imprimeEstadoTv(); write(""); write("Aumentando volume"); write(" "); tv.aumentarVolume(); tv.imprimeEstadoTv() }

Herança Exemplo – Cont. 15 { TvLCD tvLCD := new TvLCD(false,110,13,20, true), Tv tv := new Tv(true,220,4,35); write(""); write("TvLCD estado inicial"); write(" "); tvLCD.imprimeEstadoTvLCD (); write(""); write("TvLCD mudando para o canal 50"); write(" "); tvLCD.canal := 50; tvLCD.imprimeEstadoTvLCD (); write(""); write("Diminuindo o volume da Tv em 10"); write(" "); tv.diminuirVolume(10); tv.imprimeEstadoTv() }

Exercícios Implementar Overloading Implementar Polimorfismo Adicionar operador super Adicionar modificadores de acesso 16