Specificeren, ontwerpen, en programmeren van machines