2. Sobre Mim
Tiago Bockholt
◦ (2003.2 – 2008.2) Graduação em Eng. da
Computação (Poli-UPE)
2006.1 Semestre acadêmico na TU-BS.
2006.2 Desenvolvedor na GNS-Systems (Projeto
Datafinder).
2007.1 Desenvolvedor na dotX (Zope e Plone).
2008.1 Desenvolvedor na Ávila Soluções (.NET)
◦ (2009.1 – 2011.1) Mestrado CIN-UFPE.
2009.1 – (dias atuais) Consultor na Ávila
Soluções.
3. .NET Framework
Arquitetura
Iniciativa da empresa Microsoft,
que visa uma plataforma única
para desenvolvimento e execução
de sistemas e aplicações.
Todo e qualquer código gerado
para .NET, pode ser executado em
qualquer dispositivo que possua
um framework de tal plataforma.
4. CLR (Common Language Runtime)
1. O CLR oferece serviços compartilhados as
linguagens .NET.
2. Garbage Collector
3. Compilação JIT (just-in-time
4. Suporte ao Visual Studio.
Compartilhar esses recursos proporciona duas
grandes vantagens aos implementadores de
linguagem: é mais fácil implementar uma linguagem
porque grande parte do trabalho de engenharia de
nível inferior já foi feita; e as linguagens em
execução no CLR podem ser integradas
tranqüilamente.
Compartilhar as bibliotecas e as estruturas permite
que novas linguagens do CLR sejam criadas a partir
do trabalho de outras.
5. Python
Arquitetura
Python é uma linguagem de programação de alto
nível, interpretada, imperativa, orientada a objetos,
de tipagem dinâmica e forte.
1. Concebido no final de 1989.
2. 1ª versão lançada em 1994.
3. Atualmente a linguagem é usada em
diversas áreas, como servidores de
aplicação e computação gráfica.
6. IronPython
Definição
IronPython é uma implementação da linguagem de
programação Python escrita em C#, para plataforma.NET e
Mono, criada por Jim Hugunin.
A Versão 1.0 foi lançada a 5 de Setembro de 2006[1].
A Versão 2.0 foi lançada a 10 de Dezembro de 2008[2].
IronPython é totalmente escrita em C#.
Arquitetura
7. IronPython
IronPython IronRuby C# VB.NET Others…
Dynamic Language Runtime
Expression Trees Dynamic Dispatch Call Site Caching
Object JavaScript Python Ruby COM
Binder Binder Binder Binder Binder
8. DLR (Dynamic Language Runtime)
1. Incluido no .NET Framework 4.
O CLR passará a ter um conjunto de serviços projetados
especificamente para atender às necessidades das linguagens
dinâmicas.
O DLR agrega funcionalidades como um sistema de tipos
dinâmico compartilhado, um modelo de hospedagem padrão e
suporte para facilitar a geração rápida de códigos dinâmicos e
tabelas de símbolos rápidos.
Com esses recursos adicionais, é muito mais fácil criar
implementações de linguagem dinâmica de alta qualidade para o
.NET.
Além disso, esses recursos permitem que as linguagens
dinâmicas criadas a partir do DLR compartilhem bibliotecas
escritas em outras linguagens dinâmicas ou em linguagens
estáticas baseadas no CLR (Principal Diferencial).
9. DLR (Dynamic Language Runtime)
Interação entre linguagens dinâmicas e
linguagens estáticas baseadas no CLR.
10. C# utilizando DLR
Quando os operadores são dynamic…
• seleção do tipo do objeto atribuida em tempo de execução
• Em tempo de execução, o tipo corrente será dynamic
• Qualquer operação terá como resultado um dynamic
11. Conclusões
1. IronPython tira proveito de todas as virtudes de Python.
2. Com o projeto mono, a aplicação usando IronPython fica portável tanto em
ambientes Windows como Linux.
3. IronPython permite utilizar o visual studio como ferramenta de
desemvolvimento.
4. A consolidação do DLR vai permitir uma maior integração entre as
diferentes linguagens de programação. Sejam elas, estáticas ou dinâmicas.
5. Construção de GUI utilizando ironpython pode ser feita WYSIWYG.
6. Reutilização das bibliotecas .NET já implementadas.
7. Permite implementar multiparadigmas no .NET Framework;
IronPython suporta os vários paradigmas de programação:
Programação estruturada
Programação Orientada a Objeto
Programação Funcional