Анализ алгоритмов составляющих частей компилятора и его оптимизации
(Стр. 26-35)

Подробнее об авторах
Харин Илья Андреевич аспирант, кафедра вычислительных машин, систем и сетей
Национальный исследовательский университет «Московский энергетический институт (МЭИ)»
г. Москва, Российская Федерация Раскатова Марина Викторовна кандидат технических наук, доцент; кафедра вычислительных машин, систем и сетей; Национальный исследовательский университет «Московский энергетический институт (МЭИ)»; г. Москва, Российская Федерация

Нажимая на кнопку купить вы соглашаетесь с условиями договора оферты

Аннотация:
Оптимизация программ возникла, как ответ на появление высокоуровневых языков программирования, и включает в себя специальные приемы и методы, используемые при построении компиляторов для получения достаточно эффективного объектного кода. Совокупность этих методов составляла в прошлом и является теперь неотъемлемой частью так называемых оптимизирующих компиляторов, целью которых заключается в создании объектного кода, позволяя экономить такие компьютерные ресурсы, как процессорное время и память. Для современных суперкомпьютеров добавляется также требование правильного использования аппаратных особенностей. В данном контексте особого внимания заслуживают вопросы, связанные с оптимизацией компиляторов, которая может включать в себя адаптацию компилятора для уменьшения времени выполнения или размера объекта, или и того, и другого. С учетом вышеизложенного, цель статьи заключается в проведении анализа алгоритмов составляющих частей компилятора и обозначении путей его оптимизации. В процессе исследования кратко охарактеризована общая технология работы компилятора. Отдельное внимание уделено рассмотрению основных функции алгоритмов, которые реализуются на разных этапах работы компилятора. Также рассмотрены возможности использования машинного обучения для оптимизации компиляторов.
Образец цитирования:
Харин И.А., Раскатова М.В. Анализ алгоритмов составляющих частей компилятора и его оптимизации // Computational Nanotechnology. 2023. Т. 10. № 2. С. 26-35. DOI: 10.33693/2313-223X-2023-10-2-26-35. EDN: BDGKMA
Список литературы:
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.
Ключевые слова:
компилятор, программный код, оптимизация, алгоритм, анализ, синтез, машинное обучение.