The Connection Machine was programmed in a variety of specialized programming languages, including *Lisp and CM Lisp (derived from Common Lisp), C* (derived by Thinking Machines from C), and CM Fortran. These languages used proprietary compilers to translate code into the parallel instruction set of the Connection Machine. The CM-1 through CM-200 were examples of single instruction, multiple data (SIMD) architecture, while the later CM-5 and CM-5E were multiple instruction, multiple data (MIMD) that combined commodity SPARC processors and proprietary vector processors in a fat tree computer network.