Portabilidad
# Portabilidad

La portabilidad es uno de los conceptos clave en la programación de alto nivel. Se define como la característica que posee un software para ejecutarse en diferentes plataformas, es decir, la portabilidad se refiere exclusivamente a la propiedad que posee un software que le permite ser ejecutado en diferentes plataformas y/o sistemas operativos. De este modo, si un determinado software compilado pudiere ser ejecutado en cualquier sistema operativo, diríamos que ese software es 100% portable. Este es el núcleo del concepto de portabilidad. En este sentido, la afirmación precedente: «El código fuente del software es capaz de reutilizarse en vez de crearse un nuevo código cuando el software pasa de una plataforma a otra»", tiene como supuesto erróneo que tenemos acceso al código fuente, el cual podría reutilizarse (como es la meta que buscan los diseñadores de los lenguajes cuyos códigos corren sobre máquinas virtuales, como es el caso de Java y la familia DOT NET). Esto es incorrecto: la portabilidad es un concepto que se refiere exclusivamente a la relación software <-> plataforma).

El prerrequisito para la portabilidad es la abstracción generalizada entre la aplicación lógica y las interfaces del sistema. Cuando un software se puede compilar en diversas plataformas (x86, IA64, amd64, etc.), se dice que este es multiplataforma. Esta característica es importante para el desarrollo de reducción de costos cuando se quiere hacer una misma aplicación.

En algunos casos el software es «independiente» de la plataforma y puede ejecutarse en plataformas diversas sin necesidad de ser compilado específicamente para cada una de ellas, a este tipo de software se le llama interpretado, donde un intérprete traduce (propiamente interpreta) las instrucciones en tiempo de ejecución para que sean entendidas por diferentes plataformas.

