Theory And Design Of Digital Machines