CPython

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á 593 semanas e 6 dias

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 é 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

Sistemas UNIX

Sistemas para Desktop

Especiais e embarcadas

Mainframe e outros

Plataformas suportadas anteriormente

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

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

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

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

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

Referências

  1. Martin von Löwis, Brett Cannon. «Removing support for little used platforms». 7 de julho de 2002. Consultado em 14 de setembro de 2021 
  2. https://linuxlifecycle.com
  3. Python/C API Reference Manual: Thread State and the Global Interpreter Lock
  4. «Python Complete Course From Scratch To Software House Level». python.engineering. 14 de setembro de 2021 
  5. Python Library and Extension FAQ: Can't we get rid of the Global Interpreter Lock?
  6. Zed Shaw (2017). Learn Python the hard way. [S.l.]: ‎Addison-Wesley Professional. ISBN 978-0134692883