A Tested Semantics for the Python Programming Language

We present a small-step operational semantics for the Python programming language. We present both a core language for Python, suitable for tools and proofs, and a translation process for converting Python source to this core. We have tested the composition of translation and evaluation of the core for conformance with the primary Python implementa- tion, thereby giving confidence in the fidelity of the seman- tics. We briefly report on the engineering of these compo- nents. Finally, we examine subtle aspects of the language, identifying scope as a pervasive concern that even impacts features that might be considered orthogonal.