[pypy-dev] C interpreter written in Python, and running CPython on top of PyPy
Celil
celil.kj at gmail.com
Fri Jan 6 15:59:57 CET 2012
I have been thinking about the possibility of creating a C interpreter
in Python.
Is anybody already working on that? With PyPy this would presumably be
quite easy to do. The interpreter will load the C code, create an AST
(presumably using pyparsing and the EBNF spec of the C-language), and
then populate the Flow Object Space with all the C objects, and create a
control flow graph of the application logic. This graph will containe
low level lltype objects, and can then be directly connected to the
RPython flow-graph generated after the RTyper step. This would allow for
seamless interoperability between C and PyPy, and would also greatly
simplify the task of porting existing CPython extensions such as numpy.
Rather than going through the error prone task of translating the whole
code base into RPython, one will be able to simply load the exiting C
source code and integrate it directly into the RPython flow graph. It
will be possible to import *.h and *.c files directly without any
compilation, and they will run nearly as fast thanks to PyPy's JIT
technology.
This would also allow us to do things like running CPython on top of
PyPy. Right now it is possible to run PyPy on top of CPython, but the
reverse is not. If CPython could be run on top of PyPy by interpreting
its C source code that would be truly amazing. Interpreting C code would
greatly help CPython developers by freeing them from the task of having
to repeatedly compile their code.
Celil
More information about the pypy-dev
mailing list