Este documento describe tres tipos principales de software: software de control, software de aplicación y lenguajes de programación. El software de control incluye sistemas operativos, software de diagnóstico y mantenimiento e intérpretes de lenguaje de control. El software de aplicación incluye software específico, de productividad, general e integrado. Los lenguajes de programación permiten expresar algoritmos a la CPU y pueden clasificarse por nivel de abstracción y tipo de traductor.