View
1.107
Download
2
Category
Preview:
Citation preview
Tiago Bockholt
Powered by
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.
Sobre Mim
Arquitetura
.NET Framework
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.
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.
CLR (Common Language Runtime)
Arquitetura
Python
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.
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
IronPython
IronPython
Python Binder
Ruby Binder
COM Binder
JavaScript Binder
Object Binder
Dynamic Language Runtime Expression Trees Dynamic Dispatch Call Site Caching
IronPython IronRuby C# VB.NET Others…
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).
DLR (Dynamic Language Runtime)
DLR (Dynamic Language Runtime)
Interação entre linguagens dinâmicas e linguagens estáticas baseadas no CLR.
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
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
Recommended