I wrote a Python interpreter for the SECD abstract machine, following the presentation in Kogge’s book. The pydot library was convenient for visualising the graph in memory corresponding to data and code. For example this short program:

[LDC, [3, 4], LDF, [LD, [1, 2], LD, [1, 1], ADD, RTN], AP, WRITEI, STOP,]

looks like this:

Source code is available on github: https://github.com/carlohamalainen/pysecd