Python Implementations

An "implementation" of Python should be taken to mean a program or environment which provides support for the execution of programs written in the Python language, as represented by the CPython reference implementation.

There have been and are several distinct software packages providing what we all recognize as Python, although some of those are more like distributions or variants of some existing implementation than a completely new implementation of the language.

CPython Variants

These are implementations based on the CPython runtime core (the de-facto reference Python implementation), but with extended behaviour or features in some aspects.

Reduced Python Variants

These provide a subset of the full language + standard library, for use in embedded scenarios (see also the EmbeddedPython topic)

Also look at the sections on Python compilers and extensions below, some of which would qualify as CPython variants.

Other Implementations

These are re-implementations of the Python language that do not depend on (or necessarily interact with) the CPython runtime core. Many of them reuse (a large part of) the standard library implementation.

Note that most of these projects have not yet achieved language compliance. However, many of these have goals and features or run in certain environments that make them interesting in their own regard. The only implementations that are known to be compatible with a given version of the language are IronPython, Jython and PyPy.

Working Implementations

The following implementations may be not comprehensive or even complete, but at the very least can be said to be working in that you can run typical programs with them already:

Tentative Implementations

The following implementations are apparent works in progress; they may not be able to run typical programs:

Extensions

These are typically part of CPython (or some other implementation) but change the implementation's behaviour:

Compilers

These compilers usually implement something close to Python, although some compilers may impose restrictions that alter the nature of the language:

Numerical Accelerators

Similar but Distinct Languages

These languages don't attempt to be directly compatible even with a subset of Python, choosing to provide their own set of features:

Comparisons:

Topic Guides

(Fun) Python Preprocessors

There are even some tongue-in-cheek dialects of Python which you might find fun.

Academic Projects

Python implementations and compilers have been the topic of various papers and theses. Those that have not apparently been developed further are listed here:


This page aims to replace one formerly maintained as "Cameron Laird's personal notes on varieties of Python implementation". Also of interest will be IntegratingPythonWithOtherLanguages, which, among other variants, mentions embeddings of Python in other languages.


CategoryImplementations

PythonImplementations (last edited 2024-06-07 14:34:25 by DavidBoddie)

Unable to edit the page? See the FrontPage for instructions.