Multipiattaforma: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m r2.6.4) (Bot: Aggiungo: tr:Çapraz platform yazılımları |
|||
Riga 3:
==Linguaggi di programmazione e applicazioni==
Molti linguaggi informatici ad alto livello sono per loro stessa natura multipiattaforma, poiché sono definiti per una macchina astratta (cfr. la macchina astratta C, la macchina virtuale del Java e di altri linguaggi).
Tuttavia, per numerosi compiti, è necessario che il programma faccia riferimento a delle [[Application programming Interface|API]] che sono diverse sui diversi sistemi operativi (gestione delle finestre, accesso allo ''hardware'', funzioni per il ''[[multithreading]]'', e così via). Ad esempio, sebbene il C++ di per sé sia multipiattaforma, un programma scritto per [[Microsoft Windows|Windows]] che usa le [[Application programming interface|API]] di [[Win32]], solitamente non riuscirà ad essere compilato anche su un sistema [[Unix]], in quanto le API che rendono disponibili quelle stesse funzionalità su Unix sono scritte diversamente.<br/>
Una soluzione comune è quella di realizzare una API intermedia, implementata in una [[libreria (informatica)|libreria]] che sia a sua volta portabile, e quindi implementata in modo diverso per le diverse piattaforme (mantenendo invariata l'interfaccia). Il codice del programma viene ''[[linking|linkato]]'' a questa libreria. Un esempio tipico è quello delle [[interfacce grafiche]] ([[GUI]]).<br/>
Molti linguaggi offrono una piattaforma costituita da librerie comuni (''librerie standard''), che permettono una copertura maggiore o minore delle esigenze tipiche di un programma.
Un altro problema è dato dal fatto che un linguaggio può ''non specificare'' il comportamento di una certa sintassi; in questo caso, il comportamento effettivo dipende dalla implementazione specifica in uso a [[tempo di esecuzione]], e ciò rende possibile scrivere un programma il cui corretto funzionamento si fondi su uno di questi comportamenti specifici (con la conseguenza che il programma non risulta portabile).
Inoltre, per alcuni linguaggi, compilatori diversi rispettano in modo diverso o incompleto le [[specifica (informatica)|specifiche]] del linguaggio stesso; in questi casi potrebbe essere necessario fare maggiore attenzione nella scrittura del [[codice sorgente]] di un programma, prima di compilarlo su più sistemi.
==Limiti e soluzioni==
|