Меню
Публикации
2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
2006
2005
2004
2003
2002
2001
Главный редактор
НИКИФОРОВ
Владимир Олегович
д.т.н., профессор
Партнеры
doi: 10.17586/2226-1494-2020-20-3-410-417
УДК 004.45
МЕТОД ОБЕСПЕЧЕНИЯ ПЕРЕНОСИМОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ОСНОВЕ ПЕРЕНАЦЕЛИВАЕМОЙ СРЕДЫ ВЫПОЛНЕНИЯ ПРОГРАММ
Читать статью полностью
Язык статьи - русский
Ссылка для цитирования:
Аннотация
Ссылка для цитирования:
Логинов И.П., Дергачев А.М., Павловский Е.А. Метод обеспечения переносимости программного обеспечения на основе перенацеливаемой среды выполнения программ // Научно-технический вестник информационных технологий, механики и оптики. 2020. Т. 20. № 3. С. 410–417. doi: 10.17586/2226-1494-2020-20-3-410-417
Аннотация
Предмет исследования. Исследованы подходы к разработке переносимого программного обеспечения на уровне бинарного и исходного программного кода, а также факторы, влияющие на переносимость, такие как совместимость целевых платформ на уровне программных и бинарных интерфейсов приложений, стандартизация языков программирования, программная архитектура, функциональные возможности программных целевых платформ и наличие инструментального программного обеспечения. Рассмотрены современные подходы к обеспечению переносимости на основе виртуальных сред выполнения программ для языка Java и платформы .NET. Метод. Предложен метод обеспечения переносимости программного обеспечения на основе двухэтапной компиляции и применения языка описания архитектур для настройки транслятора, что позволяет решать задачу переносимости программного обеспечения на уровне среды выполнения программ, а также новый подход к реализации само- настраивающейся среды выполнения, параметрами конфигурации которой являются архитектурно-зависимые метаданные — описания целевых платформ. Для получения бинарного образа среды выполнения для заданной целевой платформы не требуется наличие ее исходного кода. Генерация образа выполняется на основе метаданных, входящих в состав существующего образа, который используется как утилита-построитель. Основные результаты. Определены требования к реализации среды выполнения программ, а также ее архитектура на уровне функциональных компонентов. Предложен новый подход к реализации среды выполнения, позволяющий обеспечить переносимость без перекомпиляции исходного кода как пользовательских приложений, так и самой среды выполнения. Разработан сценарий использования среды выполнения для генерации ее бинарного образа, нацеленного на заданную платформу. Практическая значимость. Обеспечение бинарной переносимости среды выполнения программ позволит снизить трудозатраты на реализацию кроссплатформенных приложений.
Ключевые слова: переносимость, кроссплатформенное программное обеспечение, среда выполнения, язык описания архитектур, двухэтапная компиляция
Благодарности. Работа выполнена в рамках проекта «Разработка методологической и технической основы для создания средства построения компиляторов для устройств Интернета вещей», поддержанного ФГБУ «Фонд содействия развитию малых форм предприятий в научно-технической сфере».
Список литературы
Благодарности. Работа выполнена в рамках проекта «Разработка методологической и технической основы для создания средства построения компиляторов для устройств Интернета вещей», поддержанного ФГБУ «Фонд содействия развитию малых форм предприятий в научно-технической сфере».
Список литературы
-
Hook B. Write Portable Code: An Introduction to Developing Software for Multiple Platforms. No Starch Press, 2005. 272 p.
-
Kozuch M.A., Kaminsky M., Ryan M.P. Migration without Virtualization // Proc. of HotOS'09: 12th Workshop on Hot Topics in Operating Systems. 2009.
-
Sahoo J., Mohapatra S., Lath R. Virtualization: A survey on concepts, taxonomy and associated security issues // Proc. 2nd International Conference on Computer and Network Technology (ICCNT 2010). 2010. P. 222–226. doi: 10.1109/ICCNT.2010.49
-
Klima P., Selinger S. Towards platform independence of mobile applications metamorphosing android applications for the web // Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). 2013. V. 8112. Part 2. P. 442–449. doi: 10.1007/978-3-642-53862-9-56
-
Stehle T., Riebisch M. A porting method for coordinated multiplatform evolution // Journal of Software: Evolution and Process. 2019. V. 31. N 2. P. e2116. doi: 10.1002/smr.2116
-
Mooney J.D. Bringing Portability to the Software Process: Technical Report TR 97-1. Dept. of Statistics and Computer Science, West Virginia Univ., Morgantown, WV, 1997. 9 p.
-
Mooney J.D. Developing portable software // IFIP Advances in Information and Communication Technology. 2004. V. 157. P. 55–84. doi: 10.1007/1-4020-8159-6_3
-
Kagström S. Tools, techniques, and trade-offs when porting large software systems to new environments: Doctoral Dissertation. Blekinge Institute of Technology, 2008. 176 p.
-
Stehle T., Riebisch M. Establishing common architectures for porting mobile applications to new platforms // Softwaretechnik-Trends. 2015. V. 35. N 2.
-
Washizaki H., Yamamoto H., Fukazawa Y. A metrics suite for measuring reusability of software components // Proc. 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry (IEEE Cat. No. 03EX717). 2004. P. 211–223. doi: 10.1109/METRIC.2003.1232469
-
Boehm B. Managing software productivity and reuse // Computer. 1999. V. 32. N 9. P. 111–113. doi: 10.1109/2.789755
-
Бурый А.С., Морин Е.В. Оценивание программных средств по множеству признаков // Известия высших учебных заведений. Приборостроение. 2019. Т. 62. № 10. С. 907–913. doi: 10.17586/0021-3454-2019-62-10-907-913
-
Mooney J.D. Issues in the specification and measurement of software portability // Poster session at the 15th International Conference on Software Engineering. 1993.
-
Raymond E.S. The Art of UNIX Programming. Addison-Wesley Professional, 2003. 560 p.
-
Tanenbaum A.S., Klint P., Bohm W. Guidelines for software portability // Software: Practice and Experience. 1978. V. 8. N 6. P. 681–698. doi: 10.1002/spe.4380080604
-
Mooney J.D. Portability and reusability: common issues and differences // Proc. of the 1995 ACM 23rd Annual Conference on Computer Science. 1995. P. 150–156. doi: 10.1145/259526.259550
-
Korenkov I., Loginov I., Doronin O., Sadyrin D., Dergachev A. Retargetable compiler design issues // Proc. 19th International Multidisciplinary Scientific GeoConference: SGEM. 2019. V. 19. N 2.1. P. 561–568. doi: 10.5593/sgem2019/2.1/S07.074
-
Qin W., Malik S. Architecture description languages for retargetable compilation // The Compiler Design Handbook: Optimizations and Machine Code Generation. 2002. P. 535–564. doi: 10.1201/9781420040579
-
Korenkov I., Loginov I., Dergachev A., Lazdin A. Declarative target architecture definition for data-driven development toolchain // Proc. 18th International Multidisciplinary Scientific GeoConference: SGEM: Surveying Geology & Mining Ecology Management. 2018. V. 18. N 2.1. P. 271–278. doi: 10.5593/sgem2018/2.1/S07.035