CPython é a implementação principal da linguagem de programação Python, escrita em linguagem C. É desenvolvida e mantida por Guido Van Rossum e diversos outros desenvolvedores espalhados pelo mundo.

CPython
Desenvolvedor Guido van Rossum, além do time central de desenvolvedores e da comunidade Python
Plataforma Multiplataforma
Versão estável 3.3 (29 de setembro de 2012; há 11 anos)
Escrito em C (linguagem de programação)
Licença Python Software Foundation License
Página oficial Python Programming Language – Official Website., acessado pela última vez há 590 semanas e 5 dias

CPython é um interpretador de bytecode. Ele possui uma interface funcional em diversas linguagens incluindo C, na qual os bindings podem ser escritos explicitamente em qualquer outra linguagem diferente de Python.

Plataformas suportadas editar

Plataformas suportadas anteriormente editar

A proposta de melhoria do Python 11 (PEP 11) lista as plataformas que não são suportadas em CPython por Python Software Foundation.[1] Estas plataformas podem ainda ser suportadas por portas externas.

  • DOS (não suportado a partir da versão 2.0)
  • IRIX 4 (não suportado a partir da versão 2.3)
  • Mac OS 9 (não suportado a partir da versão 2.4)
  • MINIX (não suportado a partir da versão 2.3)

Enterprise Linux editar

Essas versões do Python são distribuídas com distribuições empresariais Linux atualmente suportadas.[2] O status de suporte do Python na tabela refere-se ao suporte da equipe principal do Python, e não do mantenedor da distribuição.

Portas externas editar

Portas externas são portas não integradas à versão oficial de CPython. Portas incluem frequentemente módulos adicionais para funcionalidades específicas de certas plataformas, como API's gráficos e de som para PSP, SMS e para câmeras S60.

Rotinas concorrentes editar

A principal dificuldade em utilizar CPython em um computador multiprocessado é a presença de um Global Interpreter Lock em cada processo do interpretador CPython, o qual efetivamente desativa subrotinas concorrentes de um processo em Python.[3] Para ser verdadeiramente concorrentes em um ambiente multiprocessado, processos distintos do interpretador CPython precisam estar rodando, o que faz com que a comunicação entre as tarefas seja dificultado.[4] Há uma constante discussão entre remover o GIL de CPython.[5]

Embora muitas propostas tenham sido feitas para eliminar o GIL, o consenso geral é que, na maioria dos casos, as vantagens do GIL superam as desvantagens; nos poucos casos em que o GIL é um gargalo, o aplicativo deve ser construído em torno da estrutura de multiprocessamento.[6]

Notas editar

  1. Martelli, Alex (2006). Python in a Nutshell 2ndition ed. [S.l.]: O'Reilly. pp. 5–7. ISBN 0-596-10046-9 

Referências