Multipiattaforma: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Modifico ur:چلیپائی منبر→ur:متعدد المنابر |
Annullata la modifica 140998726 di Posleniibon (discussione) UPE spam Etichetta: Annulla |
||
(27 versioni intermedie di 23 utenti non mostrate) | |||
Riga 1:
{{nd|il termine dei videogiochi online|Cross-platform (videogiochi)|Cross-platform}}
{{F|informatica|gennaio 2010}}▼
{{C|Oltre l'incipit, il resto della voce sembra una ricerca originale con considerazioni talvolta arbitrarie.|informatica|marzo 2019}}
In [[informatica]] il termine '''multipiattaforma''' può essere riferito ad un [[linguaggio di programmazione]], ad un'applicazione [[software]] o ad un dispositivo [[hardware]] che funziona su più di un [[sistema (informatica)|sistema]] o appunto, ''[[piattaforma (informatica)|piattaforma]]'' (es. [[Unix]]/[[Linux]], [[Microsoft Windows|Windows]] e [[Macintosh]]). Esempi di linguaggi multipiattaforma sono: [[C (linguaggio)|C]], [[C++]], [[Java (linguaggio)|Java]], [[JavaScript]], [[Perl]], [[PHP]], [[Python]], [[Tcl]], [[Erlang (linguaggio)|Erlang]] e [[REALbasic]].▼
▲{{F|terminologia informatica|gennaio 2010}}
▲
==Linguaggi di programmazione e applicazioni==
Molti linguaggi informatici ad [[linguaggio di programmazione ad alto livello|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 [[sistema operativo|sistemi operativi]]<nowiki> (gestione delle finestre, accesso
Una soluzione comune è quella di realizzare una API intermedia, implementata in una [[
Molti linguaggi offrono una piattaforma costituita da librerie comuni (''librerie standard''), che permettono una copertura maggiore o minore delle esigenze tipiche di un [[programma (informatica)|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|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==
Poiché fornire e [[Collaudo del software|collaudare]] versioni compilate di un programma per ogni [[Sistema operativo|OS]] ed ogni [[CPU]] è praticamente impossibile, i progetti di [[software libero]] ([[open source]]), o che altrimenti permettono all'utente di compilare il proprio ''[[codice sorgente]]'', possono essere considerati ''più'' multipiattaforma. Allo stesso modo, i [[Linguaggio interpretato|linguaggi interpretati]] o che richiedono una ''virtual machine'' sono più multipiattaforma quando ognuno può compilarsela. [[Hotspot (informatica)|Hotspot]], la virtual machine di [[Java (linguaggio di programmazione)|Java]] della [[Oracle Corporation]], è fornita solo sotto forma di binari [[precompilati]], con supporto per parecchie piattaforme (''ma non tutte'', nemmeno potenzialmente). Per esempio, Sun supporta [[Linux|GNU/Linux]] solo sull'architettura [[i386]] (e parzialmente [[AMD64]]) così che chiunque ha Linux su un [[PowerPC]] o su computer [[SPARC]] non può utilizzare Java, se non compilando nel [[linguaggio macchina]] nativo oppure utilizzando strumenti di terzi.
Molte [[Application programming interface|API]] sono specifiche per una singola piattaforma. Si può dire che le [[OpenGL]] siano invece multipiattaforma perché non sono legate a un particolare sistema operativo, architettura CPU o marca di hardware grafico. API legate a una sola piattaforma possono essere ricreate sugli altri sistemi creando un livello di compatibilità, come ad esempio le librerie [[WINE]], che consentono ai programmi che richiedono le librerie di [[Microsoft Windows|Windows]] di poter funzionare su UNIX.
Ci sono anche estensioni multipiattaforma e [[middleware]] per molti linguaggi di programmazione che permettono ai [[programmatore|programmatori]] di compilare e
==Multipiattaforma e Web==
Le [[Applicazione web|applicazioni Web]] sono normalmente utilizzabili da ogni piattaforma con qualsiasi [[Browser|web browser]], senza preoccuparsi del linguaggio col quale sono state scritte. Ciò è vero perché il codice gira su un [[server]] (applicazione [[lato server]]) e la comunicazione con l'utente avviene soltanto attraverso l'[[
Le [[Pagina web|pagine web]] si dicono talvolta multipiattaforma o ''cross-browser'' se possono essere utilizzate da qualunque browser, o da tutti i browser recenti. Per produrre codice valido all'autore spesso occorre un'esperienza tale da "domare" le bizzarrie di alcuni browser poco conformi agli [[standard (informatica)|standard]], come [[Internet Explorer]].
Riga 30 ⟶ 32:
L'accessibilità web multipiattaforma richiede la conoscenza di standard tecnici, se una pagina è accessibile da vari sistemi come [[screen reader]], browser basati sul [[Braille]] e piccoli dispositivi come [[Telefono cellulare|telefoni cellulari]] e [[palmare|PDA]].
==Multipiattaforma e Videogiochi==
{{vedi anche|Multipiattaforma (videogiochi)}}
In questo caso il sistema multipiattaforma si basa sul creare un codice sorgente unico che viene poi integrato con sezioni di codice specifico quando deve essere compilato per una determinata piattaforma, in alcuni casi possono verificarsi esigenze che richiedano un interfacciamento differente con i comandi in quanto non interscambiabili oppure integrare funzioni specifiche di una determinata piattaforma.
== Note ==
<references/>
==Voci correlate==
*[[Interoperabilità]]
== Altri progetti ==
{{interprogetto}}
== Collegamenti esterni ==
* {{FOLDOC|cross-platform|cross-platform}}
{{portale|informatica}}
[[Categoria:Terminologia informatica]]
[[Categoria:Software multipiattaforma| ]]
|