A mathematical theory of computing machine structure and programming