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á 606 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
|
|
|
|
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.
- Amiga: AmigaPython
- AS/400: iSeriesPython
- DOS usando DJGPP: PythonD
- PlayStation Portable: Stackless Python para PSP
- Symbian OS: Python para S60
- Windows CE/Pocket PC: porta Python para Windows CE
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
- ↑ Martelli, Alex (2006). Python in a Nutshell 2ndition ed. [S.l.]: O'Reilly. pp. 5–7. ISBN 0-596-10046-9
Referências
- ↑ Martin von Löwis, Brett Cannon. «Removing support for little used platforms». 7 de julho de 2002. Consultado em 14 de setembro de 2021
- ↑ https://linuxlifecycle.com
- ↑ Python/C API Reference Manual: Thread State and the Global Interpreter Lock
- ↑ «Python Complete Course From Scratch To Software House Level». python.engineering. 14 de setembro de 2021
- ↑ Python Library and Extension FAQ: Can't we get rid of the Global Interpreter Lock?
- ↑ Zed Shaw (2017). Learn Python the hard way. [S.l.]: Addison-Wesley Professional. ISBN 978-0134692883