
Es una herramienta que permite desarrollar software o programas para computadora.

Lenguajes de bajo nivel
Son lenguajes totalmente dependientes de la maquina, es decir que el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras maquinas.
Lenguajes de medio nivel
Son precisos para ciertas aplicaciones como la creación de sistemas operativos, ya que permiten un manejo abstracto (independiente de la maquina, a diferencia del ensamblador), pero sin perder mucho del poder y eficiencia que tienen los lenguajes de bajo nivel.

Lenguajes de alto nivel
Son aquellos que se encuentran mas cercanos al lenguaje natural que al lenguaje maquina.

Corrección
Claridad
Eficiencia
Portabilidad
Imperativa: es serie de comandos, agrupados en bloques y compuestos de órdenes condicionales.
Declarativa: se basa en la programación funcional, crea funciones, devolviendo un nuevo estado de resultado y recibe como entrada el resultado de otras funciones.