Кросплатформавае праграмнае забеспячэнне: Розніца паміж версіямі

[недагледжаная версія][недагледжаная версія]
Змесціва выдалена Змесціва дададзена
дрНяма тлумачэння праўкі
Радок 1:
'''Кросплатформавае (міжплатформавае) праграмнае забеспячэнне '''  — [[праграмнае забеспячэнне]], якое працуе больш чым на адной апаратнай платформе і/ці [[аперацыйная сістэма|аперацыйнай сістэме]]. Тыповым прыкладам з'яўляецца праграмнае забеспячэнне, прызначанае для работы ў аперацыйных сістэмах [[Linux]] і [[Windows]].
 
== Як дабіваюцца кросплатформавасці ==
Радок 6:
 
=== Кросплатформавыя мовы праграмавання ===
Кросплатформавымі можна назваць большасць сучасных высокаўзроўневых [[мова праграмавання|моў праграмавання]]. Напрыклад, {{nobr|1=[[С, мова праграмавання|C]], [[С++]], [[Free Pascal]] —}} кросплатформавыя мовы {{nobr|на ўзроўні}} кампіляцыі, {{nobr|гоэтагэта значыць}} {{nobr|для гэтых моў}} ёсць кампілятары {{nobr|пад розныя}} платформы.
 
Не менш важныя для кросплатформавасці стандартызаваныя [[бібліятэка часу выканання|бібліятэкі часу выканання]]. У прыватнасці, стандартам стала [[стандартная бібліятэка мовы С|бібліятэка мовы С]] (глядзігл. [[POSIX]]). З буйных кросплатформавых бібліятэк — [[Qt]], [[GTK+]], [[FLTK]], [[Стандартная бібліятэка шаблонаў|STL]], [[Boost]], [[OpenGL]], [[SDL]], [[OpenAL]], [[OpenCL]].
 
=== Кросплатформавыя асяроддзі выканання ===
Яшчэ на пачатку эпохі ПК кампанія [[IBM]] зрабіла [[IBM PC|свой персанальны камп'ютар]] сумяшчальным з [[CP/M]]. Гэта дазволіла запускаць на ім ўжоужо існуючыя праграмы.
 
[[PHP]], [[ActionScript]], [[Perl]], [[Python]], [[Tcl]] {{nobr|і [[Ruby]] —}} кросплатформавыя інтэрпрэтуемыяінтэрпрэтавальныя мовы, {{nobr|іх інтэрпрэтатары}} існуюць {{nobr|для шматлікіхмногіх}} платформ.
 
Асяроддзі выканання [[Java Virtual Machine]] і [[.NET Framework|.NET]] таксама кросплатформавыя, аднак на іх уваход падаецца не [[крынічнызыходны код]], а [[прамежкавы код]]. Таму праграмы, напісаныя на {{nobr|1=[[Java]] і [[C Sharp|C#]],}} можна запускаць пад разнастайнымі АС без папярэдняй перакампіляцыі.
 
=== Кросплатформавы інтэрфейс карыстальніка ===
На розных АС  — незалежна ад таго, як тэхнічна дасягнута работа ў іх  — стандартныя элементы інтэрфейса маюць розныя памеры. Таму простае жорсткае пазіцыянаваннеразмяшчэнне элементаў інтэрфейса немагчыма — пад іншай АС яны могуць налазіць адзін на другі. Існуе некалькі подыходаў.
 
# Адзіны стыль, агульны для ўсіх АС. Праграмы выглядаюць аднолькава на ўсіх АС. Так працуюць інтэрфейсныя бібліятэкі [[Java]] кшталтупадобныя да [[Swing]].
#* Плюс: можна жорстка расстаўляць элементы кіравання на манер Delphi; арыгінальны стыль.
#* Мінус: сістэме даводзіцца мець свае экранныя шрыфты; стыль адрозніваецца ад стылю АС.
# Інтэрфейс з самаадаптацыяйсамапрыстасавальнасцю, які падстройвае сетку подпад рэальныясапраўдныя памеры элементаў кіравання. Тыповыя прыклады — [[wxWidgets]], [[XUL]].
#* Плюс: стандартны стыль АС, вельмі хуткі і наладжвальны пад [[Windows XP]], [[Windows Vista|Vista]] і [[Windows 7|7]]; некаторая аўтаматызацыя [[лакалізацыя|лакалізацыі]].
#* Мінус: каб збудаваць самаадаптуючуюсамапрыстасавальную сетку, патрабуецца кваліфікаваны праграміст; ускладненапаскладнена шчыльная кампаноўка.
# Гібрыдны падыход рэалізаваны ў [[GTK+]].
#* Плюс: [[камп'ютарны шрыфт|шрыфты]] можна браць з сістэмы, а не «цягнуць» свае; некаторая аўтаматызацыя [[лакалізацыя|лакалізацыі]].
#* Мінус: атрымлівае ўсе недахопы ад першых двух падыходаў. Стыль адрозніваецца ад стылю АС; ускладнена шчыльная кампаноўка.
 
В любым выпадку, пад іншымі АС патрабуецца хаця б мінімальнае тэставанне, таму што магчымы памылкі кампаноўкі.
 
=== [[Умоўная кампіляцыя]] ===
Нават не гледзячынягледзячы на шырокую стандартызацыю апаратнага і праграмнага забеспячэння, праграмісту часта даводзіцца наладжваць галіны пад розныя АС, уключаючы тую ці другуюіншую з дапамогай [[умоўная кампіляцыя|умоўнай кампіляцыі]].
 
Браўзер [[Mozilla Firefox]] мае розныя камплектынаборы іконак пад розныя АС.
 
== Прыкладныя праграмы ==
Вялікая колькасць прыкладных праграм таксама з'яўляюцца кросплатформавымі. Асабліва гэтая якасць выяўленауласціва ў праграмахпраграмам, пачатковапершапачаткова распрацаваныхраспрацаваным для [[UNIX]]-падобных аперацыйных сістэм. Важнай умовай іх пераноснасці на іншыя платформы з'яўляецца сумяшчальнасць платформ з рэкамендацыямі [[POSIX]], а таксама існаванне кампілятара [[GCC]] для платформы, на якую ажыццяўляецца перанос.
 
== Аперацыйныя сістэмы ==
Сучасныя аперацыйныя сістэмы таксама часта з'яўляюцца кросплатформавымі. Напрыклад, аперацыйныя сістэмы з адкрытым крынічнымзыходным кодам, напрыклад, [[NetBSD]], [[Linux]], [[FreeBSD]], [[AROS]] могуць працаваць на некалькіх розных платформах, часцей за ўсё гэта [[x86]], [[m68k]], [[PowerPC]], [[DEC Alpha|Alpha]], [[AMD64]], [[SPARC]]. [[Microsoft Windows]] можа працаваць як на платформе [[Intel]] [[x86]], так і на Intel [[Itanium]] (дакладней, для Itanium ёсць толькі версіі Windows 2000/XP, Windows 2003 і Windows 2008, пасля чаго падтрымка была згорнутаязгорнута). Аперацыйная сістэма [[NetBSD]] з'яўляецца самай пераноснай<ref>[http://netbsd.org/about/portability.html Portability and supported hardware platforms]</ref>, яна партаванаперанесена на большасць існуючых платформ.
 
== Эмуляцыя ==
Калі праграма не прызначана для выканання (запуску) на азначанай платформе, але для гэтай платформы існуе[[эмулятар]] платформы, базавыасноўнай для гэтай праграмы, то праграма можа быць выканана ў асяроддзі эмулятара.
 
Звычайна выкананне праграмы ў асяроддзі эмулятара прыводзіць да зніжэння прадукцыйнасці ў параўнанні з аналагічнымі праграмамі, для якіх платформа з'яўлялася базавай, таму што значная частка рэсурсаў сістэмы спажываецца на выкананне функцый эмулятара.
Радок 50:
== Глядзі таксама ==
* [[Камп'ютарная платформа]]
* [[Перанос праграмнага забеспячэння]]
* [[Партаванне]]
* [[Кросбраўзернасць]]
* [[Кроскампіляцыя]]