<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root>
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" article-type="research-article" dtd-version="1.2" xml:lang="en"><front><journal-meta><journal-id journal-id-type="publisher-id">Computational nanotechnology</journal-id><journal-title-group><journal-title xml:lang="en">Computational nanotechnology</journal-title><trans-title-group xml:lang="kk"><trans-title>Computational nanotechnology</trans-title></trans-title-group><trans-title-group xml:lang="pt"><trans-title>Computational nanotechnology</trans-title></trans-title-group><trans-title-group xml:lang="ru"><trans-title>Computational nanotechnology</trans-title></trans-title-group><trans-title-group xml:lang="zh"><trans-title>Computational nanotechnology</trans-title></trans-title-group></journal-title-group><issn publication-format="print">2313-223X</issn><issn publication-format="electronic">2587-9693</issn><publisher><publisher-name xml:lang="en">YUR-VAK</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="publisher-id">568056</article-id><article-id pub-id-type="doi">10.33693/2313-223X-2023-10-2-26-35</article-id><article-id pub-id-type="edn">BDGKMA</article-id><article-categories><subj-group subj-group-type="toc-heading" xml:lang="en"><subject>MATHEMATICAL AND SOFTWARE OF COMPUTЕRS,  COMPLEXES AND COMPUTER NETWORKS</subject></subj-group><subj-group subj-group-type="toc-heading" xml:lang="ru"><subject>МАТЕМАТИЧЕСКОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ  ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ, КОМПЛЕКСОВ  И КОМПЬЮТЕРНЫХ СЕТЕЙ</subject></subj-group><subj-group subj-group-type="article-type"><subject>Research Article</subject></subj-group></article-categories><title-group><article-title xml:lang="en">Analysis of the Algorithms of the Constituent Parts of the Compiler and its Optimization</article-title><trans-title-group xml:lang="ru"><trans-title>Анализ алгоритмов составляющих частей компилятора и его оптимизации</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author"><name-alternatives><name xml:lang="en"><surname>Kharin</surname><given-names>Ilya A.</given-names></name><name xml:lang="ru"><surname>Харин</surname><given-names>Илья Андреевич</given-names></name></name-alternatives><address><country country="RU">Russian Federation</country></address><bio xml:lang="en"><p>postgraduate student at the Department of Computing Machines, Systems and Networks of the National Research University “MEI”</p></bio><bio xml:lang="ru"><p>аспирант кафедры вычислительных машин, систем и сетей Национального исследовательского университета «МЭИ»</p></bio><email>xarin.ilya@bk.ru</email><xref ref-type="aff" rid="aff1"/></contrib><contrib contrib-type="author"><name-alternatives><name xml:lang="en"><surname>Raskatova</surname><given-names>Marina V.</given-names></name><name xml:lang="ru"><surname>Раскатова</surname><given-names>Марина Викторовна</given-names></name></name-alternatives><address><country country="RU">Russian Federation</country></address><bio xml:lang="en"><p>Candidate of Engineering; associate professor at the Department of Computing Machines, Complexes and Systems of the National Research University “MEI”</p></bio><bio xml:lang="ru"><p>кандидат технических наук; доцент кафедры вычислительных машин, комплексов и систем Национального исследовательского университета «МЭИ»</p></bio><email>marvp@yandex.ru</email><xref ref-type="aff" rid="aff1"/></contrib></contrib-group><aff-alternatives id="aff1"><aff><institution xml:lang="en">National Research University “MEI”</institution></aff><aff><institution xml:lang="ru">Национальный исследовательский университет «Московский энергетический институт (МЭИ)»</institution></aff></aff-alternatives><pub-date date-type="pub" iso-8601-date="2023-08-06" publication-format="electronic"><day>06</day><month>08</month><year>2023</year></pub-date><volume>10</volume><issue>2</issue><issue-title xml:lang="en"/><issue-title xml:lang="ru"/><fpage>26</fpage><lpage>35</lpage><history><date date-type="received" iso-8601-date="2023-08-05"><day>05</day><month>08</month><year>2023</year></date><date date-type="accepted" iso-8601-date="2023-08-05"><day>05</day><month>08</month><year>2023</year></date></history><permissions><copyright-statement xml:lang="en">Copyright ©; 2023, Yur-VAK</copyright-statement><copyright-statement xml:lang="ru">Copyright ©; 2023, Юр-ВАК</copyright-statement><copyright-year>2023</copyright-year><copyright-holder xml:lang="en">Yur-VAK</copyright-holder><copyright-holder xml:lang="ru">Юр-ВАК</copyright-holder><ali:free_to_read xmlns:ali="http://www.niso.org/schemas/ali/1.0/"/><license><ali:license_ref xmlns:ali="http://www.niso.org/schemas/ali/1.0/">https://journals.eco-vector.com/2313-223X/about/editorialPolicies</ali:license_ref></license></permissions><self-uri xlink:href="https://journals.eco-vector.com/2313-223X/article/view/568056">https://journals.eco-vector.com/2313-223X/article/view/568056</self-uri><abstract xml:lang="en"><p>Program optimization arose as a response to the emergence of high-level programming languages, and includes special techniques and methods used in building compilers to produce sufficiently efficient object code. A combination of these techniques constituted in the past and are now an integral part of so-called optimizing compilers, the purpose of which is to create object code, saving computer resources such as processor time and memory. For modern supercomputers, the requirement to make proper use of hardware features is also added. In this context, issues related to compiler optimization deserve special attention, which may involve adapting the compiler to reduce runtime or object size, or both. In view of the above, the aim of the paper is to analyze the algorithms of the compiler constituents and outline ways to optimize it. The general technology of the compiler is briefly characterized. Particular attention is paid to the main functions of the algorithms, which are implemented at different stages of the compiler’s work. The possibilities of using machine learning to optimize compilers are also considered.</p></abstract><trans-abstract xml:lang="ru"><p>Оптимизация программ возникла, как ответ на появление высокоуровневых языков программирования, и включает в себя специальные приемы и методы, используемые при построении компиляторов для получения достаточно эффективного объектного кода. Совокупность этих методов составляла в прошлом и является теперь неотъемлемой частью так называемых оптимизирующих компиляторов, целью которых заключается в создании объектного кода, позволяя экономить такие компьютерные ресурсы, как процессорное время и память. Для современных суперкомпьютеров добавляется также требование правильного использования аппаратных особенностей. В данном контексте особого внимания заслуживают вопросы, связанные с оптимизацией компиляторов, которая может включать в себя адаптацию компилятора для уменьшения времени выполнения или размера объекта, или и того, и другого. С учетом вышеизложенного, цель статьи заключается в проведении анализа алгоритмов составляющих частей компилятора и обозначении путей его оптимизации. В процессе исследования кратко охарактеризована общая технология работы компилятора. Отдельное внимание уделено рассмотрению основных функции алгоритмов, которые реализуются на разных этапах работы компилятора. Также рассмотрены возможности использования машинного обучения для оптимизации компиляторов.</p></trans-abstract><kwd-group xml:lang="en"><kwd>compiler</kwd><kwd>program code</kwd><kwd>optimization</kwd><kwd>algorithm</kwd><kwd>analysis</kwd><kwd>synthesis</kwd><kwd>machine learning</kwd></kwd-group><kwd-group xml:lang="ru"><kwd>компилятор</kwd><kwd>программный код</kwd><kwd>оптимизация</kwd><kwd>алгоритм</kwd><kwd>анализ</kwd><kwd>синтез</kwd><kwd>машинное обучение</kwd></kwd-group><funding-group/></article-meta></front><body></body><back><ref-list><ref id="B1"><label>1.</label><citation-alternatives><mixed-citation xml:lang="en">Aschwanden P. CcNav: Understanding compiler optimizations in binary code. IEEE Transactions on Visualization and Computer Graphics. 2021. Vol. 27. No. 2. Pp. 667–677.</mixed-citation><mixed-citation xml:lang="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.</mixed-citation></citation-alternatives></ref><ref id="B2"><label>2.</label><citation-alternatives><mixed-citation xml:lang="en">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.</mixed-citation><mixed-citation xml:lang="ru">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.</mixed-citation></citation-alternatives></ref><ref id="B3"><label>3.</label><citation-alternatives><mixed-citation xml:lang="en">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.</mixed-citation><mixed-citation xml:lang="ru">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.</mixed-citation></citation-alternatives></ref><ref id="B4"><label>4.</label><citation-alternatives><mixed-citation xml:lang="en">Sampson A., Adit N. Performance left on the table: An eva-luation of compiler autovectorization for RISC-V. IEEE Micro. 2022. Vol. 42. No. 5. Pp. 41–48.</mixed-citation><mixed-citation xml:lang="ru">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.</mixed-citation></citation-alternatives></ref><ref id="B5"><label>5.</label><citation-alternatives><mixed-citation xml:lang="en">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.</mixed-citation><mixed-citation xml:lang="ru">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.</mixed-citation></citation-alternatives></ref><ref id="B6"><label>6.</label><citation-alternatives><mixed-citation xml:lang="en">Tewary M., Salcic Z. Compiler-assisted energy reduction of java real-time programs. Microprocessors and Microsys-tems. 2022. Vol. 89. No. 3. Pp. 78–83.</mixed-citation><mixed-citation xml:lang="ru">Tewary M., Salcic Z.. Compiler-assisted energy reduction of java real-time programs // Microprocessors and Microsystems. 2022. Vol. 89. No. 3. Pp. 78–83.</mixed-citation></citation-alternatives></ref><ref id="B7"><label>7.</label><citation-alternatives><mixed-citation xml:lang="en">Wang Zh. Machine learning in compiler optimization. Proceedings of the IEEE. 2018. Vol. 106. No. 11. Pp. 1879–1901.</mixed-citation><mixed-citation xml:lang="ru">Wang Zh. Machine learning in compiler optimization // Proceedings of the IEEE. 2018. Vol. 106. No. 11. Pp. 1879–1901.</mixed-citation></citation-alternatives></ref><ref id="B8"><label>8.</label><citation-alternatives><mixed-citation xml:lang="en">Baglii A.P., Krivosheev N.M., Steinberg B.Y. Automation of program paralleling with data transfer optimization. Scientific Service on the Internet. 2022. No. 24. Pp. 81–92. (In Rus.)</mixed-citation><mixed-citation xml:lang="ru">Баглий А.П., Кривошеев Н.М., Штейнберг Б.Я. Автоматизация распараллеливания программ с оптимизацией пересылок данных // Научный сервис в сети Интернет. 2022. № 24. С. 81–92.</mixed-citation></citation-alternatives></ref><ref id="B9"><label>9.</label><citation-alternatives><mixed-citation xml:lang="en">Bolotnov A.M., Nurislamova E.A. The influence of GCC compiler optimization on program code efficiency in C++. Modern Science-Intensive Technologies. 2019. No. 12-2. Pp. 266–270. (In Rus.)</mixed-citation><mixed-citation xml:lang="ru">Болотнов А.М., Нурисламова Э.А. Влияние оптимизации компилятора GCC на эффективность программного кода в языке C++ // Современные наукоемкие технологии. 2019. № 12-2. С. 266–270.</mixed-citation></citation-alternatives></ref><ref id="B10"><label>10.</label><citation-alternatives><mixed-citation xml:lang="en">Vyukova N.I., Galatenko V.A., Samborsky S.V. Means of dynamic program analysis in GCC and CLANG compilers. Programming. 2020. No. 4. Pp. 46–64. (In Rus.)</mixed-citation><mixed-citation xml:lang="ru">Вьюкова Н.И., Галатенко В.А., Самборский С.В. Средства динамического анализа программ в компиляторах GCC и CLANG // Программирование. 2020. № 4. С. 46–64.</mixed-citation></citation-alternatives></ref><ref id="B11"><label>11.</label><citation-alternatives><mixed-citation xml:lang="en">Malyavko A.A. Error handling in the parser of EL compiler. Scientific Vestnik of Novosibirsk State Technical University. 2019. No. 2 (75). Pp. 37–48. (In Rus.)</mixed-citation><mixed-citation xml:lang="ru">Малявко А.А. Обработка ошибок в синтаксическом анализаторе компилятора языка EL // Научный вестник Новосибирского гос. техн. ун-та. 2019. № 2 (75). С. 37–48.</mixed-citation></citation-alternatives></ref><ref id="B12"><label>12.</label><citation-alternatives><mixed-citation xml:lang="en">Sovetov P.N. Iterative approach using a compiler to synthesize and model a problem-oriented instruction set. International Journal of Open Information Technologies. 2019. Vol. 7. No. 10. Pp. 14–21. (In Rus.)</mixed-citation><mixed-citation xml:lang="ru">Советов П.Н. Итеративный подход с использованием компилятора для синтеза и моделирования проблемно-ориентированного набора команд // International Journal of Open Information Technologies. 2019. Т. 7. № 10. С. 14–21.</mixed-citation></citation-alternatives></ref><ref id="B13"><label>13.</label><citation-alternatives><mixed-citation xml:lang="en">Strelets A.I., Chernikova E.A., Malkov L.V., Dozhdev A.I. Structure of the compiler of a one-time program. International Journal of Humanities and Natural Sciences. 2019. No. 1-1. Pp. 146–147. (In Rus.)</mixed-citation><mixed-citation xml:lang="ru">Стрелец А.И., Черникова Е.А., Малков Л.В., Дождев А.И. Структура компилятора одноразовой программы // Международный журнал гуманитарных и естественных наук. 2019. № 1-1. С. 146–147.</mixed-citation></citation-alternatives></ref><ref id="B14"><label>14.</label><citation-alternatives><mixed-citation xml:lang="en">Tretiak A.V. The importance of indentation in the development of lexical analyzer compilers. Molodezh. Science. Innovations. 2021. Vol. 1. Pp. 306–309. (In Rus.)</mixed-citation><mixed-citation xml:lang="ru">Третьяк А.В. Значимость отступов при разработке лексического анализатора компиляторов // Молодежь. Наука. Инновации. 2021. Т. 1. С. 306–309.</mixed-citation></citation-alternatives></ref><ref id="B15"><label>15.</label><citation-alternatives><mixed-citation xml:lang="en">Steinberg B.J. Transformations of programs – fundamental basis for creating optimizing parallelizing compilers. Software Systems: Theory and Applications. 2021. Vol. 12. No. 1 (48). Pp. 21–113. (In Rus.)</mixed-citation><mixed-citation xml:lang="ru">Штейнберг Б.Я. Преобразования программ – фундаментальная основа создания оптимизирующих распараллеливающих компиляторов // Программные системы: теория и приложения. 2021. Т. 12. № 1 (48). С. 21–113.</mixed-citation></citation-alternatives></ref></ref-list></back></article>
