SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Rodrigo P. M. de Araújo
rodrigo.araujo@veezor.com
Gerenciamento de memória
Gerenciamento de threads
Desempenho
Coleta de lixo
Global Interpreter
       Lock
JIT (Just in Time)
 Implementação de referencia do Python
 Versão atual 2.7.1 e 3.1.3(incompatível com a série 2)
 Release 1.0 em 1994
 Release 2.2 em Dezembro de 2001
 Release 2.5 em Setembro de 2006
 Multiplataforma
 Número vasto de extensões
 Possui GIL
 Não possui JIT
 Coletor de lixo: Contagem de referências
 Códigos em C
 “Difícil de manter”.
 “Difícil modificar”.
 Difícil voltar atrás na escolha do gerenciamento de
  memória e threads.
 JIT (x86) – Custo de manutenção alto
PEP 3003 – Python Language
        Moratorium
 Python + JVM
 Anunciado em 26/11/2000
 Jython 2.2 – 2007
 Jython 2.5 – 2009
 Não existe GIL
 Vários algoritmos de coleta de lixo
 Possui JIT
 Interoperabilidade com eco-sistema Java
 Sem suporte a extensões C
 Multiplataforma
 Python + Microsoft .Net
 Versão atual 2.6 / Python 2.6
 Versão 2.7 em estágio beta
 Não existe GIL.
 Possui JIT
 Vários algoritmos de coleta de lixo
 Interoperabilidade com eco-sistema .Net
 Suporte parcial a extensões C (IronClad)
 Multiplataforma
 Dynamic Language Runtime
 SilverLight
 Windows Forms
 Interpretador Python escrito em
             Python
 Interpretador Python escrito em RPython +
 ferramenta de tradução para RPython.
 Subconjunto da linguagem Python
 Permite inferência de tipos
 Linguagem de alto nível
 Códigos de alto nível
 Aspectos ortogonais são inseridos durante a tradução
   Estratégia de coleta de lixo
   Modelo de threads
   JIT
 Suporta vários algoritmos de coleta de lixo
 Suporta mais de um modelo de threads
 Vários tipos de JIT já foram implementados
 Ferramenta de tradução permite gerar código em:
   C
   .Net
   Java
 Possibilidade de unificar o desenvolvimento do
 CPython, IronPython, Jython.
 Python + Python = Python
 Anunciado em 2003
 PyPy 1.0 – 2007 – Python 2.4
 PyPy 1.4 – 2010 – Python 2.5
 PyPy 1.5 – 2011 – Python 2.7
 Possui GIL!!! # remoção programada
 Possui JIT (x86, x86-64) # arm no release 1.5
 Suporte parcial a extensões C (cpyext)
 Multiplataforma
rodrigo.araujo@veezor.com
    twitter.com/fenrrir

Contenu connexe

Tendances

Apresentação Python Poli
Apresentação Python PoliApresentação Python Poli
Apresentação Python PoliRodrigo Lira
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoÁlvaro Justen
 
TDC2016POA | Trilha Python - Python Assíncrono: tudo ao mesmo tempo agora
TDC2016POA | Trilha Python - Python Assíncrono: tudo ao mesmo tempo agoraTDC2016POA | Trilha Python - Python Assíncrono: tudo ao mesmo tempo agora
TDC2016POA | Trilha Python - Python Assíncrono: tudo ao mesmo tempo agoratdc-globalcode
 
Slide PyQt versus Pyside
Slide PyQt versus PysideSlide PyQt versus Pyside
Slide PyQt versus PysideWill Filho
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em CDiego Santos
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o pythonRodrigo Lira
 
Python Para Administradores Linux
Python Para Administradores LinuxPython Para Administradores Linux
Python Para Administradores Linuxguest1eea6537
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoLuciano Ramalho
 
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores JavaTDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores JavaRafael Chaves
 
Iron Python
Iron PythonIron Python
Iron Pythonpugpe
 
Python Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem PythonPython Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem Pythonantonio sérgio nogueira
 

Tendances (20)

Py dojo
Py dojoPy dojo
Py dojo
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao git
 
Apresentação Python Poli
Apresentação Python PoliApresentação Python Poli
Apresentação Python Poli
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremo
 
TDC2016POA | Trilha Python - Python Assíncrono: tudo ao mesmo tempo agora
TDC2016POA | Trilha Python - Python Assíncrono: tudo ao mesmo tempo agoraTDC2016POA | Trilha Python - Python Assíncrono: tudo ao mesmo tempo agora
TDC2016POA | Trilha Python - Python Assíncrono: tudo ao mesmo tempo agora
 
Palestra n roma
Palestra n romaPalestra n roma
Palestra n roma
 
Slide PyQt versus Pyside
Slide PyQt versus PysideSlide PyQt versus Pyside
Slide PyQt versus Pyside
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em C
 
Web m
Web mWeb m
Web m
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o python
 
Python Para Administradores Linux
Python Para Administradores LinuxPython Para Administradores Linux
Python Para Administradores Linux
 
Como tornar-se um programador Python melhor
Como tornar-se um programador Python melhorComo tornar-se um programador Python melhor
Como tornar-se um programador Python melhor
 
Python Poli 2010
Python Poli 2010Python Poli 2010
Python Poli 2010
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojo
 
Minicurso: Python e suas baterias incluídas
Minicurso: Python e suas baterias incluídasMinicurso: Python e suas baterias incluídas
Minicurso: Python e suas baterias incluídas
 
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores JavaTDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
 
PyDojo
PyDojoPyDojo
PyDojo
 
Iron Python
Iron PythonIron Python
Iron Python
 
Python Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem PythonPython Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem Python
 
Git Básico
Git BásicoGit Básico
Git Básico
 

En vedette

Formazione ysei 3° lezione
Formazione ysei 3° lezioneFormazione ysei 3° lezione
Formazione ysei 3° lezioneMunir Ch
 
Niaaaaaaaaaaaaaaaaaa
NiaaaaaaaaaaaaaaaaaaNiaaaaaaaaaaaaaaaaaa
Niaaaaaaaaaaaaaaaaaapaulibahamon
 
CURRICULUM VITAE OF MADELEINE VAN VUUREN
CURRICULUM VITAE OF MADELEINE VAN VUURENCURRICULUM VITAE OF MADELEINE VAN VUUREN
CURRICULUM VITAE OF MADELEINE VAN VUURENmadeleine van vuuren
 
Atidenu webinar 1: Sharable Content and Adding Value
Atidenu webinar 1: Sharable Content and Adding ValueAtidenu webinar 1: Sharable Content and Adding Value
Atidenu webinar 1: Sharable Content and Adding ValueLisa Colton
 
MySQL Performance Schema, Open Source India, 2015
MySQL Performance Schema, Open Source India, 2015MySQL Performance Schema, Open Source India, 2015
MySQL Performance Schema, Open Source India, 2015Mayank Prasad
 
Nearby Messages API
Nearby Messages APINearby Messages API
Nearby Messages APIakkuma
 
As a human i want
As a human i wantAs a human i want
As a human i wantLaura Moore
 
Essential chemistry for Biochemistry
Essential chemistry for BiochemistryEssential chemistry for Biochemistry
Essential chemistry for BiochemistryEdwin Thekkinen
 
Respiratory system
Respiratory systemRespiratory system
Respiratory systemsgettle
 
Kelompok tik 2 (sma)
Kelompok  tik 2 (sma)Kelompok  tik 2 (sma)
Kelompok tik 2 (sma)arimbinadya
 
Presentasi mk 160 ford
Presentasi mk 160 fordPresentasi mk 160 ford
Presentasi mk 160 fordAkhmad Nasir
 
La calidad de la salud en colombia
La calidad de la salud en colombiaLa calidad de la salud en colombia
La calidad de la salud en colombiaDiego Gaviria
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digitalDulce Barrera
 

En vedette (15)

Formazione ysei 3° lezione
Formazione ysei 3° lezioneFormazione ysei 3° lezione
Formazione ysei 3° lezione
 
Niaaaaaaaaaaaaaaaaaa
NiaaaaaaaaaaaaaaaaaaNiaaaaaaaaaaaaaaaaaa
Niaaaaaaaaaaaaaaaaaa
 
Talous ja Yhteiskunta 1/2007
Talous ja Yhteiskunta 1/2007Talous ja Yhteiskunta 1/2007
Talous ja Yhteiskunta 1/2007
 
CURRICULUM VITAE OF MADELEINE VAN VUUREN
CURRICULUM VITAE OF MADELEINE VAN VUURENCURRICULUM VITAE OF MADELEINE VAN VUUREN
CURRICULUM VITAE OF MADELEINE VAN VUUREN
 
Tablab ita
Tablab itaTablab ita
Tablab ita
 
Atidenu webinar 1: Sharable Content and Adding Value
Atidenu webinar 1: Sharable Content and Adding ValueAtidenu webinar 1: Sharable Content and Adding Value
Atidenu webinar 1: Sharable Content and Adding Value
 
MySQL Performance Schema, Open Source India, 2015
MySQL Performance Schema, Open Source India, 2015MySQL Performance Schema, Open Source India, 2015
MySQL Performance Schema, Open Source India, 2015
 
Nearby Messages API
Nearby Messages APINearby Messages API
Nearby Messages API
 
As a human i want
As a human i wantAs a human i want
As a human i want
 
Essential chemistry for Biochemistry
Essential chemistry for BiochemistryEssential chemistry for Biochemistry
Essential chemistry for Biochemistry
 
Respiratory system
Respiratory systemRespiratory system
Respiratory system
 
Kelompok tik 2 (sma)
Kelompok  tik 2 (sma)Kelompok  tik 2 (sma)
Kelompok tik 2 (sma)
 
Presentasi mk 160 ford
Presentasi mk 160 fordPresentasi mk 160 ford
Presentasi mk 160 ford
 
La calidad de la salud en colombia
La calidad de la salud en colombiaLa calidad de la salud en colombia
La calidad de la salud en colombia
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digital
 

Similaire à Python Implementações: CPython, Jython, IronPython e PyPy

Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação PythonJunior Sobrenome
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsHelio Colombe
 
python_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfpython_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfProfIvanSaboia
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e TkCarlos Campani
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonFlávio Ribeiro
 
Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Jonh Edson
 
Python-purple: Desenvolvendo bindings para Python usando o Cython
Python-purple: Desenvolvendo bindings para Python usando o CythonPython-purple: Desenvolvendo bindings para Python usando o Cython
Python-purple: Desenvolvendo bindings para Python usando o CythonBruno Abinader
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Pythonrodrigopex
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Flávio Ribeiro
 
Python e Dispositivos Móveis
Python e Dispositivos MóveisPython e Dispositivos Móveis
Python e Dispositivos Móveispugpe
 
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
 
A lógica do Python e seus termos
A lógica do Python e seus termosA lógica do Python e seus termos
A lógica do Python e seus termosValore I/O
 

Similaire à Python Implementações: CPython, Jython, IronPython e PyPy (20)

Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Apresentação QtConBr
Apresentação QtConBrApresentação QtConBr
Apresentação QtConBr
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 
Apresentacao sfd-poa
Apresentacao sfd-poaApresentacao sfd-poa
Apresentacao sfd-poa
 
Python, CPython, Pythonico, Cython
Python, CPython, Pythonico, CythonPython, CPython, Pythonico, Cython
Python, CPython, Pythonico, Cython
 
Python 3k
Python 3kPython 3k
Python 3k
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação Python
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - Português
 
python_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfpython_para_desenvolvedores.pdf
python_para_desenvolvedores.pdf
 
Introdução à linguagem python
Introdução à linguagem pythonIntrodução à linguagem python
Introdução à linguagem python
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando Python
 
Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0
 
Python-purple: Desenvolvendo bindings para Python usando o Cython
Python-purple: Desenvolvendo bindings para Python usando o CythonPython-purple: Desenvolvendo bindings para Python usando o Cython
Python-purple: Desenvolvendo bindings para Python usando o Cython
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 
Python e Dispositivos Móveis
Python e Dispositivos MóveisPython e Dispositivos Móveis
Python e Dispositivos Móveis
 
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
 
A lógica do Python e seus termos
A lógica do Python e seus termosA lógica do Python e seus termos
A lógica do Python e seus termos
 

Python Implementações: CPython, Jython, IronPython e PyPy

  • 1. Rodrigo P. M. de Araújo rodrigo.araujo@veezor.com
  • 6.
  • 7.  Implementação de referencia do Python  Versão atual 2.7.1 e 3.1.3(incompatível com a série 2)  Release 1.0 em 1994  Release 2.2 em Dezembro de 2001  Release 2.5 em Setembro de 2006  Multiplataforma  Número vasto de extensões
  • 8.
  • 9.
  • 10.  Possui GIL  Não possui JIT  Coletor de lixo: Contagem de referências
  • 11.  Códigos em C  “Difícil de manter”.  “Difícil modificar”.  Difícil voltar atrás na escolha do gerenciamento de memória e threads.
  • 12.  JIT (x86) – Custo de manutenção alto
  • 13. PEP 3003 – Python Language Moratorium
  • 14.
  • 15.
  • 16.
  • 17.  Python + JVM  Anunciado em 26/11/2000  Jython 2.2 – 2007  Jython 2.5 – 2009  Não existe GIL  Vários algoritmos de coleta de lixo  Possui JIT  Interoperabilidade com eco-sistema Java  Sem suporte a extensões C  Multiplataforma
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.  Python + Microsoft .Net  Versão atual 2.6 / Python 2.6  Versão 2.7 em estágio beta  Não existe GIL.  Possui JIT  Vários algoritmos de coleta de lixo  Interoperabilidade com eco-sistema .Net  Suporte parcial a extensões C (IronClad)  Multiplataforma
  • 24.
  • 25.
  • 26.  Dynamic Language Runtime  SilverLight  Windows Forms
  • 27.
  • 28.
  • 29.  Interpretador Python escrito em Python
  • 30.  Interpretador Python escrito em RPython + ferramenta de tradução para RPython.
  • 31.  Subconjunto da linguagem Python  Permite inferência de tipos  Linguagem de alto nível
  • 32.  Códigos de alto nível  Aspectos ortogonais são inseridos durante a tradução  Estratégia de coleta de lixo  Modelo de threads  JIT  Suporta vários algoritmos de coleta de lixo  Suporta mais de um modelo de threads  Vários tipos de JIT já foram implementados
  • 33.  Ferramenta de tradução permite gerar código em:  C  .Net  Java  Possibilidade de unificar o desenvolvimento do CPython, IronPython, Jython.
  • 34.  Python + Python = Python  Anunciado em 2003  PyPy 1.0 – 2007 – Python 2.4  PyPy 1.4 – 2010 – Python 2.5  PyPy 1.5 – 2011 – Python 2.7  Possui GIL!!! # remoção programada  Possui JIT (x86, x86-64) # arm no release 1.5  Suporte parcial a extensões C (cpyext)  Multiplataforma
  • 35.
  • 36. rodrigo.araujo@veezor.com twitter.com/fenrrir