<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" 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" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">infoschool</journal-id><journal-title-group><journal-title xml:lang="ru">Информатика в школе</journal-title><trans-title-group xml:lang="en"><trans-title>Informatics in school</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">2221-1993</issn><publisher><publisher-name>Publishing House Education and Informatics</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.32517/2221-1993-2023-22-6-18-30</article-id><article-id custom-type="elpub" pub-id-type="custom">infoschool-748</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>МЕТОДИЧЕСКАЯ КОПИЛКА</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="en"><subject>TEACHING PRACTICES</subject></subj-group></article-categories><title-group><article-title>Три этюда по компиляции, или Как использовать язык Julia для изучения генерируемого машинного кода</article-title><trans-title-group xml:lang="en"><trans-title>Three etudes on compiling, or How to use the Julia language to study generated machine code</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Еремин</surname><given-names>Е. А.</given-names></name><name name-style="western" xml:lang="en"><surname>Eremin</surname><given-names>E. A.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Еремин Евгений Александрович, канд. физ.-мат. наук, доцент, доцент факультета информатики и экономики</p><p>614990, г. Пермь, ул. Сибирская, д. 24</p></bio><bio xml:lang="en"><p>Perm</p></bio><email xlink:type="simple">evg_eremin@mail.ru</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Пермский государственный гуманитарно-педагогический университет</institution><country>Россия</country></aff><aff xml:lang="en"><institution>Perm State Humanitarian Pedagogical University</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2023</year></pub-date><pub-date pub-type="epub"><day>26</day><month>12</month><year>2023</year></pub-date><volume>0</volume><issue>6</issue><fpage>18</fpage><lpage>30</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Еремин Е.А., 2023</copyright-statement><copyright-year>2023</copyright-year><copyright-holder xml:lang="ru">Еремин Е.А.</copyright-holder><copyright-holder xml:lang="en">Eremin E.A.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://school.infojournal.ru/jour/article/view/748">https://school.infojournal.ru/jour/article/view/748</self-uri><abstract><p>Статья демонстрирует интересную для образования возможность языка программирования Julia выводить ассемблерный текст для любой написанной на Julia функции. Подробно рассмотрен исполняемый код для трех наглядных примеров: вычисление по формуле, разветвляющийся и циклический фрагменты. Показано, что компилятор Julia действительно генерирует тщательно оптимизированную программу, стараясь использовать выполняемые максимально быстро инструкции процессора Intel. Он успешно пытается обойтись без трудоемких арифметических операций (если удается, то значения вычисляются заранее, умножение заменяется сдвигом и т. п.). Особенно впечатляют результаты для целочисленных данных. Удается увидеть целый ряд оптимизационных приемов, в том числе учитывающих особенности самого алгоритма: например, компилятор способен предсказать результаты простейшего цикла и исключить этот цикл из итоговой программы. Обсуждается также проблема контроля переполнения в программе.</p><p>Проведенное рассмотрение убедительно подтверждает полезность теоретических знаний для разработки эффективно работающей программы. Описанная методика анализа представляет интерес для образования, поскольку важность глубокого понимания современными специалистами сути процесса программирования трудно переоценить. Материал может быть полезен при обучении идеям программирования на разных уровнях. Детальность изложения делает статью доступной для чтения без специальной подготовки.</p></abstract><trans-abstract xml:lang="en"><p>The article demonstrates the ability of the Julia programming language to output an assembly text for any function written in Julia, which is interesting for education. The executable code for three illustrative examples is examined in detail: calculation by formula, branching and cyclic fragments. It is shown that Julia compiler really generates a carefully optimized program, trying to use the fastest executing instructions of the Intel processor. It successfully tries to do without time-consuming arithmetic operations (if possible, the values are calculated in advance, multiplication is replaced by shift and so on). The results for integer data are especially impressive. It is possible to see a whole range of optimization techniques, including those that take into account the features of the algorithm itself: for example, the compiler is able to predict the results of the simplest loop and exclude this loop from the final program. The problem of overflow control in a program is also discussed.</p><p>The consideration carried out convincingly confirms the usefulness of theoretical knowledge for developing an effectively working program. The described analysis technique is interesting for education, because the importance of a deep understanding by modern specialists of the programming process essence cannot be overestimated. The material can be useful in teaching programming ideas at different levels. The detailed presentation makes the article readable without special preparation.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>программирование</kwd><kwd>язык Julia</kwd><kwd>компиляция</kwd><kwd>оптимизация</kwd><kwd>эффективность</kwd><kwd>исполняемый код</kwd><kwd>машинный код</kwd><kwd>обучение программированию</kwd><kwd>методики обучения</kwd></kwd-group><kwd-group xml:lang="en"><kwd>programming</kwd><kwd>Julia language</kwd><kwd>compilation</kwd><kwd>optimization</kwd><kwd>efficiency</kwd><kwd>executable code</kwd><kwd>machine code</kwd><kwd>programming training</kwd><kwd>teaching methods</kwd></kwd-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Антонюк В. А. Язык Julia как инструмент исследователя. М.: Физ. фак. МГУ имени М. В. Ломоносова, 2019. 48 с. https://cmp.phys.msu.ru/sites/default/files/VA_Antonyk_Julia_2019.pdf</mixed-citation><mixed-citation xml:lang="en">Антонюк В. А. Язык Julia как инструмент исследователя. М.: Физ. фак. МГУ имени М. В. Ломоносова, 2019. 48 с. https://cmp.phys.msu.ru/sites/default/files/VA_Antonyk_Julia_2019.pdf</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Белов Г. В. Краткое описание языка программирования Julia и примеры его использования. М.: МГТУ им. Н. Э. Баумана, 2023. 105 с. http://ihed.ras.ru/~thermo/Julia/BriefdescriptionofJulialanguage.pdf</mixed-citation><mixed-citation xml:lang="en">Белов Г. В. Краткое описание языка программирования Julia и примеры его использования. М.: МГТУ им. Н. Э. Баумана, 2023. 105 с. http://ihed.ras.ru/~thermo/Julia/BriefdescriptionofJulialanguage.pdf</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Белов Г. В., Аристова Н. М. О возможностях использования языка программирования Julia для решения научных и технических задач // Вестник МГТУ им. Н. Э. Баумана. Серия «Приборостроение». 2020. № 2 (131). С. 27–43. EDN: XODPOB. DOI: 10.18698/0236-3933-2020-2-27-43</mixed-citation><mixed-citation xml:lang="en">Белов Г. В., Аристова Н. М. О возможностях использования языка программирования Julia для решения научных и технических задач // Вестник МГТУ им. Н. Э. Баумана. Серия «Приборостроение». 2020. № 2 (131). С. 27–43. EDN: XODPOB. DOI: 10.18698/0236-3933-2020-2-27-43</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Белов Г. В., Аристова Н. М., Мальцев М. А. Использование языка программирования Julia для расчета равновесного состава многокомпонентной газофазной системы // Вестник Объединенного института высоких температур. 2022. Т. 7. № 1. С. 52–55. EDN: OIBSEI.</mixed-citation><mixed-citation xml:lang="en">Белов Г. В., Аристова Н. М., Мальцев М. А. Использование языка программирования Julia для расчета равновесного состава многокомпонентной газофазной системы // Вестник Объединенного института высоких температур. 2022. Т. 7. № 1. С. 52–55. EDN: OIBSEI.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Гук М. Ю. Процессоры Intel: от 8086 до Pentium II. СПб.: Питер, 1997. 224 с.</mixed-citation><mixed-citation xml:lang="en">Гук М. Ю. Процессоры Intel: от 8086 до Pentium II. СПб.: Питер, 1997. 224 с.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Еремин Е. А. Компилятор? Это довольно просто! Пермь: Изд-во ПРИПИТ, 1998. 120 с.</mixed-citation><mixed-citation xml:lang="en">Еремин Е. А. Компилятор? Это довольно просто! Пермь: Изд-во ПРИПИТ, 1998. 120 с.</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">Еремин Е. А. Стек // Информатика. 2008. № 2. С. 37–38; 2008. № 3. С. 42–44; 2008. № 4. С. 41–44; 2008. № 6. С. 43–45; 2008. № 8. С. 43–45; 2008. № 9. С. 39–42. http://emc.orgfree.com/theory/raznoe/d4.html</mixed-citation><mixed-citation xml:lang="en">Еремин Е. А. Стек // Информатика. 2008. № 2. С. 37–38; 2008. № 3. С. 42–44; 2008. № 4. С. 41–44; 2008. № 6. С. 43–45; 2008. № 8. С. 43–45; 2008. № 9. С. 39–42. http://emc.orgfree.com/theory/raznoe/d4.html</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Ефремова Т. Ф. Самый полный толковый словарь русского языка. В 3 т. М.: АСТ, 2015. 3312 с.</mixed-citation><mixed-citation xml:lang="en">Ефремова Т. Ф. Самый полный толковый словарь русского языка. В 3 т. М.: АСТ, 2015. 3312 с.</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">Иванова Е. М. Программная модель процессора и базовые инструкции процессоров Intel и MIPS. М.: НИУ ВШЭ, 2019. 139 с. https://publications.hse.ru/pubs/share/direct/317732672.pdf</mixed-citation><mixed-citation xml:lang="en">Иванова Е. М. Программная модель процессора и базовые инструкции процессоров Intel и MIPS. М.: НИУ ВШЭ, 2019. 139 с. https://publications.hse.ru/pubs/share/direct/317732672.pdf</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">ИТ-шники всего мира назвали самый любимый и самый ненавистный язык программирования // CNews, 4 августа 2021. https://www.cnews.ru/news/top/2021-08-03_programmisty_vsego_mira</mixed-citation><mixed-citation xml:lang="en">ИТ-шники всего мира назвали самый любимый и самый ненавистный язык программирования // CNews, 4 августа 2021. https://www.cnews.ru/news/top/2021-08-03_programmisty_vsego_mira</mixed-citation></citation-alternatives></ref><ref id="cit11"><label>11</label><citation-alternatives><mixed-citation xml:lang="ru">Кулябов Д. С., Корольковa А. В. Компьютерная алгебра на Julia // Программирование. 2021. № 2. С. 44–50. EDN: HETTIQ.</mixed-citation><mixed-citation xml:lang="en">Кулябов Д. С., Корольковa А. В. Компьютерная алгебра на Julia // Программирование. 2021. № 2. С. 44–50. EDN: HETTIQ.</mixed-citation></citation-alternatives></ref><ref id="cit12"><label>12</label><citation-alternatives><mixed-citation xml:lang="ru">Лопес Б. К., Аулер Р. LLVM: инфраструктура для разработки компиляторов. М.: ДМК Пресс, 2015. 342 с.</mixed-citation><mixed-citation xml:lang="en">Лопес Б. К., Аулер Р. LLVM: инфраструктура для разработки компиляторов. М.: ДМК Пресс, 2015. 342 с.</mixed-citation></citation-alternatives></ref><ref id="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">Ожегов С. И., Шведова Н. Ю. Толковый словарь русского языка. М.: Азбуковник, 1997. 944 с.</mixed-citation><mixed-citation xml:lang="en">Ожегов С. И., Шведова Н. Ю. Толковый словарь русского языка. М.: Азбуковник, 1997. 944 с.</mixed-citation></citation-alternatives></ref><ref id="cit14"><label>14</label><citation-alternatives><mixed-citation xml:lang="ru">Оконешникова Е. А. Новый язык программирования в учебном процессе и научных исследованиях // Наука. Информатизация. Технологии. Образование. Материалы XIII международной научно-практической конференции (Екатеринбург, 24–28 февраля 2020 г.). Екатеринбург: Российский государственный профессионально-педагогический университет, 2020. С. 123–129. EDN: WVFCHN.</mixed-citation><mixed-citation xml:lang="en">Оконешникова Е. А. Новый язык программирования в учебном процессе и научных исследованиях // Наука. Информатизация. Технологии. Образование. Материалы XIII международной научно-практической конференции (Екатеринбург, 24–28 февраля 2020 г.). Екатеринбург: Российский государственный профессионально-педагогический университет, 2020. С. 123–129. EDN: WVFCHN.</mixed-citation></citation-alternatives></ref><ref id="cit15"><label>15</label><citation-alternatives><mixed-citation xml:lang="ru">Смит Б. Э., Джонсон М. Т. Архитектура и программирование микропроцессора INTEL 80386. М.: Конкорд, 1992. 334 с.</mixed-citation><mixed-citation xml:lang="en">Смит Б. Э., Джонсон М. Т. Архитектура и программирование микропроцессора INTEL 80386. М.: Конкорд, 1992. 334 с.</mixed-citation></citation-alternatives></ref><ref id="cit16"><label>16</label><citation-alternatives><mixed-citation xml:lang="ru">Таненбаум Э. С. Архитектура компьютера. СПб.: Питер, 2003. 704 с.</mixed-citation><mixed-citation xml:lang="en">Таненбаум Э. С. Архитектура компьютера. СПб.: Питер, 2003. 704 с.</mixed-citation></citation-alternatives></ref><ref id="cit17"><label>17</label><citation-alternatives><mixed-citation xml:lang="ru">Устинин Д. М. Использование языка научных вычислений Julia для моделирования внутриклеточных процессов методом броуновской динамики // Доклады Международной конференции «Математическая биология и биоинформатика». 2018. № 7. С. e29.1–e29.4. EDN: YPPYWL. DOI: 10.17537/icmbb18.93</mixed-citation><mixed-citation xml:lang="en">Устинин Д. М. Использование языка научных вычислений Julia для моделирования внутриклеточных процессов методом броуновской динамики // Доклады Международной конференции «Математическая биология и биоинформатика». 2018. № 7. С. e29.1–e29.4. EDN: YPPYWL. DOI: 10.17537/icmbb18.93</mixed-citation></citation-alternatives></ref><ref id="cit18"><label>18</label><citation-alternatives><mixed-citation xml:lang="ru">Шагурин И. И., Бердышев Е. М. Процессоры семейства Intel P6. Архитектура, программирование, интерфейс. М.: Горячая линия — Телеком, 2000. 248 с.</mixed-citation><mixed-citation xml:lang="en">Шагурин И. И., Бердышев Е. М. Процессоры семейства Intel P6. Архитектура, программирование, интерфейс. М.: Горячая линия — Телеком, 2000. 248 с.</mixed-citation></citation-alternatives></ref><ref id="cit19"><label>19</label><citation-alternatives><mixed-citation xml:lang="ru">Шадрин Ю. А., Грюмова Е. А., Гумирова А. И. Обзор языка программирования Julia // Технологии инженерных и информационных систем. 2019. № 3. С. 43–52. EDN: IIUXHP.</mixed-citation><mixed-citation xml:lang="en">Шадрин Ю. А., Грюмова Е. А., Гумирова А. И. Обзор языка программирования Julia // Технологии инженерных и информационных систем. 2019. № 3. С. 43–52. EDN: IIUXHP.</mixed-citation></citation-alternatives></ref><ref id="cit20"><label>20</label><citation-alternatives><mixed-citation xml:lang="ru">Шеррингтон М. Осваиваем язык Julia. Совершенствование мастерства в области аналитики и программирования. М: ДМК-Пресс, 2017. 416 с.</mixed-citation><mixed-citation xml:lang="en">Шеррингтон М. Осваиваем язык Julia. Совершенствование мастерства в области аналитики и программирования. М: ДМК-Пресс, 2017. 416 с.</mixed-citation></citation-alternatives></ref><ref id="cit21"><label>21</label><citation-alternatives><mixed-citation xml:lang="ru">Шиндин А. В. Язык программирования математических вычислений Julia. Базовое руководство. Нижний Новгород: ННГУ, 2016. 24 с. http://www.unn.ru/books/met_files/JULIA_tutorial.pdf</mixed-citation><mixed-citation xml:lang="en">Шиндин А. В. Язык программирования математических вычислений Julia. Базовое руководство. Нижний Новгород: ННГУ, 2016. 24 с. http://www.unn.ru/books/met_files/JULIA_tutorial.pdf</mixed-citation></citation-alternatives></ref><ref id="cit22"><label>22</label><citation-alternatives><mixed-citation xml:lang="ru">Энгхейм Э. Julia в качестве второго языка. М.: ДМК Пресс, 2023. 446 с.</mixed-citation><mixed-citation xml:lang="en">Энгхейм Э. Julia в качестве второго языка. М.: ДМК Пресс, 2023. 446 с.</mixed-citation></citation-alternatives></ref><ref id="cit23"><label>23</label><citation-alternatives><mixed-citation xml:lang="ru">Ben-Ari M. Constructivism in computer science education // Journal of Computers in Mathematics and Science Teaching. 2001. Vol. 20. No. 1. P. 45–73.</mixed-citation><mixed-citation xml:lang="en">Ben-Ari M. Constructivism in computer science education // Journal of Computers in Mathematics and Science Teaching. 2001. Vol. 20. No. 1. P. 45–73.</mixed-citation></citation-alternatives></ref><ref id="cit24"><label>24</label><citation-alternatives><mixed-citation xml:lang="ru">Bezanson J., Chen J., Chung B., Karpinski S., Shah V. B., Vitek J., Zoubritzky L. Julia: Dynamism and performance reconciled by design // Proceedings of the ACM on Programming Languages. 2018. Vol. 2 (OOPSLA). P. 120.1–120.23. DOI: 10.1145/3276490</mixed-citation><mixed-citation xml:lang="en">Bezanson J., Chen J., Chung B., Karpinski S., Shah V. B., Vitek J., Zoubritzky L. Julia: Dynamism and performance reconciled by design // Proceedings of the ACM on Programming Languages. 2018. Vol. 2 (OOPSLA). P. 120.1–120.23. DOI: 10.1145/3276490</mixed-citation></citation-alternatives></ref><ref id="cit25"><label>25</label><citation-alternatives><mixed-citation xml:lang="ru">Bezanson J., Edelman A., Karpinski S., Shah V. B. Julia: A fresh approach to numerical computing // SIAM Review. 2017. Vol. 59. No. 1. P. 65–98. DOI: 10.1137/141000671</mixed-citation><mixed-citation xml:lang="en">Bezanson J., Edelman A., Karpinski S., Shah V. B. Julia: A fresh approach to numerical computing // SIAM Review. 2017. Vol. 59. No. 1. P. 65–98. DOI: 10.1137/141000671</mixed-citation></citation-alternatives></ref><ref id="cit26"><label>26</label><citation-alternatives><mixed-citation xml:lang="ru">Bezanson J., Karpinski S., Shah V. B., Edelman A. Julia: A fast dynamic language for technical computing // arXiv preprint. arXiv:1209.5145. 2012. DOI: 10.48550/arXiv.1209.5145</mixed-citation><mixed-citation xml:lang="en">Bezanson J., Karpinski S., Shah V. B., Edelman A. Julia: A fast dynamic language for technical computing // arXiv preprint. arXiv:1209.5145. 2012. DOI: 10.48550/arXiv.1209.5145</mixed-citation></citation-alternatives></ref><ref id="cit27"><label>27</label><citation-alternatives><mixed-citation xml:lang="ru">Dijkstra E. W. Go to statement considered harmful // Communications of the ACM. 1968. Vol. 11. No. 3. P. 147–148. DOI: 10.1145/362929.362947. (Русский перевод: http://hosting.vspu.ac.ru/~chul/dijkstra/goto/goto.htm)</mixed-citation><mixed-citation xml:lang="en">Dijkstra E. W. Go to statement considered harmful // Communications of the ACM. 1968. Vol. 11. No. 3. P. 147–148. DOI: 10.1145/362929.362947. (Русский перевод: http://hosting.vspu.ac.ru/~chul/dijkstra/goto/goto.htm)</mixed-citation></citation-alternatives></ref><ref id="cit28"><label>28</label><citation-alternatives><mixed-citation xml:lang="ru">Du Boulay B. Some difficulties of learning to program // Journal of Educational Computing Research. 1986. Vol. 2. No. 1. P. 57–73. DOI: 10.2190/3LFX-9RRF-67T8-UVK9</mixed-citation><mixed-citation xml:lang="en">Du Boulay B. Some difficulties of learning to program // Journal of Educational Computing Research. 1986. Vol. 2. No. 1. P. 57–73. DOI: 10.2190/3LFX-9RRF-67T8-UVK9</mixed-citation></citation-alternatives></ref><ref id="cit29"><label>29</label><citation-alternatives><mixed-citation xml:lang="ru">Eremin E. A. Educational Pascal compiler into MMIX code // Proceedings of the 6th Baltic Sea Conference on Computing Education Research, Koli Calling. 2007. P. 143–144. EDN: MWQNJR.</mixed-citation><mixed-citation xml:lang="en">Eremin E. A. Educational Pascal compiler into MMIX code // Proceedings of the 6th Baltic Sea Conference on Computing Education Research, Koli Calling. 2007. P. 143–144. EDN: MWQNJR.</mixed-citation></citation-alternatives></ref><ref id="cit30"><label>30</label><citation-alternatives><mixed-citation xml:lang="ru">Gao K., Mei G., Piccialli F., Cuomo S., Tu J., Huo Z. Julia language in machine learning: Algorithms, applications, and open issues // Computer Science Review. 2020. Vol. 37. P. 100254.1–100254.13. DOI: 10.1016/j.cosrev.2020.100254</mixed-citation><mixed-citation xml:lang="en">Gao K., Mei G., Piccialli F., Cuomo S., Tu J., Huo Z. Julia language in machine learning: Algorithms, applications, and open issues // Computer Science Review. 2020. Vol. 37. P. 100254.1–100254.13. DOI: 10.1016/j.cosrev.2020.100254</mixed-citation></citation-alternatives></ref><ref id="cit31"><label>31</label><citation-alternatives><mixed-citation xml:lang="ru">Gevorkyan M. N., Korolkova A. V., Kulyabov D. S. Julia language features for processing statistical data // Discrete and Continuous Models and Applied Computational Science. 2023. Vol. 31. No. 1. P. 5–26. EDN: VNJCSU. DOI:10.22363/2658-46702023-31-1-5-26</mixed-citation><mixed-citation xml:lang="en">Gevorkyan M. N., Korolkova A. V., Kulyabov D. S. Julia language features for processing statistical data // Discrete and Continuous Models and Applied Computational Science. 2023. Vol. 31. No. 1. P. 5–26. EDN: VNJCSU. DOI:10.22363/2658-46702023-31-1-5-26</mixed-citation></citation-alternatives></ref><ref id="cit32"><label>32</label><citation-alternatives><mixed-citation xml:lang="ru">Intel 64 and IA-32 Architectures Software Developer’s Manual. 2023. 5066 p. http://asmcourse.cs.msu.ru/wp-content/uploads/2022/01/325383-sdm-vol-2abcd.pdf</mixed-citation><mixed-citation xml:lang="en">Intel 64 and IA-32 Architectures Software Developer’s Manual. 2023. 5066 p. http://asmcourse.cs.msu.ru/wp-content/uploads/2022/01/325383-sdm-vol-2abcd.pdf</mixed-citation></citation-alternatives></ref><ref id="cit33"><label>33</label><citation-alternatives><mixed-citation xml:lang="ru">Lattner C. LLVM // The Architecture of Open Source Applications. 2011. Vol. 1. P. 155–170. (Русский перевод: https://rus-linux.net/MyLDP/BOOKS/Architecture-Open-Source-Applications/Vol-1/llvm-1.html)</mixed-citation><mixed-citation xml:lang="en">Lattner C. LLVM // The Architecture of Open Source Applications. 2011. Vol. 1. P. 155–170. (Русский перевод: https://rus-linux.net/MyLDP/BOOKS/Architecture-Open-Source-Applications/Vol-1/llvm-1.html)</mixed-citation></citation-alternatives></ref><ref id="cit34"><label>34</label><citation-alternatives><mixed-citation xml:lang="ru">Lattner C., Adve V. LLVM: a compilation framework for lifelong program analysis &amp; transformation // Proceedings of the International Symposium on Code Generation and Optimization (CGO 2004). San Jose, CA, USA, 2004. P. 75–86. DOI: 10.1109/CGO.2004.1281665</mixed-citation><mixed-citation xml:lang="en">Lattner C., Adve V. LLVM: a compilation framework for lifelong program analysis &amp; transformation // Proceedings of the International Symposium on Code Generation and Optimization (CGO 2004). San Jose, CA, USA, 2004. P. 75–86. DOI: 10.1109/CGO.2004.1281665</mixed-citation></citation-alternatives></ref><ref id="cit35"><label>35</label><citation-alternatives><mixed-citation xml:lang="ru">Miller E. Why I’m betting on Julia. https://www.evanmiller.org/why-im-betting-on-julia.html. (Русский перевод: https://habr.com/ru/articles/210298/)</mixed-citation><mixed-citation xml:lang="en">Miller E. Why I’m betting on Julia. https://www.evanmiller.org/why-im-betting-on-julia.html. (Русский перевод: https://habr.com/ru/articles/210298/)</mixed-citation></citation-alternatives></ref><ref id="cit36"><label>36</label><citation-alternatives><mixed-citation xml:lang="ru">Nazarathy Y., Klok H. Statistics with Julia: Fundamentals for data science, machine learning and artificial intelligence. Springer Series in the Data Sciences. Springer Nature, 2021. 527 p. DOI: 10.1007/978-3-030-70901-3</mixed-citation><mixed-citation xml:lang="en">Nazarathy Y., Klok H. Statistics with Julia: Fundamentals for data science, machine learning and artificial intelligence. Springer Series in the Data Sciences. Springer Nature, 2021. 527 p. DOI: 10.1007/978-3-030-70901-3</mixed-citation></citation-alternatives></ref><ref id="cit37"><label>37</label><citation-alternatives><mixed-citation xml:lang="ru">Salceanu A. Julia Programming Projects: Learn Julia 1.x by building apps for data analysis, visualization, machine learning, and the web. Birmingham: Packt Publishing Ltd, 2018. 500 p.</mixed-citation><mixed-citation xml:lang="en">Salceanu A. Julia Programming Projects: Learn Julia 1.x by building apps for data analysis, visualization, machine learning, and the web. Birmingham: Packt Publishing Ltd, 2018. 500 p.</mixed-citation></citation-alternatives></ref><ref id="cit38"><label>38</label><citation-alternatives><mixed-citation xml:lang="ru">Sengupta A., Edelman A. Julia High Performance: Optimizations, distributed computing, multithreading, and GPU programming with Julia 1.0 and beyond. 2nd Edition. Birmingham: Packt Publishing Ltd, 2019. 218 p.</mixed-citation><mixed-citation xml:lang="en">Sengupta A., Edelman A. Julia High Performance: Optimizations, distributed computing, multithreading, and GPU programming with Julia 1.0 and beyond. 2nd Edition. Birmingham: Packt Publishing Ltd, 2019. 218 p.</mixed-citation></citation-alternatives></ref><ref id="cit39"><label>39</label><citation-alternatives><mixed-citation xml:lang="ru">The Julia Language. V.1.9.2. The Julia Project. July 6, 2023. 1644 p. https://docs.julialang.org/en/v1/</mixed-citation><mixed-citation xml:lang="en">The Julia Language. V.1.9.2. The Julia Project. July 6, 2023. 1644 p. https://docs.julialang.org/en/v1/</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
