Portabilitat

La portabilitat és un dels conceptes clau en la programació d'alt nivell.

Es defineix com la capacitat d'un programari per executar-se en diferents plataformes, el codi font del programari és capaç de reutilitzar-se en lloc de crear-se un nou codi quan el programari passa d'una plataforma a una altra. Com més gran és la portabilitat, menys dependent és el programari respecte a la plataforma.[1]

El prerequisit per la portabilitat és l'abstracció generalitzada entre l'aplicació lògica i les interfícies del sistema. Quan un programari es pot compilar en diverses plataformes (x86, IA64, amd64, etc.), es diu que és multiplataforma. Aquesta característica és important per reduir costos quan es vol fer una mateixa aplicació.

En alguns casos, el programari és "independent" de la plataforma i pot executar-se en diverses plataformes sense necessitat de ser compilat específicament per cadascuna d'elles, a aquest tipus de programari se l'anomena "interpretat". Un "intèrpret" tradueix (pròpiament interpreta) les instruccions en temps d'execució perquè siguin enteses per diferents plataformes.

  1. (Nota: la portabilitat no té relació directa amb el codi font d'una aplicació i, per això, tampoc té relació directa amb la seva reutilització. En canvi, la portabilitat es refereix exclusivament a la propietat que posseeix un programari de ser executat en diferents plataformes o sistemes operatius. D'aquesta manera, si un determinat programari compilat pogués ser executat en qualsevol sistema operatiu, es diria que és 100% portable. Aquest és el nucli del concepte de portabilitat. En aquest sentit, l'afirmació precedent: "el codi font del programari és capaç de reutilitzar-se en lloc de crear-se un nou codi quan el programari passa d'una plataforma a una altra", té com a supòsit erroni que es té accés al codi font, el qual podria reutilitzar-se (com és l'objectiu dels dissenyadors dels llenguatges amb codis que corren sobre màquines virtuals, com és el cas de Java i la família DOT NET). Això és incorrecte: la portabilitat és un concepte que es refereix exclusivament a la relació programari-plataforma).