Системы анализа и обработки данных

СИСТЕМЫ АНАЛИЗА И ОБРАБОТКИ ДАННЫХ

ISSN (печатн.): 2782-2001          ISSN (онлайн): 2782-215X
English | Русский

Последний выпуск
№2(98) Апрель - Июнь 2025

Функционально-императивный язык программирования El

Выпуск № 1 (70) Январь - Март 2018
Авторы:

Малявко Александр Антонович ,
DOI: http://dx.doi.org/10.17212/1814-1196-2018-1-117-136
Аннотация

В работе обсуждается тенденция взаимопроникновения идей и технологий функциональной и императивной парадигм программирования в современные их реализации. Предлагается новый функционально-императивный язык программирования El, во многом похожий на функциональный язык Erlang, но отличающийся от него рядом особенностей. Приводится краткое описание лексики, синтаксиса и семантики языка El. Выделяются его основные отличительные черты и характеристики: чистые функции, функции первого и высшего порядка, анонимные функции, замыкания, перегрузка сигнатур функций, локальность сбора мусора, императивность выполнения операций в теле функции, высокоуровневые типы данных и операции над ними, вариативность статической и динамической типизации, а также иммутабельности переменных по выбору программиста, наличие примитивных и высокоуровневых типов данных и операций над ними, немногословность, простота и удобство управляющих конструкций, возможность явного определения циклов вместо более дорогостоящих рекурсивных вызовов функций, которые, впрочем, тоже можно использовать. Описывается типовая структура файла, содержащего программный модуль; приводится перечень и назначение его секций, определения функций, все виды управляющих операторов языка, сводка существенных отличительных характеристик языка. Описывается текущее состояние разработки и реализации транслятора программ с языка El для разных целевых платформ с использованием инфраструктуры компиляторов LLVM.


Ключевые слова: язык программирования, функциональная парадигма, императивная парадигма, лексика, синтаксис, семантика, выражение, оператор, компилятор
Малявко Александр Антонович
630073, РФ, г. Новосибирск, пр. Карла Маркса, 20, Новосибирский государственный технический университет, кандидат технических наук, доцент. Е-mail:
a.malyavko@corp.nstu.ru
Orcid: 0000-0003-2672-7753

Список литературы

1. Себеста P. Основные концепции языков программирования. – М.: Вильямс, 2001.



2. Кауфман В.Ш. Языки программирования. Концепции и принципы. – М.: ДМК-Пресс, 2011. – 464 с.



3. Филд А., Харрисон П. Функциональное программирование. – М.: Мир, 1993. – 637 с.



4. Wadler P. Why no one uses functional languages // ACM SIGPLAN Notices. – 1998. – Vol. 33 (8). – P. 23–27.



5. Городняя Л.В. Парадигмальная декомпозиция определения языка программирования // Научный сервис в сети Интернет: труды XVIII Всероссийской научной конференции, (19–24 сентября 2016 г., г. Новороссийск). – М.: ИПМ им. М.В. Келдыша, 2016. – С. 115–127.



6. Davis A. What's new in Java 8: an unofficial guide [Electronic resource]. – May 7, 2014. – URL: https://leanpub.com/whatsnewinjava8/read (accessed: 21.03.2018).



7. Ахмечет В. Функциональное программирование для всех [Электронный ресурс] // RSDN Magazine. – 2006. – N 2. – URL: http://rsdn.org/article/funcprog/fp.xml (дата обращения: 21.03.2018).



8. Armstrong J. Programming Erlang: software for a concurrent world. – 2nd ed. – Dallas, Texas: The Pragmatic Bookshelf, 2013.



9. Чезарини Ф., Томпсон С. Программирование в Erlang. – М.: ДМК Пресс, 2012. – 487 с.



10. Десять решений проблемы stop the world при использовании автоматической сборки мусора [Электронный ресурс]. – URL: https://eax.me/stop-the-world/ (дата обращения: 21.03.2018).



11. Малявко А.А. Формальные языки и компиляторы: учебное пособие для вузов. – М.: Юрайт, 2017. – 429 с.



12. Малявко А.А. Использование веб-приложений и веб-технологий при разработке учебного программного обеспечения для изучения методов трансляции // Современное образование: технические университеты в модернизации экономики России: материалы Международной научно-методической конференции. – Томск: Изд-во ТУСУР, 2011. – С. 45–47.



13. Лопес Б, Аулер Р. LLVM: инфраструктура для разработки компиляторов. – М.: ДМК Пресс, 2015. – 342 с.



14. Сен А. Создание действующего компилятора с помощью инфраструктуры LLVM. Ч. 1 [Электронный ресурс]. – URL: https://www.ibm.com/developerworks/ru/library/os-createcompilerllvm1/index.html (дата обращения: 21.03.2018).



15. Сен А. Создание действующего компилятора с помощью инфраструктуры LLVM. Ч. 2 [Электронный ресурс]. – URL: https://www.ibm.com/developerworks/ru/library/os-createcompilerllvm2/index.html (дата обращения: 21.03.2018).

Просмотров аннотации: 1727
Скачиваний полного текста: 1139
Просмотров интерактивной версии: 0
Для цитирования:

Малявко А.А. Функционально-императивный язык программирования El // Научный вестник НГТУ. – 2018. – № 1 (70). – С. 117–136. – doi: 10.17212/1814-1196-2018-1-117-136.

For citation:

Maliavko A.А. Funktsional'no-imperativnyi yazyk programmirovaniya El [The functional-imperative programming language El]. Nauchnyi vestnik Novosibirskogo gosudarstvennogo tekhnicheskogo universitetaScience bulletin of the Novosibirsk state technical university, 2018, no. 1 (70), pp. . doi: 117–136. doi: 10.17212/1814-1196-2018-1-117-136.