¿Qué diferencia a un software de bajo nivel de uno de alto nivel?