Rodrigo P. M. de Araújo [email protected]
Rodrigo P. M. de Araújo
Gerenciamento de memória
Gerenciamento de threads
Desempenho
Coleta de lixo
Global InterpreterLock
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 LanguageMoratorium
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
twitter.com/fenrrir