3

I have been programming in python exclusively for 4 years and have never really looked under the hood at the C code in which python is written. I have recently been looking into a problem that would involve modifying python at that level.

The code seems pretty consistent, and thus relatively easily understood. However, it's complex enough that it wasn't making sense to me just by studying it how it all worked together. Granted, I didn't spend a lot of time or effort on that, for want of a better resource. I also looked over the documentation on the python site. However, it is oriented more toward extending the language through modules.

I was hoping to find some straightforward documentation on how the parser works at the C level and how to extend the core language directly (adding language features). The module-oriented documentation provides some great insight into the way types are built and objects are managed, but I am looking for more.

Is there any such documentation out there?

5
  • 2
    read the source, Luke - the ultimate documentation Commented Aug 17, 2010 at 17:13
  • 4
    Eli Bendersky has written this fantastic tutorial on doing exactly what you're asking about: Python internals: adding a new statement to Python. I'd post this as an answer, but since Eli is a very prolific member of the SO community, surely he should be the one to do it, should he so choose. Commented Aug 17, 2010 at 17:27
  • @pm100, yeah, I started to and then decided I better check for more documentation before I spent too much time on it unnecessarily. That said, I know there are operational details you learn from the code that I have not found documented elsewhere. Commented Aug 17, 2010 at 17:33
  • @Michal (and Eli), that is a great resource. I am going to start there. Thanks! Commented Aug 17, 2010 at 17:36
  • 1
    @Michał: cheers. I've actually posted my answer before I saw this comment ;-) Commented Aug 17, 2010 at 18:03

3 Answers 3

3

This article may help you get started. It takes a lot of information from the excellent PEP 339 - Design of the CPython Compiler.

Sign up to request clarification or add additional context in comments.

Comments

1

http://docs.python.org/extending/index.html - Custom modules/extensions

http://docs.python.org/c-api/index.html - C API, under the hood

Comments

1

There's not too much written lore on this topic. Your best bet is to just simply follow the guidelines in PEP 306

2 Comments

I found PEP 339 more useful and comprehensive
@Eli and TokenMacGuy, I didn't even think to look in the PEPs. Lesson learned.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.