SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
Tiago Bockholt




Powered by
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.
.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.
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.
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.
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
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
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).
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

Weitere ähnliche Inhalte

Was ist angesagt?

Slide PyQt versus Pyside
Slide PyQt versus PysideSlide PyQt versus Pyside
Slide PyQt versus PysideWill Filho
 
Viagem pelas VMs do python
Viagem pelas VMs do pythonViagem pelas VMs do python
Viagem pelas VMs do pythonRodrigo Araújo
 
Troubleshooting docker
Troubleshooting dockerTroubleshooting docker
Troubleshooting dockerRafael Gomes
 
Precisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestruturaPrecisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestruturaRafael Gomes
 
Ruby: Simples e Expressivo - Women Techmakers João Pessoa
Ruby: Simples e Expressivo - Women Techmakers João PessoaRuby: Simples e Expressivo - Women Techmakers João Pessoa
Ruby: Simples e Expressivo - Women Techmakers João PessoaWomen Techmakers João Pessoa
 
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020Renato Groff
 
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry Pires
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry PiresNovidades do CSharp 4.0 - C. Augusto Proiete & Henrry Pires
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry PiresComunidade NetPonto
 

Was ist angesagt? (12)

C sharp lesson1
C sharp lesson1C sharp lesson1
C sharp lesson1
 
Slide PyQt versus Pyside
Slide PyQt versus PysideSlide PyQt versus Pyside
Slide PyQt versus Pyside
 
As Novidades do CSharp 5.0
As Novidades do CSharp 5.0As Novidades do CSharp 5.0
As Novidades do CSharp 5.0
 
Novidades do CSharp 4.0
Novidades do CSharp 4.0Novidades do CSharp 4.0
Novidades do CSharp 4.0
 
Viagem pelas VMs do python
Viagem pelas VMs do pythonViagem pelas VMs do python
Viagem pelas VMs do python
 
Troubleshooting docker
Troubleshooting dockerTroubleshooting docker
Troubleshooting docker
 
Precisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestruturaPrecisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestrutura
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Seminário: PHP
Seminário: PHPSeminário: PHP
Seminário: PHP
 
Ruby: Simples e Expressivo - Women Techmakers João Pessoa
Ruby: Simples e Expressivo - Women Techmakers João PessoaRuby: Simples e Expressivo - Women Techmakers João Pessoa
Ruby: Simples e Expressivo - Women Techmakers João Pessoa
 
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
 
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry Pires
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry PiresNovidades do CSharp 4.0 - C. Augusto Proiete & Henrry Pires
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry Pires
 

Andere mochten auch

Grails from scratch
Grails from scratchGrails from scratch
Grails from scratchUFPA
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeWende Mendes
 
Grails: O Java em Alta Produtividade
Grails: O Java em Alta ProdutividadeGrails: O Java em Alta Produtividade
Grails: O Java em Alta ProdutividadeCleórbete Santos
 
Produtividade em Java com Grails
Produtividade em Java com GrailsProdutividade em Java com Grails
Produtividade em Java com GrailsWanderson Oliveira
 
Introdução a Grails: Um framework veloz e poderoso
Introdução a Grails: Um framework veloz e poderosoIntrodução a Grails: Um framework veloz e poderoso
Introdução a Grails: Um framework veloz e poderosoBruno Lopes
 
Construindo uma startup em 54 horas com Python
Construindo uma startup em 54 horas com PythonConstruindo uma startup em 54 horas com Python
Construindo uma startup em 54 horas com Pythonpugpe
 
Grails parte 1 - introdução
Grails   parte 1 - introduçãoGrails   parte 1 - introdução
Grails parte 1 - introduçãoJosino Rodrigues
 
Automatizando tarefas com Python
Automatizando tarefas com PythonAutomatizando tarefas com Python
Automatizando tarefas com Pythonpugpe
 
Palestra MVP living lab ms
Palestra MVP   living lab msPalestra MVP   living lab ms
Palestra MVP living lab msBonoBee
 
Palestra MVP - Estudo de Casos
Palestra MVP - Estudo de CasosPalestra MVP - Estudo de Casos
Palestra MVP - Estudo de CasosBonoBee
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com pythonBruno Rocha
 
Projeto Amadeus
Projeto AmadeusProjeto Amadeus
Projeto Amadeuspugpe
 
Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Vinicius Vieira
 

Andere mochten auch (18)

Grails
GrailsGrails
Grails
 
Grails from scratch
Grails from scratchGrails from scratch
Grails from scratch
 
Grails com Nexus e Codenarc
Grails com Nexus e CodenarcGrails com Nexus e Codenarc
Grails com Nexus e Codenarc
 
Grails
GrailsGrails
Grails
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipe
 
Groovy & grails
Groovy & grailsGroovy & grails
Groovy & grails
 
Grails: O Java em Alta Produtividade
Grails: O Java em Alta ProdutividadeGrails: O Java em Alta Produtividade
Grails: O Java em Alta Produtividade
 
Produtividade em Java com Grails
Produtividade em Java com GrailsProdutividade em Java com Grails
Produtividade em Java com Grails
 
Introdução a Grails: Um framework veloz e poderoso
Introdução a Grails: Um framework veloz e poderosoIntrodução a Grails: Um framework veloz e poderoso
Introdução a Grails: Um framework veloz e poderoso
 
Construindo uma startup em 54 horas com Python
Construindo uma startup em 54 horas com PythonConstruindo uma startup em 54 horas com Python
Construindo uma startup em 54 horas com Python
 
Grails parte 1 - introdução
Grails   parte 1 - introduçãoGrails   parte 1 - introdução
Grails parte 1 - introdução
 
Curso de Grails
Curso de GrailsCurso de Grails
Curso de Grails
 
Automatizando tarefas com Python
Automatizando tarefas com PythonAutomatizando tarefas com Python
Automatizando tarefas com Python
 
Palestra MVP living lab ms
Palestra MVP   living lab msPalestra MVP   living lab ms
Palestra MVP living lab ms
 
Palestra MVP - Estudo de Casos
Palestra MVP - Estudo de CasosPalestra MVP - Estudo de Casos
Palestra MVP - Estudo de Casos
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com python
 
Projeto Amadeus
Projeto AmadeusProjeto Amadeus
Projeto Amadeus
 
Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#
 

Ähnlich wie Iron Python

DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoLorival Smolski Chapuis
 
Jogos pe logica_aplicada_apostila_c_sharp
Jogos pe logica_aplicada_apostila_c_sharpJogos pe logica_aplicada_apostila_c_sharp
Jogos pe logica_aplicada_apostila_c_sharpMarcio Chiaveli
 
O Projeto Mono: Aplicações .NET para sistemas não Windows
O Projeto Mono: Aplicações .NET para sistemas não WindowsO Projeto Mono: Aplicações .NET para sistemas não Windows
O Projeto Mono: Aplicações .NET para sistemas não WindowsAlessandro Binhara
 
python_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfpython_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfProfIvanSaboia
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicRicardo Guerra Freitas
 
Palestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não Windows
Palestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não WindowsPalestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não Windows
Palestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não WindowsAlessandro Binhara
 
Fundamentos do .NET Framework - Parte 1
Fundamentos do .NET Framework - Parte 1Fundamentos do .NET Framework - Parte 1
Fundamentos do .NET Framework - Parte 1Julian Correa
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeAlessandro Binhara
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoRegis Magalhães
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioGeovani Ferreira Gonçalves
 
10 Linguagens de programação essenciais
10 Linguagens de programação essenciais10 Linguagens de programação essenciais
10 Linguagens de programação essenciaisAlexandre Oliveira
 

Ähnlich wie Iron Python (20)

DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - Introdução
 
Jogos pe logica_aplicada_apostila_c_sharp
Jogos pe logica_aplicada_apostila_c_sharpJogos pe logica_aplicada_apostila_c_sharp
Jogos pe logica_aplicada_apostila_c_sharp
 
Apostila de C# & Asp.Net
Apostila de C# & Asp.NetApostila de C# & Asp.Net
Apostila de C# & Asp.Net
 
O Projeto Mono: Aplicações .NET para sistemas não Windows
O Projeto Mono: Aplicações .NET para sistemas não WindowsO Projeto Mono: Aplicações .NET para sistemas não Windows
O Projeto Mono: Aplicações .NET para sistemas não Windows
 
python_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfpython_para_desenvolvedores.pdf
python_para_desenvolvedores.pdf
 
Int305 projeto mono-final
Int305 projeto mono-finalInt305 projeto mono-final
Int305 projeto mono-final
 
O projeto Mono
O projeto MonoO projeto Mono
O projeto Mono
 
Python for Maemo
Python for MaemoPython for Maemo
Python for Maemo
 
1º FasS2B 2010
1º FasS2B 20101º FasS2B 2010
1º FasS2B 2010
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 
Palestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não Windows
Palestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não WindowsPalestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não Windows
Palestra do TechEd : O Projeto Mono: Aplicações .NET para sistemas não Windows
 
Fundamentos do .NET Framework - Parte 1
Fundamentos do .NET Framework - Parte 1Fundamentos do .NET Framework - Parte 1
Fundamentos do .NET Framework - Parte 1
 
.NET Open Source
.NET Open Source.NET Open Source
.NET Open Source
 
Android juliana-mono
Android juliana-monoAndroid juliana-mono
Android juliana-mono
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente Mainframe
 
Java 01 Java Visao Geral
Java 01 Java Visao GeralJava 01 Java Visao Geral
Java 01 Java Visao Geral
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral Detalhado
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual Studio
 
10 Linguagens de programação essenciais
10 Linguagens de programação essenciais10 Linguagens de programação essenciais
10 Linguagens de programação essenciais
 

Mehr von pugpe

E o que danado é o PUG-PE?
E o que danado é o PUG-PE?E o que danado é o PUG-PE?
E o que danado é o PUG-PE?pugpe
 
Intro
IntroIntro
Intropugpe
 
Palestra sobre Collections com Python
Palestra sobre Collections com PythonPalestra sobre Collections com Python
Palestra sobre Collections com Pythonpugpe
 
Rain Toolbox - Previsão de Chuvas
Rain Toolbox -  Previsão de ChuvasRain Toolbox -  Previsão de Chuvas
Rain Toolbox - Previsão de Chuvaspugpe
 
NoSQL com Cassandra e Python
NoSQL com Cassandra e PythonNoSQL com Cassandra e Python
NoSQL com Cassandra e Pythonpugpe
 
Visualização da Informação
Visualização da InformaçãoVisualização da Informação
Visualização da Informaçãopugpe
 
Python e Cadeias de Markov GHMM
Python e Cadeias de Markov GHMMPython e Cadeias de Markov GHMM
Python e Cadeias de Markov GHMMpugpe
 
Criando comunidades bem sucedidas
Criando comunidades bem sucedidasCriando comunidades bem sucedidas
Criando comunidades bem sucedidaspugpe
 
Palestra sobre Inteligência Coletiva
Palestra sobre Inteligência ColetivaPalestra sobre Inteligência Coletiva
Palestra sobre Inteligência Coletivapugpe
 
Blender Com Python
Blender Com PythonBlender Com Python
Blender Com Pythonpugpe
 
Wikilytics
WikilyticsWikilytics
Wikilyticspugpe
 
Desenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engineDesenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app enginepugpe
 
Qml + Python
Qml + PythonQml + Python
Qml + Pythonpugpe
 
Pip - Instalando Pacotes facilmente para Python
Pip - Instalando Pacotes facilmente para PythonPip - Instalando Pacotes facilmente para Python
Pip - Instalando Pacotes facilmente para Pythonpugpe
 
Pug pe vii - luciano rodrigues - debugger
Pug pe vii - luciano rodrigues - debuggerPug pe vii - luciano rodrigues - debugger
Pug pe vii - luciano rodrigues - debuggerpugpe
 
Pug pe viii - luciano rodrigues - debugger
Pug pe viii - luciano rodrigues - debuggerPug pe viii - luciano rodrigues - debugger
Pug pe viii - luciano rodrigues - debuggerpugpe
 
Python e Django
Python e DjangoPython e Django
Python e Djangopugpe
 
Python e Dispositivos Móveis
Python e Dispositivos MóveisPython e Dispositivos Móveis
Python e Dispositivos Móveispugpe
 
Coding Dojo e Test Driven Development
Coding Dojo e Test Driven DevelopmentCoding Dojo e Test Driven Development
Coding Dojo e Test Driven Developmentpugpe
 
Redes Neurais e Python
Redes Neurais e PythonRedes Neurais e Python
Redes Neurais e Pythonpugpe
 

Mehr von pugpe (20)

E o que danado é o PUG-PE?
E o que danado é o PUG-PE?E o que danado é o PUG-PE?
E o que danado é o PUG-PE?
 
Intro
IntroIntro
Intro
 
Palestra sobre Collections com Python
Palestra sobre Collections com PythonPalestra sobre Collections com Python
Palestra sobre Collections com Python
 
Rain Toolbox - Previsão de Chuvas
Rain Toolbox -  Previsão de ChuvasRain Toolbox -  Previsão de Chuvas
Rain Toolbox - Previsão de Chuvas
 
NoSQL com Cassandra e Python
NoSQL com Cassandra e PythonNoSQL com Cassandra e Python
NoSQL com Cassandra e Python
 
Visualização da Informação
Visualização da InformaçãoVisualização da Informação
Visualização da Informação
 
Python e Cadeias de Markov GHMM
Python e Cadeias de Markov GHMMPython e Cadeias de Markov GHMM
Python e Cadeias de Markov GHMM
 
Criando comunidades bem sucedidas
Criando comunidades bem sucedidasCriando comunidades bem sucedidas
Criando comunidades bem sucedidas
 
Palestra sobre Inteligência Coletiva
Palestra sobre Inteligência ColetivaPalestra sobre Inteligência Coletiva
Palestra sobre Inteligência Coletiva
 
Blender Com Python
Blender Com PythonBlender Com Python
Blender Com Python
 
Wikilytics
WikilyticsWikilytics
Wikilytics
 
Desenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engineDesenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engine
 
Qml + Python
Qml + PythonQml + Python
Qml + Python
 
Pip - Instalando Pacotes facilmente para Python
Pip - Instalando Pacotes facilmente para PythonPip - Instalando Pacotes facilmente para Python
Pip - Instalando Pacotes facilmente para Python
 
Pug pe vii - luciano rodrigues - debugger
Pug pe vii - luciano rodrigues - debuggerPug pe vii - luciano rodrigues - debugger
Pug pe vii - luciano rodrigues - debugger
 
Pug pe viii - luciano rodrigues - debugger
Pug pe viii - luciano rodrigues - debuggerPug pe viii - luciano rodrigues - debugger
Pug pe viii - luciano rodrigues - debugger
 
Python e Django
Python e DjangoPython e Django
Python e Django
 
Python e Dispositivos Móveis
Python e Dispositivos MóveisPython e Dispositivos Móveis
Python e Dispositivos Móveis
 
Coding Dojo e Test Driven Development
Coding Dojo e Test Driven DevelopmentCoding Dojo e Test Driven Development
Coding Dojo e Test Driven Development
 
Redes Neurais e Python
Redes Neurais e PythonRedes Neurais e Python
Redes Neurais e Python
 

Iron Python

  • 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