- Advanced Python Programming
- Dr. Gabriele Lanaro Quan Nguyen Sakis Kasampalis
- 208字
- 2025-04-04 14:55:55
Exploring Compilers
Python is a mature and widely used language and there is a large interest in improving its performance by compiling functions and methods directly to machine code rather than executing instructions in the interpreter. We have already seen a compiler example in Chapter 4, C Performance with Cython, where Python code is enhanced with types, compiled to efficient C code, and the interpreter calls are side-stepped.
In this chapter, we will explore two projects--Numba and PyPy--that approach compilation in a slightly different way. Numba is a library designed to compile small functions on the fly. Instead of transforming Python code to C, Numba analyzes and compiles Python functions directly to machine code. PyPy is a replacement interpreter that works by analyzing the code at runtime and optimizing the slow loops automatically.
These tools are called Just-In-Time (JIT) compilers because the compilation is performed at runtime rather than before running the code (in other cases, the compiler is called ahead-of-time or AOT).
The list of topics to be covered in this chapter is as follows:
- Getting started with Numba
- Implementing fast functions with native mode compilation
- Understanding and implementing universal functions
- JIT classes
- Setting up PyPy
- Running the particle simulator with PyPy
- Other interesting compilers