Підвищення продуктивності коду мовою Р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 Ukraineid |
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 |