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 AIX operating system BSD Darwin FreeBSD HP-UX IRIX 5 and later Plan 9 from Bell Labs Mac OS X NetBSD Linux OpenBSD Solaris Tru64 Other Unixes

Sistemas para Desktop AROS AtheOS BeOS Windows Windows NT OS/2 RISC OS

Especiais e embarcadas GP2X iPodLinux Nintendo DS Nintendo Gamecube Symbian OS Series60 Nokia 770 Internet Tablet Nokia N800 Nokia N810 Palm OS PlayStation 2 PlayStation 3 (Linux) Psion QNX Sharp Zaurus Xbox/XBMC VxWorks Openmoko

Mainframe e outros OS/390 VMS z/OS

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. 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.https://linuxlifecycle.com 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.Python/C API Reference Manual: Thread State and the Global Interpreter Lock 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. Há uma constante discussão entre remover o GIL de CPython.Python Library and Extension FAQ: Can't we get rid of the Global Interpreter Lock?

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.

Notas

Categoria:Compiladores e interpretadores livres Categoria:Python