Programmable Nanoscale Machines Achieved by DNA Self-Assembly