Анализ алгоритмов составляющих частей компилятора и его оптимизации
- Авторы: Харин И.А.1, Раскатова М.В.1
-
Учреждения:
- Национальный исследовательский университет «Московский энергетический институт (МЭИ)»
- Выпуск: Том 10, № 2 (2023)
- Страницы: 26-35
- Раздел: МАТЕМАТИЧЕСКОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ, КОМПЛЕКСОВ И КОМПЬЮТЕРНЫХ СЕТЕЙ
- URL: https://journals.eco-vector.com/2313-223X/article/view/568056
- DOI: https://doi.org/10.33693/2313-223X-2023-10-2-26-35
- EDN: https://elibrary.ru/BDGKMA
- ID: 568056
Цитировать
Аннотация
Оптимизация программ возникла, как ответ на появление высокоуровневых языков программирования, и включает в себя специальные приемы и методы, используемые при построении компиляторов для получения достаточно эффективного объектного кода. Совокупность этих методов составляла в прошлом и является теперь неотъемлемой частью так называемых оптимизирующих компиляторов, целью которых заключается в создании объектного кода, позволяя экономить такие компьютерные ресурсы, как процессорное время и память. Для современных суперкомпьютеров добавляется также требование правильного использования аппаратных особенностей. В данном контексте особого внимания заслуживают вопросы, связанные с оптимизацией компиляторов, которая может включать в себя адаптацию компилятора для уменьшения времени выполнения или размера объекта, или и того, и другого. С учетом вышеизложенного, цель статьи заключается в проведении анализа алгоритмов составляющих частей компилятора и обозначении путей его оптимизации. В процессе исследования кратко охарактеризована общая технология работы компилятора. Отдельное внимание уделено рассмотрению основных функции алгоритмов, которые реализуются на разных этапах работы компилятора. Также рассмотрены возможности использования машинного обучения для оптимизации компиляторов.
Ключевые слова
Полный текст
Об авторах
Илья Андреевич Харин
Национальный исследовательский университет «Московский энергетический институт (МЭИ)»
Автор, ответственный за переписку.
Email: xarin.ilya@bk.ru
аспирант кафедры вычислительных машин, систем и сетей Национального исследовательского университета «МЭИ»
Россия, МоскваМарина Викторовна Раскатова
Национальный исследовательский университет «Московский энергетический институт (МЭИ)»
Email: marvp@yandex.ru
кандидат технических наук; доцент кафедры вычислительных машин, комплексов и систем Национального исследовательского университета «МЭИ»
Россия, МоскваСписок литературы
- Aschwanden P. CcNav: Understanding compiler optimizations in binary code // IEEE Transactions on Visualization and Computer Graphics. 2021. Vol. 27. No. 2. Pp. 667–677.
- Chen Ge. CRAC: An automatic assistant compiler of checkpoint/restart for OpenCL program // Concurrency and Computation: Practice and Experience. 2022. Vol. 34. No. 8. Pp. 14–22.
- Huang Ya., Xie B. Fine-grained compiler identification with sequence-oriented neural modeling // IEEE Access: Practical Innovations, Open Solutions. 2021. Vol. 9. Pp. 49160–49175.
- Sampson A., Adit N. Performance left on the table: An evaluation of compiler autovectorization for RISC-V // IEEE Micro. 2022. Vol. 42. No. 5. Pp. 41–48.
- Tang Yi., Zhou Zh.. Detecting compiler warning defects via diversity-guided program mutation // IEEE Transactions on Software Engineering. 2021. Vol. 48. No. 11. Pp. 4411–4432.
- Tewary M., Salcic Z.. Compiler-assisted energy reduction of java real-time programs // Microprocessors and Microsystems. 2022. Vol. 89. No. 3. Pp. 78–83.
- Wang Zh. Machine learning in compiler optimization // Proceedings of the IEEE. 2018. Vol. 106. No. 11. Pp. 1879–1901.
- Баглий А.П., Кривошеев Н.М., Штейнберг Б.Я. Автоматизация распараллеливания программ с оптимизацией пересылок данных // Научный сервис в сети Интернет. 2022. № 24. С. 81–92.
- Болотнов А.М., Нурисламова Э.А. Влияние оптимизации компилятора GCC на эффективность программного кода в языке C++ // Современные наукоемкие технологии. 2019. № 12-2. С. 266–270.
- Вьюкова Н.И., Галатенко В.А., Самборский С.В. Средства динамического анализа программ в компиляторах GCC и CLANG // Программирование. 2020. № 4. С. 46–64.
- Малявко А.А. Обработка ошибок в синтаксическом анализаторе компилятора языка EL // Научный вестник Новосибирского гос. техн. ун-та. 2019. № 2 (75). С. 37–48.
- Советов П.Н. Итеративный подход с использованием компилятора для синтеза и моделирования проблемно-ориентированного набора команд // International Journal of Open Information Technologies. 2019. Т. 7. № 10. С. 14–21.
- Стрелец А.И., Черникова Е.А., Малков Л.В., Дождев А.И. Структура компилятора одноразовой программы // Международный журнал гуманитарных и естественных наук. 2019. № 1-1. С. 146–147.
- Третьяк А.В. Значимость отступов при разработке лексического анализатора компиляторов // Молодежь. Наука. Инновации. 2021. Т. 1. С. 306–309.
- Штейнберг Б.Я. Преобразования программ – фундаментальная основа создания оптимизирующих распараллеливающих компиляторов // Программные системы: теория и приложения. 2021. Т. 12. № 1 (48). С. 21–113.