In informatica, la portabilità di un componente software è un adattamento o una modifica del componente, volto a consentirne l'uso in un ambiente di esecuzione diverso da quello originale. L'operazione di porting, cioè la creazione (scrittura) di un port, è solitamente richiesta a causa delle differenze tra le CPU, dalle diverse interfacce (API) dei sistemi operativi, dalla diversità dell'hardware o per delle sottili incompatibilità dell'implementazione del linguaggio di programmazione sull'ambiente target (quello su cui deve essere compilato il programma).
Il porting può essere un'attività complessa e costosa; ciò dipende dalla "distanza" tecnologica fra l'ambiente di origine e l'ambiente di destinazione, dal tipo di componente software da "portare", e dagli strumenti con cui esso è stato costruito.
Un componente software è portabile se eseguirne il porting è semplice (e quindi poco costoso); in questo senso, la portabilità si può considerare un caso particolare di riusabilità del software. Il caso limite è quello in cui un componente software può essere riutilizzato su diverse piattaforme senza che questo comporti alcuna modifica: oggi si tende a usare il termine portabilità proprio in quest'ultima accezione. Nello scenario odierno, in cui calcolatori di ogni tipo sono in grado di comunicare e scambiarsi dati e programmi attraverso Internet, la portabilità rappresenta un fattore spesso decisivo nella scelta di tecnologie, metodologie e strumenti per la produzione del software. Allo stesso tempo, l'emergere di standard come quelli promulgati da ISO e ANSI (p.es. riguardo a formati di archiviazione dati o linguaggi di programmazione), e la conseguente convergenza di tecnologie e sistemi informatici rispetto ad almeno alcuni aspetti del loro funzionamento, gioca evidentemente a favore della portabilità del software in generale. Esistono un gran numero di strumenti che aiutano il porting, come GCC, che permette di compilare diversi linguaggi sotto diverse architetture, e autoconf, che, prima della compilazione, automatizza la ricerca di quelle piccole differenze che potrebbero impedire di compilare il sorgente e adatta di conseguenza il programma.
Due attività collegate con il porting ma distinte da esso sono l'emulazione e la compilazione incrociata o cross-compiling.
Benché vi siano numerose sfumature nel significato che si attribuisce al termine "portabilità" in diversi contesti, vale la pena enfatizzarne almeno due: la portabilità dei dati e la portabilità dei programmi.
Una forma più radicale di portabilità viene fornita dai linguaggi interpretati, ovviamente sotto la condizione che esistano interpreti per i diversi ambienti di interesse, e che questi interpreti esibiscano un comportamento equivalente (p.es. conforme a uno standard). In questo caso, il "porting" di un programma non richiede neppure ricompilazione. È per esempio il caso di Java; il software Java può essere eseguito in un qualunque ambiente, cosa che ha reso possibile l'inserimento di piccoli programmi Java (applet) all'interno di pagine Web destinate a essere visualizzate da diversi browser in esecuzione su macchine completamente diverse.
Port indica anche quelle versioni di videogiochi che, scritte per poter essere eseguite su una certa piattaforma, vengono convertite per poterle eseguire su altre (per esempio passando da una consolle per videogiochi a un computer). I primi port di videogiochi erano comunque vere e proprie riscritture del codice; in tempi recenti si preferisce invece scrivere e sviluppare il gioco utilizzando programmi capaci di emettere codice sorgente sia per computer che per consolle, delegando quindi l'operazione di porting a tali programmi.
Portierung | Porting | Portable | Portage informatique | Portable | Porting | 移植 (ソフトウェア) | Port (oprogramowanie) | Портирование программ | Portning | 移植
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Portabilità".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world