In computer system organisation is the art that specifies the relations and parts of a computer system. Computer architects use computers to design new computers. Emulation software can run programs written in a proposed instruction set. While the design is very easy to change at this stage, compiler designers often collaborate with the architects, suggesting improvements in the instruction set. An instruction set is the interface between the computer's software and hardware. Computers do not understand high level languages which have few language elements that translate directly into a machine's native opcodes. A processor only understands instructions encoded in some numerical fashion, usually as binary numbers. Software tools, such as compilers, translate high level languages.