Портирование программного обеспечения: различия между версиями

Нет описания правки
м (оформление)
{{другие значения термина|Порт}}
'''Порти́рование''' ({{lang-en|porting}}<ref>[http://dictionary.die.net/porting The Free On-line Dictionary of Computing (2003-OCT-10], статья «Porting»</ref>) — в [[программирование|программировании]] под порти́рованием понимают [[Адаптация (кибернетика)|адаптацию]] некоторой [[компьютерная программа|программы]] или её части, с тем чтобы она работала в другой [[Среда программирования|среде]], отличающейся от той среды,сбла подбла которуюбла онабла былаблаб изначальнола написанабла сбла максимальнымбла сохранениемб еёла пользовательскихбла свойств.бал В этом основное отличие понятий ''порт'' и ''форк'' — в первом случае все пользовательские свойства пакета стараются сохранить, а во втором — это базирующаяся на общей основе самостоятельная разработка с новыми полезными свойствами.бал
 
Процесс портирования также называют ''портированием'' или ''переносом'', а результат — ''портом''. Но в любом случае главной задачей при портировании является сохранение привычных пользователю интерфейса и приёмов работы с пакетом и его свойств. Добавление новых или удаление части имеющихся свойств при портировании программных продуктов не допускается.
 
Портирование — включение кода программы в работу [[Аппаратно-программное обеспечение|Аппаратно-программного обеспечения]].
 
'''Портируемость''' (переносимость, {{lang-en|portability}}) обычно относится к одной из двух вещей:
# Портируемость — как возможность единожды откомпилировав код (обычно в некоторый [[промежуточный код]], который затем интерпретируется или компилируется во время исполнения, «[[на лету]]», {{lang-en|Just-In-Time}}<ref>[http://books.google.ru/books?id=fbyUHGk9cH0C&pg=PA413&dq=porting+jit Towards Intelligent Engineering and Information Technology] Chapter 6.3 Java: «A major benefit of using bytecode is porting… JIT compilation and dynamic recompilation allow Java programs to approach the speed of native code without losing portability»</ref>), затем запускать его на множестве платформ без каких-либо изменений.
# Портируемость — как свойство программного обеспечения, описывающее, насколько легко это ПО может быть портировано. По мере развития операционных систем, языков и техники программирования, становится всё проще портировать программы между различными платформами. Одной из изначальных целей создания языка [[Си (язык программирования)|Си]] и стандартной библиотеки этого языка — была возможность простого портирования программ между несовместимыми аппаратными платформами. Дополнительные преимущества в плане портируемости могут иметь программы, удовлетворяющие специальным стандартам и правилам написания (см., например: [[Smart Package Manager]]).
 
Необходимость в выполнении портирования возникает обычно из-за различий в системе команд [[процессор]]а, различий между способами взаимодействия [[операционная система|операционной системы]] и программ ([[API]] — Application Program Interface), принципиальных различий в архитектуре вычислительных систем, либо по причине некоторых несовместимостей или даже полного отсутствия используемого [[язык программирования|языка программирования]] в целевом окружении.
 
Международные стандарты (в частности, продвигаемые [[ISO]]) значительно упрощают портирование<ref>Donald A. Lewine. [http://books.google.ru/books?hl=en&lr=&id=rHyMRyDEG3gC&oi=fnd&pg=PR23 POSIX Programmer’s Guide. Writing Portable UNIX Programs with the POSIX.1 Standard] // O’Reilly, 1991—1994 «IEEE Std 1003.1-1988, commonly known as POSIX … When applications follow POSIX rules, it is easier to move programs from one POSIX-conforming operating system to another»</ref>, благодаря тому что они описывают среду исполнения программ таким образом, что различия между платформами становятся минимальными. Часто портирование программ между платформами, реализующими один и тот же стандарт (такой как ''[[POSIX]].1'') сводятся к перекомпиляции программы на новой платформе.
Анонимный участник