Viper native code emitter for MicroPython

The Viper code emitter

“Viper” gibt es scheinbar weiterhin und findet sich gerade auch beim Vanilla MicroPython als nativer code emitter ein – zumindest wird es hier in den vorletzten MicroPython 1.10 release notes häufig erwähnt. Das hat mit dem ursprünglichen “Viper”, aus dem Zerynth hervorgegangen ist, vermutlich überhaupt nichts zu tun.

Auch MicroPython für den ESP8266 hat einen nativen Code Emitter, siehe esp.set_native_code_location for ESP8266.


Der optimierende Viper native code emitter wurde erstmals 2013 von Damien George erwähnt.

[…] explain a bit about the 3 different Python code emitters: byte code, native code, and native code with native types. The third type I call “viper” for short (after the snake). There is a fourth type, inline assembler, that I will discuss in a following update.

This discussion is a little technical and I don’t want to scare you in to thinking that you need to understand any of it. You don’t! Micro Python is designed to be easy for the beginner to get starting doing cool stuff right away. But it also has some sophisticated features for when you need them.

Weitere Diskussionen

How fast is MicroPython?

If you are looking into how things could be sped up further, Just-in-Time (JIT) compilation might come to MicroPython at some time in the future.