Live data from Hacker News

A Python Interpreter Written in Python

aosabook.org

31–40 of 57 posts

Re: A Python Interpreter Written in Python

#31
post #23

(2012)

actually it was published as a chapter in "500 lines or less" in 2016: https://news.ycombinator.com/item?id=11796253

the text is based on python 3.5 which was released in 2015

other discussions:

https://news.ycombinator.com/item?id=16795049

https://news.ycombinator.com/item?id=12455104

https://news.ycombinator.com/item?id=11796253

Re: A Python Interpreter Written in Python

#33
post #28

one liner: eval(str)

I can do you one better:

```python3

from openai import OpenAI

import sys

client = OpenAI()

response = client.chat.completions.create( model="gpt-4", messages=[{ "role": "user", "content": f"generate valid python byte code this program compiles to: {sys.argv[1]}" }] )

print(response.choices[0].message.content)

```

Actually, probably not better.

Re: A Python Interpreter Written in Python

#35
post #21
post #19

> Byterun is a Python interpreter written in Python. This may strike you as odd, but it's no more odd than writing a C compiler in C. I'm not so sure. The difference between a self-hosted compiler and a circular interpreter is that the compiler has a binary artifact that you can store. With an interpreter, you still need some binary to run your interpreter, which will probably be CPython, making the new interpreter r…

PyPy handled this by implementing PyPy in a restricted minimal subset of Python that they called RPython, and that seemed to work out well for them.

I was never a user of PyPy but I really appreciated the (successful) effort to cleanly extract from Python a layer that of essential primitives upon which the rest of the language's features and sugar could be implemented.

It's more than just what is syntax or a language feature, for example RPython provides nts classes, but only very limited multiple inheritance; all the MRO stuff is implemented using RPython for PyPy itself.

Re: A Python Interpreter Written in Python

#36
post #19

> Byterun is a Python interpreter written in Python. This may strike you as odd, but it's no more odd than writing a C compiler in C. I'm not so sure. The difference between a self-hosted compiler and a circular interpreter is that the compiler has a binary artifact that you can store. With an interpreter, you still need some binary to run your interpreter, which will probably be CPython, making the new interpreter r…

This is the case only if the new interpreter does not simply include the layer that the old interpreter has for translating bytecode to native instructions. Once you have that, you can simply bootstrap any new interpreters from previous ones. Even in the case of supporting new architectures, you can still work at the Python level to produce the necessary binary, although the initial build would have to be done on an…

Interpreters don't translate bytecode to native instructions.

Re: A Python Interpreter Written in Python

#37

Earlier quoted context omitted.

This is the case only if the new interpreter does not simply include the layer that the old interpreter has for translating bytecode to native instructions. Once you have that, you can simply bootstrap any new interpreters from previous ones. Even in the case of supporting new architectures, you can still work at the Python level to produce the necessary binary, although the initial build would have to be done on an…

Interpreters don't translate bytecode to native instructions.

The usual understanding of "interpreter" in a CS context is program that executes source code directly without a compilation step. However the binary that translates an intermediate bytecode to native machine code is at least sometimes called a "bytecode interpreter".

https://doc.pypy.org/en/latest/interpreter.html

Re: A Python Interpreter Written in Python

#38
post #31
post #23

(2012)

actually it was published as a chapter in "500 lines or less" in 2016: https://news.ycombinator.com/item?id=11796253 the text is based on python 3.5 which was released in 2015 other discussions: https://news.ycombinator.com/item?id=16795049 https://news.ycombinator.com/item?id=12455104 https://news.ycombinator.com/item?id=11796253

Oops, I went by the publication date of the book

Re: A Python Interpreter Written in Python

#39
post #21
post #19

> Byterun is a Python interpreter written in Python. This may strike you as odd, but it's no more odd than writing a C compiler in C. I'm not so sure. The difference between a self-hosted compiler and a circular interpreter is that the compiler has a binary artifact that you can store. With an interpreter, you still need some binary to run your interpreter, which will probably be CPython, making the new interpreter r…

PyPy handled this by implementing PyPy in a restricted minimal subset of Python that they called RPython, and that seemed to work out well for them.

The key difference is that RPython is actually a compiled language.

I.e. PyPy DOESN'T have an interpreter written in an interpreted language.

Re: A Python Interpreter Written in Python

#40
post #38
post #31

Earlier quoted context omitted.

actually it was published as a chapter in "500 lines or less" in 2016: https://news.ycombinator.com/item?id=11796253 the text is based on python 3.5 which was released in 2015 other discussions: https://news.ycombinator.com/item?id=16795049 https://news.ycombinator.com/item?id=12455104 https://news.ycombinator.com/item?id=11796253

Oops, I went by the publication date of the book

where did you see a publication date of 2012 if the book was published in 2016?
Post reply on HN