Функціональні структури даних в екосистемі мови Java для використання в багатопоточному контексті
dc.contributor.advisor | Русанова, Ольга Веніаминівна | |
dc.contributor.author | Арзамасцев, Олександр Володимирович | |
dc.date.accessioned | 2020-12-23T13:46:00Z | |
dc.date.available | 2020-12-23T13:46:00Z | |
dc.date.issued | 2020 | |
dc.description.abstractuk | Робота складається із вступу та 4 розділів. Сумарний об’єм роботи: 117 аркушів тексту, 26 ілюстрацій та 43 таблиць. Для магістерської дисертації було використано літературу з 10 різноманітних джерел. Актуальність. Складність написання високонавантажених відмовостійких програм збільшується із зростанням потреб користувачів до функціоналу програмного забезпечення. Використання різноманітних архітектурних (кластеризація, низька зв’язність, мікросервісна архітектура) та низькорівневих (багатопоточне та функціональне програмування, алгоритми і структури даних) підходів дозволяє підвищити відмовостійкість та ефективність написаного програмного забезпечення, втім, ціною набагато вищої складності програмування. Використання багатопоточності в якості низькорівневого механізму підвищення ефективності програмного забезпечення є складним завданням. Розроблено ряд бібліотек, які можна підключити у вигляді окремого модуля та використовувати напряму в коді програми. Втім, часто бібліотеки переповнені засобами, що не потрібні в контексті конкретної задачі, лише роздувають вихідний код проекту та вимагають від розробників вивчати додатковий набір принципів тощо. Використання підходів функціонального програмування дозволяє спростити код, зробити його швидшим в деяких випадках та повністю уникнути таких явищ як гонка потоків, конкурентний доступ до даних, брудні зчитування та запис змінних тощо. Мета і завдання дослідження. Метою магістерської роботи є розширення функціональних можливостей мови Java шляхом впровадження та використання функціональної парадигми програмування, підвищення ефективності структур даних в рамках багатопоточного контексту, спрощення процесу написання безпечних та читабельних програм, що спроектовані на потенційну роботу в рамках багатьох потоків. Для досягнення мети дослідження поставлено і вирішено такі завдання: • дослідження та аналіз принципів функціонального програмування; • дослідження рекурсивних алгоритмів та структур даних; • розробка програмної реалізації бібліотеки алгоритмів та структур даних на мові Java; • аналіз отриманих результатів. Об’єкт дослідження – функціональні структури даних та алгоритми в екосистемі мови Java. Предмет дослідження – методи реалізації рекурсивних/функціональних структур даних та алгоритмів як різновид абстракції функціонального програмування на мові Java. Методи досліджень. Для досягнення поставлених в магістерській роботі задач використані методи аналізу та синтезу структур даних, а також теорія алгоритмів. Наукова новизна одержаних результатів роботи полягає у наступному: • описано та розроблено структуру даних, відсутню в мові Java, що є абстракцією над рекурсією і дозволяє писати рекурсивні структури даних та алгоритми без небезпеки переповнення стеку та без мутації змінних; • реалізовано ряд структур даних та алгоритмів у вигляді бібліотеки на мові Java; • виконано порівняння існуючих та запропонованих структур даних. Бібліотека, що реалізована в рамках даної дисертації, може бути використана в якості вихідного коду у вільному доступі для спрощення переходу на функціональну модель програмування на мові Java. Особистий внесок здобувача. Реалізована основоположна структура даних, що відсутня в екосистемі мови Java, яка дозволяє перенести виконання рекурсивних методів із стеку повністю в область динамічної пам’яті за рахунок використання рекурсії та базових елементів функціонального програмування. На основі даної структури реалізовано ряд поширених структур даних та алгоритмів, що можуть бути використані напряму при розробці програм на мові Java. Практична цінність. Отримані результати можуть використовуватися у майбутніх дослідженнях за напрямками: • написання багатопоточних програм; • написання програм у функціональному стилі. | uk |
dc.format.page | 123 с. | uk |
dc.identifier.citation | Арзамасцев, О. В. Функціональні структури даних в екосистемі мови Java для використання в багатопоточному контексті : магістерська дис. : 123 Комп’ютерна інженерія / Арзамасцев Олександр Володимирович. – Київ, 2020. – 123 с. | uk |
dc.identifier.uri | https://ela.kpi.ua/handle/123456789/38250 | |
dc.language.iso | uk | uk |
dc.publisher | КПІ ім. Ігоря Сікорського | uk |
dc.publisher.place | Київ | uk |
dc.subject | функціональне програмування | uk |
dc.subject | рекурсія | uk |
dc.subject | багатопоточність | uk |
dc.subject | стек | uk |
dc.subject | динамічна пам’ять | uk |
dc.subject.udc | 004.04 | uk |
dc.title | Функціональні структури даних в екосистемі мови Java для використання в багатопоточному контексті | uk |
dc.type | Master Thesis | uk |
Файли
Контейнер файлів
1 - 1 з 1
Ескіз недоступний
- Назва:
- Arzamastsev_magistr.docx
- Розмір:
- 1.51 MB
- Формат:
- Microsoft Word XML
- Опис:
Ліцензійна угода
1 - 1 з 1
Ескіз недоступний
- Назва:
- license.txt
- Розмір:
- 9.16 KB
- Формат:
- Item-specific license agreed upon to submission
- Опис: