Multipiattaforma: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Bellamelll (discussione | contributi)
Riga 3:
 
==Linguaggi di programmazione e applicazioni==
Molti linguaggi informatici sono per loro stessa natura multipiattaforma! poiché per un sistema ad [[alto-livello]] e comprensibile all'essere umano di istruire una [[CPU]] non c'è bisogno di dipendere strettamente da un particolare sistema operativo. Comunque, per fare cose del tipo creare una [[interfaccia grafica]] ([[GUI]]) usando il sistema dei [[widget]], un programma fa ''[[linking]]'' a delle [[libreria (informatica)|librerie]] che potrebbero essere specifiche per il sistema sul quale lo [[Programmatore|sviluppatore]] lavora. Sebbene il C++ di per sé è multipiattaforma, un programma scritto per [[Microsoft Windows|Windows]] che usa le [[Application programming interface|API]] di [[Win32]], ad esempio, solitamente non riuscirà ad essere compilato anche su un sistema [[Unix]]. Ci sono poi parecchie differenze su come gli sviluppatori dei vari [[compilatore|compilatori]] interpretano le [[specifica (informatica)|specifiche]] di un determinato linguaggio; in questi casi un programma potrebbe richiedere qualche accortezza in più prima di essere compilato su più sistemi.
 
Alcuni linguaggi di programmazione come [[Java (linguaggio)|Java]] sono stati disegnati per funzionare su ogni piattaforma che potesse usufruire di una [[virtual machine]]. Questi linguaggi, che usano il [[bytecode]] come rappresentazione compilata oppure che interpretano [[script]] direttamente, non hanno bisogno di essere compilati per un particolare [[sistema operativo]]. Le librerie native del sistema operativo non sono [[Linking|legate]] al codice distribuito, bensì l'ambiente [[run time]] reimplementa molte delle stesse funzionalità o fornisce una connessione comune tra funzioni analoghe sui differenti sistemi. È possibile però creare applicazioni Java che "girano" solo su un particolare sistema, usando [[Java Native Interface|JNI]] o usando un compilatore ''bytecode-a-linguaggio_macchina'' (''bytecode-to-machinecode''); ciò non è necessario nella maggior parte dei casi.