abstract machine