El software se compone de instrucciones que ejecuta una computadora para realizar tareas. Existen diferentes tipos de software como el de sistema, que permite la interacción con el hardware, y el de aplicación, que realiza tareas específicas. El código fuente de un programa describe completamente su funcionamiento y debe ser traducido a lenguaje de máquina para ser ejecutado. Los programadores utilizan herramientas como editores de texto y compiladores para desarrollar software.