Підвищення продуктивності коду мовою РYТНОN з використанням техніки переписувальних правил

Запропоновано підхід підвищення продуктивності коду, написаного мовою Python, шляхом перетворення фрагментів коду до більш ефективних мов Cython та C++. Використано високорівневі алгебраїчні моделі та техніку переписувальних правил для автоматизації перетворень програмного коду. Проведено порівняння...

Повний опис

Збережено в:
Бібліографічні деталі
Дата:2020
Автор: Жереб, К.А.
Формат: Стаття
Мова:Ukrainian
Опубліковано: Інститут програмних систем НАН України 2020
Назва видання:Проблеми програмування
Теми:
Онлайн доступ:http://dspace.nbuv.gov.ua/handle/123456789/180457
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Цитувати:Підвищення продуктивності коду мовою РYТНОN з використанням техніки переписувальних правил / К.А. Жереб // Проблеми програмування. — 2020. — № 2-3. — С. 115-125. — Бібліогр.: 13 назв. — укр.

Репозитарії

Digital Library of Periodicals of National Academy of Sciences of Ukraine
id irk-123456789-180457
record_format dspace
spelling irk-123456789-1804572021-09-30T01:26:35Z Підвищення продуктивності коду мовою РYТНОN з використанням техніки переписувальних правил Жереб, К.А. Паралельне програмування. Розподілені системи і мережі Запропоновано підхід підвищення продуктивності коду, написаного мовою Python, шляхом перетворення фрагментів коду до більш ефективних мов Cython та C++. Використано високорівневі алгебраїчні моделі та техніку переписувальних правил для автоматизації перетворень програмного коду. Проведено порівняння часу виконання простих програм – початкової версії мовою Python, різних версій перетвореного коду, а також автоматичних засобів Cython та PyPy, що демонструє ефективність запропонованого підходу. Предложен подход повышения производительности кода, написанного на языке Python, с помощью преобразования фрагментов кода в более эффективные языки Cython и C ++. Использованы высокоуровневые алгебраические модели и техника переписывающих правил для автоматизации преобразований кода. Проведено сравнение времени выполнения простых программ – начальной версии на языке Python, различных версий преобразованного кода, а также автоматических средств Cython и PyPy, что демонстрирует эффективность предложенного подхода. Python is a popular programming language used in many areas, but its performance is significantly lower than many compiled languages. We propose an approach to increasing performance of Python code by transforming fragments of code to more efficient languages such as Cython and C++. We use high-level algebraic models and rewriting rules technique for semi-automated code transformation. Performance-critical fragments of code are transformed into a low-level syntax model using Python parser. Then this low-level model is further transformed into a high-level algebraic model that is language-independent and easier to work with. The transformation is automated using rewriting rules implemented in Termware system. We also improve the constructed high-level model by deducing additional information such as data types and constraints. From this enhanced high-level model of code we generate equivalent fragments of code using code generators for Cython and C++ languages. Cython code is seamlessly integrated with Python code, and for C++ code we generate a small utility file in Cython that also integrates this code with Python. This way, the bulk of program code can stay in Python and benefit from its facilities, but performance-critical fragments of code are transformed into more efficient equivalents, improving the performance of resulting program. Comparison of execution times between initial version of Python code, different versions of transformed code and using automatic tools such as Cython compiler and PyPy demonstrates the benefits of our approach – we have achieved performance gains of over 50x compared to the initial version written in Python, and over 2x compared to the best automatic tool we have tested. 2020 Article Підвищення продуктивності коду мовою РYТНОN з використанням техніки переписувальних правил / К.А. Жереб // Проблеми програмування. — 2020. — № 2-3. — С. 115-125. — Бібліогр.: 13 назв. — укр. 1727-4907 DOI: https://doi.org/10.15407/pp2020.02-03.115 http://dspace.nbuv.gov.ua/handle/123456789/180457 004.4'24 uk Проблеми програмування Інститут програмних систем НАН України
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
collection DSpace DC
language Ukrainian
topic Паралельне програмування. Розподілені системи і мережі
Паралельне програмування. Розподілені системи і мережі
spellingShingle Паралельне програмування. Розподілені системи і мережі
Паралельне програмування. Розподілені системи і мережі
Жереб, К.А.
Підвищення продуктивності коду мовою РYТНОN з використанням техніки переписувальних правил
Проблеми програмування
description Запропоновано підхід підвищення продуктивності коду, написаного мовою Python, шляхом перетворення фрагментів коду до більш ефективних мов Cython та C++. Використано високорівневі алгебраїчні моделі та техніку переписувальних правил для автоматизації перетворень програмного коду. Проведено порівняння часу виконання простих програм – початкової версії мовою Python, різних версій перетвореного коду, а також автоматичних засобів Cython та PyPy, що демонструє ефективність запропонованого підходу.
format Article
author Жереб, К.А.
author_facet Жереб, К.А.
author_sort Жереб, К.А.
title Підвищення продуктивності коду мовою РYТНОN з використанням техніки переписувальних правил
title_short Підвищення продуктивності коду мовою РYТНОN з використанням техніки переписувальних правил
title_full Підвищення продуктивності коду мовою РYТНОN з використанням техніки переписувальних правил
title_fullStr Підвищення продуктивності коду мовою РYТНОN з використанням техніки переписувальних правил
title_full_unstemmed Підвищення продуктивності коду мовою РYТНОN з використанням техніки переписувальних правил
title_sort підвищення продуктивності коду мовою рyтноn з використанням техніки переписувальних правил
publisher Інститут програмних систем НАН України
publishDate 2020
topic_facet Паралельне програмування. Розподілені системи і мережі
url http://dspace.nbuv.gov.ua/handle/123456789/180457
citation_txt Підвищення продуктивності коду мовою РYТНОN з використанням техніки переписувальних правил / К.А. Жереб // Проблеми програмування. — 2020. — № 2-3. — С. 115-125. — Бібліогр.: 13 назв. — укр.
series Проблеми програмування
work_keys_str_mv AT žerebka pídviŝennâproduktivnostíkodumovoûrytnonzvikoristannâmtehníkiperepisuvalʹnihpravil
first_indexed 2023-10-18T22:50:03Z
last_indexed 2023-10-18T22:50:03Z
_version_ 1796156555605835776