steps towards a mechanical compiler