Multiplattform

Mozilla Firefox version 24 i Ubuntu 13.

Ett datorprogram kallas Multiplattform om det kan köras på flera operativsystem.

I allmänhet skrivs datorprogram avsedda att vara multiplattform med hjälp av en utvecklingsmiljö eller ett programbibliotek avsett att stöda flera plattformar. Ofta måste ändå hänsyn tas till alla de stödda plattformarnas speciella drag. Stor vikt måste fästas vid att inte implicit utnyttja funktioner eller egenheter specifika för någon viss plattform.

Program skrivna i språk som Java kompileras till plattformsoberoende bytekod och kan därmed köras på alla plattformar som kan tolka denna. Oberoendet grundar sig på att programmen körs i en väldefinierad virtualmaskin, som tillhandahålls tillsammans med bytekodstolken. C# fungerar i princip på samma sätt, men själva virtualmaskinen är inte avsedd att fungera annat än i Windows.

Program skriva i skriptspråk som Perl, Python eller Ruby kompileras eller tolkas vid varje körning och kan därmed köras på alla system som har stöd för dessa. Många sådana program gör antaganden om sin omgivning som inte uppfylls bara för att en tolk för språket är installerad. I praktiken är skripten ofta skrivna till exempel för Unix-liknande system.

Program skrivna i språk såsom C, C++, Pascal eller Fortran, avsedda att kompileras skillt måste kompileras om för varje ny plattform programmet skall köras på. Programkoden använder ofta systemanrop eller programbibliotek som är bundna till en viss plattform, då mycket mindre funktionalitet i allmänhet inkluderats i själva språket än vad som är fallet för till exempel Perl.

Innan plattformsberoende program kan kompileras och köras måste de därför ofta portas, så att systemspecifika funktioner ersätts med motsvarande kod för den nya plattformen. Om programmet strikt hållit sig till väldefinierade plattformsoberoende standarder och programbibliotek som finns tillgängliga på många plattformar (eller lätt kan portas), utom i klart avskilda delar, och undvikit implicita antaganden om exempelvis filträdets struktur är portningsarbetet relativt enkelt (till exempel från en Unix-variant till en annan kan omkompilering räcka).

Plattformsberoende

Plattformsoberoende innebär att ett datorprogram, ett programmeringsgränssnitt (API) eller en hårdvara är planerat att fungera oberoende av plattform.

Ett exempel på plattformsoberoende programspråk är Java.

Graden av oberoende varierar. Ofta är avsikten att stöda en viss grupp av plattformar genom att följa standarder och konventioner gemensamma för dessa, och att skriva källkod eller specifikationer så att Portering till (respektive implementering för) en ny plattform blir så lätt som möjligt.

Se även

Media som används på denna webbplats

Question book-4.svg
Författare/Upphovsman: Tkgd2007, Licens: CC BY-SA 3.0
A new incarnation of Image:Question_book-3.svg, which was uploaded by user AzaToth. This file is available on the English version of Wikipedia under the filename en:Image:Question book-new.svg
Firefox 24.0 on Ubuntu.png
Författare/Upphovsman: Mozilla Foundation (and your collaborators), Licens: MPL 2
The browser Mozilla Firefox version 24 running on Ubuntu 13.04 in October 13, 2013.