Eiffel

Propaganda
•
Características de Linguagens de Programação
•Apresentação
da Linguagem EIFFEL
Aluno Rafael Menezes Lopes
Professor João Araújo
2009/2
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
1/3
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 1986.
HISTÓRICO
2/3
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.
HISTÓRICO
3/3
A última iteração envolvendo a tecnologia original do Eiffel foi a versão
2.3, lançada em meados de 1990. 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.
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
DESIGN BY CONTRACT
1/3
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
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.
"
2/3
DESIGN BY CONTRACT
3/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. "
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:
http://www.eiffel.com
http://pt.wikipedia.org/wiki/Eiffel_(linguagem_de_programa%C3%A7%C3%A3o)
http://www.jvoegele.com/software/langcomp.html
http://wapedia.mobi/pt/Eiffel_(linguagem_de_programa%C3%A7%C3%A3o)
http://www.infor.uva.es/~felix/priii/sintaxis.html
http://linguagemeiffel.wordpress.com/
Download