ПІДВИЩЕННЯ ПЕРЕНОСИМОСТІ ВИХІДНОГО КОДУ C++ ДЛЯ БАГАТОПЛАТФОРМНИХ ОБЧИСЛЮВАЛЬНИХ СИСТЕМ - СТАРОДУБСЬКИЙ, ІГОР; БЕРДНИК, МИХАЙЛО (Herald of Khmelnytskyi National University. Technical sciences, 2025)
Переносимість програмного забезпечення є одним із ключових чинників успішної розробки в умовах стрімкого розвитку апаратних платформ та різноманітності обчислювальних архітектур. Поява альтернативних до традиційних x86_64 рішень, зокрема ARM та RISC-V, а також активне впровадження мобільних, вбудованих та хмарних обчислень обумовлюють необхідність створення вихідного коду, здатного адаптуватися до різних середовищ із мінімальними витратами ресурсів. Особливо актуальним це питання є для мов програмування системного рівня, таких як C++, яка широко використовується для розробки високопродуктивних та ресурсно-ефективних додатків. Забезпечення переносимості без втрати продуктивності стає критичним завданням для підвищення конкурентоспроможності програмних продуктів на міжнародному ринку. Метою дослідження є розробка ефективної методології підвищення переносимості вихідного коду мовою програмування C++ для багатоплатформних обчислювальних систем, яка дозволяє мінімізувати витрати на адаптацію програмних рішень під різні апаратні та програмні платформи. Для досягнення поставленої мети було проведено аналіз типових викликів, що виникають під час перенесення C++-додатків на різні обчислювальні середовища. Запропоновано комплексний підхід, який передбачає використання стандартних можливостей мови C++ (із пріоритетом нових стандартів C++17 та C++20), залучення кросплатформних бібліотек, таких як Boost та POCO, застосування системи побудови CMake для уніфікації процесу компіляції, а також автоматизацію тестування з використанням систем безперервної інтеграції (CI) із підтримкою кількох цільових платформ. Додатково розглянуто використання практик адаптивного програмування та умовної компіляції для оптимізації коду під специфічні характеристики середовищ виконання. В рамках дослідження створено тестовий проєкт на мові C++, що реалізує типову функціональність обробки даних, який був успішно скомпільований і протестований на трьох основних платформах: Windows, Linux та Mac OS. Продемонстровано, що дотримання принципів переносимості дозволяє уникнути необхідності внесення змін у вихідний код при переході між середовищами. Проведено аналіз продуктивності та витрат ресурсів при використанні запропонованої методології, що підтвердило ефективність підходу для промислового використання. Результати роботи свідчать, що забезпечення переносимості вихідного коду C++ є досяжним завданням за умови правильного планування архітектури додатків та застосування сучасних кросплатформних технологій. Запропонований підхід дозволяє значно скоротити час та витрати на підтримку програмного забезпечення у багатоплатформному середовищі. Подальші дослідження планується спрямувати на розробку інструментів автоматичного аналізу вихідного коду щодо його придатності до переносу та оцінку продуктивності адаптованих рішень на новітніх архітектурах.