Розробка методичних рекомендацій використання функціональної парадигми програмування в мові Scala

І.В. Пучко1, А.М. Примушко 2, Г.О. Кравцов 3, канд. техн. наук
1 Національний авіаційний університет
  Україна,03680, Київ, пр-т Любомира Гузара, 1
  е-mail: ivan.puchko@gmail.com
2 Національний технічний університет України
  «Київський політехнічний інститут ім. Ігоря Сікорського»
  Україна, 03056, Київ, пр-т Перемоги, 37
  е-mail: arsentiy.prymushko@gmail.com
3 Інститут проблем моделювання в енергетиці
  ім. Г.Е. Пухова НАН України
  Україна, 03164, Київ, вул. Генерала Наумова, 15
  е-mail: hryhoriy.kravtsov@gmail.com

Èlektron. model. 2021, 43(5):95-106

https://doi.org/10.15407/emodel.43.06.095

АНОТАЦІЯ

Розглянуто різні підходи до визначення структур даних та створення програм в різних парадигмах програмування. Показано залежність імперативної парадигми програму­ванння від алгоритмів та операцій низького рівня. Наведено ідеї щодо основних змінних структур даних та операцій щодо їх мутації. Описано підходи до організації алгоритмів у мові програмування Scala за допомогою цих структур даних. Показано, що у деклара­тивній парадигмі програмування фокус переходить від алгоритмів до математичних ви­разів, та продемонстровано, як, використовуючи операції високого рівня, створити програму за допомогою алгебраїчних виразів.

КЛЮЧОВІ СЛОВА:

Scala, функціональна парадигма програмування, імперативна парадигма програмування, декларативна парадигма програмування, лямбда-функції, ано­німні функції, функції вищого порядку.

СПИСОК ЛІТЕРАТУРИ

  1. Chiusano P., Bjarnason R. Functional Programming in Scala. [Електронний ресурс]. Режим доступу: https://www.manning.com/books/functional-programming-in-scala.
  2. Kmetiuk A. Mastering Functional Programming. Birmingham: Packt Publishing Ltd, 2018, 501 р.
  3. Volpe G. Practical FP in Scala. [Електронний ресурс]. Режим доступу: https://leanpub. com/pfp-scala
  4. Adam R. Essential Effects. [Електронний ресурс]. Режим доступу: https://essentialef­fects.dev/
  5. Halliday S. Functional Programming for Mortals with Scalaz. [Електронний ресурс]. Режим доступу: https://leanpub.com/fpmortals
  6. The Java® Virtual Machine Specification. [Електронний ресурс]. Режим доступу: https://docs.oracle.com/javase/specs/jvms/se7/html/index.html.

ПУЧКО Іван Вікторович, провідний інженер програмного забезпечення в компанії INSCALE. В 2008 р. закінчив Національний авіаційний університет. Область наукових достіджень — масштабування розподілених обчислень у високонавантажених систе­мах, програмування.

ПРИМУШКО Арсентій Миколайович, інженер програмного забезпечення в компанії Intellias. В 2020 р. закінчив Національний технічний університет України «Київський полі­тех­нічний інститут ім. Ігоря Сікорського». Область наукових досліджень — штучний інте­лект, розподілені обчислювальні системи, програмування, системи орієнтації і навігації.

КРАВЦОВ Григорій Олексійович, канд. тех. наук, докторант Інституту проблем моде­лювання в енергетиці ім. Г.Є. Пухова НАН України. В 2000 р. закінчив Севастопольсь­кий військово-морський інститут ім. П.С. Нахімова. Область наукових досліджень — кібербезпека смарт-грід, криптографія, програмування, розробка розподілених гетеро­генних обчислювальних систем.

Повний текст: PDF