self-interpreter