І.В. Пучко1, А.М. Примушко 2, Г.О. Кравцов 3, канд. техн. наук
1 Національний авіаційний університет
Україна,03680, Київ, пр-т Любомира Гузара, 1
е-mail:
2 Національний технічний університет України
«Київський політехнічний інститут ім. Ігоря Сікорського»
Україна, 03056, Київ, пр-т Перемоги, 37
е-mail:
3 Інститут проблем моделювання в енергетиці
ім. Г.Е. Пухова НАН України
Україна, 03164, Київ, вул. Генерала Наумова, 15
е-mail:
Èlektron. model. 2021, 43(5):95-106
https://doi.org/10.15407/emodel.43.06.095
АНОТАЦІЯ
Розглянуто різні підходи до визначення структур даних та створення програм в різних парадигмах програмування. Показано залежність імперативної парадигми програмуванння від алгоритмів та операцій низького рівня. Наведено ідеї щодо основних змінних структур даних та операцій щодо їх мутації. Описано підходи до організації алгоритмів у мові програмування Scala за допомогою цих структур даних. Показано, що у декларативній парадигмі програмування фокус переходить від алгоритмів до математичних виразів, та продемонстровано, як, використовуючи операції високого рівня, створити програму за допомогою алгебраїчних виразів.
КЛЮЧОВІ СЛОВА:
Scala, функціональна парадигма програмування, імперативна парадигма програмування, декларативна парадигма програмування, лямбда-функції, анонімні функції, функції вищого порядку.
СПИСОК ЛІТЕРАТУРИ
- Chiusano P., Bjarnason R. Functional Programming in Scala. [Електронний ресурс]. Режим доступу: https://www.manning.com/books/functional-programming-in-scala.
- Kmetiuk A. Mastering Functional Programming. Birmingham: Packt Publishing Ltd, 2018, 501 р.
- Volpe G. Practical FP in Scala. [Електронний ресурс]. Режим доступу: https://leanpub. com/pfp-scala
- Adam R. Essential Effects. [Електронний ресурс]. Режим доступу: https://essentialeffects.dev/
- Halliday S. Functional Programming for Mortals with Scalaz. [Електронний ресурс]. Режим доступу: https://leanpub.com/fpmortals
- The Java® Virtual Machine Specification. [Електронний ресурс]. Режим доступу: https://docs.oracle.com/javase/specs/jvms/se7/html/index.html.
ПУЧКО Іван Вікторович, провідний інженер програмного забезпечення в компанії INSCALE. В 2008 р. закінчив Національний авіаційний університет. Область наукових достіджень — масштабування розподілених обчислень у високонавантажених системах, програмування.
ПРИМУШКО Арсентій Миколайович, інженер програмного забезпечення в компанії Intellias. В 2020 р. закінчив Національний технічний університет України «Київський політехнічний інститут ім. Ігоря Сікорського». Область наукових досліджень — штучний інтелект, розподілені обчислювальні системи, програмування, системи орієнтації і навігації.
КРАВЦОВ Григорій Олексійович, канд. тех. наук, докторант Інституту проблем моделювання в енергетиці ім. Г.Є. Пухова НАН України. В 2000 р. закінчив Севастопольський військово-морський інститут ім. П.С. Нахімова. Область наукових досліджень — кібербезпека смарт-грід, криптографія, програмування, розробка розподілених гетерогенних обчислювальних систем.