A methodology for automated design of computer instruction sets