mirror of
https://github.com/python/cpython.git
synced 2025-11-03 03:22:27 +00:00
Issue #28705: greatly simplify the FAQ entry on transpiling.
This also eliminats a dead link to Weave in the process.
This commit is contained in:
parent
d23881e3a0
commit
78ffd6cffa
1 changed files with 5 additions and 27 deletions
|
|
@ -366,33 +366,11 @@ is exactly the same type of object that a lambda expression yields) is assigned!
|
||||||
Can Python be compiled to machine code, C or some other language?
|
Can Python be compiled to machine code, C or some other language?
|
||||||
-----------------------------------------------------------------
|
-----------------------------------------------------------------
|
||||||
|
|
||||||
Practical answer:
|
`Cython <http://cython.org/>`_ compiles a modified version of Python with
|
||||||
|
optional annotations into C extensions. `Nuitka <http://www.nuitka.net/>`_ is
|
||||||
`Cython <http://cython.org/>`_ and `Pyrex <https://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/>`_
|
an up-and-coming compiler of Python into C++ code, aiming to support the full
|
||||||
compile a modified version of Python with optional annotations into C
|
Python language. For compiling to Java you can consider
|
||||||
extensions. `Weave <https://scipy.github.io/devdocs/tutorial/weave.html>`_ makes it easy to
|
`VOC <https://voc.readthedocs.io>`_.
|
||||||
intermingle Python and C code in various ways to increase performance.
|
|
||||||
`Nuitka <http://www.nuitka.net/>`_ is an up-and-coming compiler of Python
|
|
||||||
into C++ code, aiming to support the full Python language.
|
|
||||||
|
|
||||||
Theoretical answer:
|
|
||||||
|
|
||||||
.. XXX not sure what to make of this
|
|
||||||
|
|
||||||
Not trivially. Python's high level data types, dynamic typing of objects and
|
|
||||||
run-time invocation of the interpreter (using :func:`eval` or :func:`exec`)
|
|
||||||
together mean that a naïvely "compiled" Python program would probably consist
|
|
||||||
mostly of calls into the Python run-time system, even for seemingly simple
|
|
||||||
operations like ``x+1``.
|
|
||||||
|
|
||||||
Several projects described in the Python newsgroup or at past `Python
|
|
||||||
conferences <https://www.python.org/community/workshops/>`_ have shown that this
|
|
||||||
approach is feasible, although the speedups reached so far are only modest
|
|
||||||
(e.g. 2x). Jython uses the same strategy for compiling to Java bytecode. (Jim
|
|
||||||
Hugunin has demonstrated that in combination with whole-program analysis,
|
|
||||||
speedups of 1000x are feasible for small demo programs. See the proceedings
|
|
||||||
from the `1997 Python conference
|
|
||||||
<http://legacy.python.org/workshops/1997-10/proceedings/>`_ for more information.)
|
|
||||||
|
|
||||||
|
|
||||||
How does Python manage memory?
|
How does Python manage memory?
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue