Características de Linguagens de Programação Aluno Rafael Menezes Lopes Professor João Araújo 2009/2 Apresentação da Linguagem EIFFEL.

Slides:



Advertisements
Apresentações semelhantes
Creating an Eclipse-based IDE for the D programming language
Advertisements

Desenvolvimento de Plug-ins Orientado a Testes
Linguagem de Programação I
Augusto NevesJoão CarlosRodrigo Paula Linguagem de Programação C++ Componentes do Grupo.
Rational Unified Process
Conhecendo o VS2008: Windows Forms X Web Forms X Web Services
Engenharia de Software
Adriano Teixeira João Vide Luís Silva Maria Pedroto
Criação de Páginas Web Criação de Páginas Web – KompoZer
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Introdução aos Serviços Web
Artur Rauen Luciano Peixoto
Introdução a Informática
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Curso Sistemas de Informação I Disciplina: Arquitetura de Software
Universidade Federal do Espírito Santo
Linguagens de Programação
Análise e Projeto de Sistemas
Laboratório de Programação de Computadores I
OpenOffice = ferramentas de produtividade essenciais no dia-a-dia.
LINUX.
Configuração de manutenção
Paradigmas de programação
Test-Driven Development
Linguagem de Programação C#
C# Universidade Federal de Santa Catarina INE5612 – Desenvolvimento de Sistemas Orientados a Objetos II Filipe S Ghisi, Guilherme Welter, Matheus Porto,
Aula prática 13 Orientação a Objetos – C++ Parte 1
Fundamentos de Engenharia de SW
Cap 2 – Processo de Software
Eiffel – Uma linguagem Completa
Projeto de Sistemas de Informação
Object Oriented Software Construction (MEYER, Bertrand)
Análise da linguagem Java Planejamento. Objetivos Apresentar as soluções de implementação em Java para os conceitos de Orientação a Objetos introduzidos.
Flávia Andrade de Souza Rodrigo Mibielli Peixoto
Nomes: Thalia Fernanda Mirian Lúcia
PLANILHAS ELETRÔNICAS
Análise e Projeto de Sistemas
Higher Education Statistics in C# Language
Engenharia de Software
Introdução a Linguagens de Programação
OO-SC (Meyer) - Cap 111 OO-SC (MEYER) Desenho por Contrato Construindo software confiável.
Linguagem de Programação JAVA
Desenvolvimento Rápido de Aplicação (RAD)
XIV Jornada de Cursos .NET com C# Antônio Júnior Bruno Inojosa.
Sistemas de Gerenciamento de Educação a Distância Prof. Silvia Helena Cardoso Prof. Renato M. E. Sabbatini.
Professor: Márcio Amador
Programação Orientada à Objetos
Aula 1 - Fundamentos Java SE Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Gilmar Medeiros – Agosto/2009.
Paradigmas da Programação – Semestre 1 – Aula 9 Professor: Eduardo Mantovani )
O Processo Unificado (UP)
Serviço Nacional de Aprendizagem Comercial do Rio Grande do Sul Informação e Comunicação Habilitação Técnica de Nível Médio Técnico em Informática Prof.
Interfaces e classes abstratas. Conceitos de Orientação a Objeto.
Programação de PIC em C Exposição das funções básicas para
Sistemas de Gerenciamento de Educação a Distância Prof. Silvia Helena Cardoso Prof. Renato M. E. Sabbatini.
Sistemas de Informação: Estrutura básica dos Sistemas Empresariais.
Processos de Software.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Paradigmas da Programação – Semestre 2 – Aula 1 Professores: Fábio de Paula Santos Eduardo Mantovani
Introdução à Linguagem Eiffel
Linguagem de programação. Histórico  Concebida em 1993 por Yukihiro Matsumoto  Primeiro livro em inglês saiu em setembro de 2000  Ruby on Rails é lançado.
A Linguagem Formal de Especificação VDM-SL
Fundamentos de linguagens de programação
O que são, quais existem e suas características.
© 2007 by Pearson Education ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 1 Reuso de Software.
PROGRAMAÇÃO II – PARTE 1 Profa. Maria Augusta Constante Puget.
Módulo II Capítulo 1: Orientação a Objetos
Equipe: Kéren Glaucya Marco Aurélio. INTRODUÇÃO  JCreator é um IDE, ou seja, é um Ambiente de Desenvolvimento Integrado, criado pela empresa Xinox Software.
Influencias sobre o Projeto da Linguagem
YOUR LOGO Tópicos Avançados em Internet Prof. Lincoln Ferreira Dantas Sistemas de Informação UNIESP – Presidente Epitácio.
Conteúdo de Laços de Repetição para os alunos do 7º ano EVL.
Transcrição da apresentação:

Características de Linguagens de Programação Aluno Rafael Menezes Lopes Professor João Araújo 2009/2 Apresentação da Linguagem EIFFEL

INTRODUÇÃO Eiffel é uma linguagem puramente orientada a objetos que enfatiza o projeto e construção de software reusável e de alta qualidade. Eiffel tem sintaxe muito simples e clara, bastante similar ao PASCAL e ALGOL. Eiffel tem um tipo único de dados - todos os tipos são classes - então é possível criar subclasses de classes básicas como a classe "INTEGER". A linguagem se propõe a ser de uso geral, podendo ser usada para desenvolvimento de aplicações financeiras, indústria, sistemas de telecomunicações, etc. Eiffel é a única linguagem a apresentar um inovador conceito, Projeto por Contrato. será discutido adiante.

HISTÓRICO A linguagem Eiffel foi concebida pela Eiffel Software (até então conhecida como ISE) em 1985, inicialmente como uma ferramenta interna para desenvolver diversas aplicações próprias. Os engenheiros de software da Eiffel necessitavam de um poderoso ambiente para integrar os modernos conceitos da engenharia de software e orientação a objetos e não havia simplesmente nada disponível. Por esta razão, o Dr. Bertrand Meyer, fundador da Eiffel Software, concebeu o compilador Eiffel 1. Ele foi apresentado ao público na primeira The International Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA) em outubro de 1986, onde ele atraiu considerável atenção, levando o Dr. Meyer a divulgá-lo como um produto comercial, no final de /3

HISTÓRICO A tecnologia se espalhou rapidamente ao longo dos anos seguintes, com um histórico de sucesso em diversos projetos industriais nos EUA, Canadá, Europa e Extremo Oriente. Logo no início, Eiffel também atraiu a atenção da comunidade acadêmica como uma ferramenta ideal para o ensino de programação em todos os níveis. Várias universidades de todo o mundo a têm usado no ensino primário de linguagens de programação. As sucessivas versões do ambiente surgiam em média de uma vez por ano. Eiffel tornou-se objeto de maior visibilidade com a publicação, em 1988, do livro Object-Oriented Software Construction pelo Dr. Bertrand Meyer, que rapidamente se tornou um best-seller e foi traduzido para oito línguas, o livro utiliza Eiffel para explicar e ilustrar os conceitos fundamentais de orientação a objeto e Design by ContractTM. 2/3

HISTÓRICO A última iteração envolvendo a tecnologia original do Eiffel foi a versão 2.3, lançada em meados de A próxima versão, Eiffel 3, foi escrito inteiramente em Eiffel. Eiffel 3 apresenta o Melting Ice Technology para recompilação rápida, um ambiente gráfico com interface totalmente inovadora para o usuário, com base em conceitos e avanços consideráveis em bibliotecas (gráficos, rede…) e otimização do código gerado. As primeiras versões foram lançadas em Unix e seguido pelo Linux, VMS, OS / 2, Windows (Windows 3.1, Windows 95, Windows NT). NET, e Mac OS X. Hoje, a tecnologia Eiffel continua a empurrar as fronteiras do desenvolvimento de software. Com a introdução do EiffelStudio TM, os programadores podem tirar partido de uma IDE eficiente – em todas as principais plataformas. Com EiffelEnvision TM, os programadores podem ainda usar o poder da linguagem Eiffel dentro do popular ambiente do Microsoft Visual Studio. NET. 3/3

CARACTERÍSTICAS DA LINGUAGEM Linguagem puramente orientada a objetos; Definição única de dados: a Classe; Projeto por Contrato; Gerenciamento de memória automática, normalmente implementado por coleta de lixo (garbage collection); Herança, incluindo herança múltipla; Tipagem Estática (em tempo de compilação); Separador-livre, a medida em que pontos e vírgulas são opcionais; Não é case sensitive (não diferencia maiúsculas de minúsculas).

EXEMPLO A

INTERFACE COM OUTRAS LINGUAGENS

Texto retirado do site da Eiffel Software: "Um conceito revolucionário para se fazer softwares confiáveis, introduzido pela Eiffel e apenas implementada na Eiffel. A idéia básica é que para fazer software confiável não é suficiente ser "cuidadoso" e utilizar todo tipo de checagem ao longo do código. Uma abordagem mais sistemática é essencial. Através do conceito de projeto por contrato, você enxerga seu sistema como feito de um número de componentes complementares - as classes em Eiffel - os quais cooperam baseados em declarações precisas de obrigações e benefícios mútuos: contratos, assim como contratos entre cliente e empresa. Eiffel obriga diretamente o projeto por contrato através de construções como class invariants, pré-condições e pós-condições. DESIGN BY CONTRACT 1/3

Admita, por exemplo, que nós queremos que nossos contadores sejam sempre não-negativos. A classe terá agora uma invariante indexing... class COUNTER feature... invariant item >= 0 end e a feature decremento agora necessita de uma pré-condição, para certificar-se de que o cliente não realiza uma operação ilegal. DESIGN BY CONTRACT

A palavra-chave require inicia a pré-condição. decrement is -- Decrease counter by one require item > 0 do item := item -1 ensure item = old item -1 end. -- old "item" representa o valor de "item" antes do método ser chamado. A palavra-chave ensure inicia a pós-condição. " DESIGN BY CONTRACT 2/3

A pré-condição diz ao cliente: "Nem pense em me chamar a se não tiver absoluta certeza de que counter é estritamente positivo" A pós-condição diz: "Se você for um bom garoto (cumpriu a pré-condição), aqui está o que eu prometo fazer para você quando retornar: eu irei decrementar counter em uma unidade. Pré-condições, pós-condições e invariantes são chamadas asserções. " DESIGN BY CONTRACT 3/3

ASSERÇÕES Segundo a Sun: "Uma asserção é um comando contendo uma expressão booleana que o programador acredita ser verdadeira no momento que o comando é executado". Ou seja, a asserção é um recurso da linguagem para testar as suposições feitas pelo programador dentro do código. Verificação de Asserções: Asserções como pré e pós-condições tem um primeiro papel de documentar o método. A verificação de asserções pode ser habilitada em tempo de execução. Se uma asserção não é satisfeita, então: Se for uma pré-condição, o cliente do método possui uma falha. Se for uma pós-condição, o método provedor é falho. A asserção favorece em muito a confiabilidade de um programa, devido as suas prés e pós-condições.

RESUMO DE SINTAXE Condicional Laços 1/4

RESUMO DE SINTAXE Rotina Funções 2/4

RESUMO DE SINTAXE Atributos (variáveis e Constantes) 3/4

RESUMO DE SINTAXE Criação de Objetos Projeto por Contrato 4/4

HELLO WORLD 2/2

99 BOTTLES OF BEER 1/2

EXEMPLO B

APENDICE A

BIBLIOGRAFIA SITES: