Аналіз механізмів та ефективності спеціалізованих мов функціонального програмування

dc.contributor.authorСторчак, Ігор Миколайовичuk_UA
dc.contributor.authorІванов, Олександр Петровичuk_UA
dc.date.accessioned2020-03-19T11:46:28Z
dc.date.available2020-03-19T11:46:28Z
dc.date.issued2019
dc.descriptionІ. Сторчак: ORCID 0000-0002-8434-9765; О. Іванов: ORCID 0000-0003-1259-6377uk_UA
dc.description.abstractUKR: Мета. Автори ставлять за мету встановити відмінності функціональних мов програмування, з`ясувати можливості найбільш популярних мов шляхом їх порівняння та аналізу. Для виявлення основних можливостей мов потрібно розглянути їх структури даних, а також сфери застосування. Виконати аналіз та порівняння прикладів із різних сфер використання мов за метриками складності текстів програм. Методика. Відібрано п’ять найпопулярніших спеціалізованих функціональних мов програмування: Erlang, Lisp, F#, Scala та Haskel. Для отримання інформації про можливості кожної мови вивчено їх структури даних, а також сфери застосування, проведено огляд офіційної документації. Експериментальну базу дослідження сформовано з текстів сучасних програмних систем, отриманих із відкритого джерела та підібраних за схожими напрямами застосування й однаковим обсягом тексту. Порівняльний аналіз прикладів програм виконано за метриками Холстеда, які розраховують за допомогою спеціально розробленого програмного забезпечення. Аналіз отриманих оцінок якості виконано графічним способом. Результати. Розроблено програмне забезпечення, яке дозволяє отримати метрики Холстеда для вхідних текстів програм на таких мовах функціонального про-грамування, як Erlang, Lisp, F# та Scala. Складність синтаксису мови програмування Haskel не дозволила використати метрики для оцінки тексту, тому було проведено тільки огляд можливостей за документацією. За допомогою порівняльного аналізу показано відмінність мов та окреслено сфери їх використання. Виконано порівняння прикладів різного об’єму з таких сфер використання, як задачі системного програмування, робота з графікою, математичні розрахунки, системи штучного інтелекту, веб-програмування тощо. Наукова новизна. Автори вперше провели порівняльний аналіз спеціалізованих мов за допомогою метрик складності текстів, який дозволив встановити, що мова Lisp має найменший словник і довжину коду, текст на Scala має найбільш структурований вигляд, а F# та Erlang відзначаються зайвою багатослівністю. Практична значимість. Отримані висновки та виміри допоможуть під час вибору найбільш ефективної мови функціонального програмування для вирішення конкретних завдань з урахуванням відмінностей у сферах застосування. Розроблене програмне забезпечення дозволяє виконувати виміри для різних текстів програм під час розробки та супроводу складних програмних систем.uk_UA
dc.description.abstractRUS: Цель. Авторы ставят целью определить отличия функциональных языков программирования, выявить возможности наиболее популярных языков путём их сравнения и анализа. Для выявления основных возможностей нужно рассмотреть их структуры данных, а также сферы применения. С помощью метрик сложности текстов программ провести анализ и сравнение примеров из различных сфер использования языков. Методика. Отобраны пять самых популярных специализированных функциональных языков программирования: Erlang, Lisp, F #, Scala и Haskel. Для получения информации о возможностях каждого из языков изучены их структуры данных, а также сферы применения, проведен обзор официальной документации. Экспериментальная база исследования сформирована из текстов существующих программных систем, полученных из открытого источника и подобранных по схожим направлениям применения и одинаковым объемам текста. Сравнительный анализ примеров программ выполнен по метрикам Холстеда, которые рассчитывают с помощью специально разработанного программного обеспечения. Анализ полученных оценок качества выполнен графическим способом. Результаты. Разработано программное обеспечение, которое позволяет получить метрики Холстеда, для входных текстов программ на таких языках функционального программирования, как Erlang, Lisp, F # и Scala. Сложность синтаксиса языка программирования Haskel не позволила использовать метрики для оценки текста, поэтому было проведено только рассмотрение возможностей по документации. С помощью сравнительного анализа показано различие языков и очерчены сферы их использования. Выполнено сравнение примеров разного объема из таких сфер использования, как задачи системного программирования, работа с графикой, математические расчеты, системы искусственного интеллекта, веб-программирование и т. п. Научная новизна. Авторы впервые провели сравнительный анализ специализированных языков с помощью метрик сложности текстов, который позволил установить, что язык Lisp имеет самый меньший словарь и длину кода, текст на Scala имеет наиболее структурированный вид, а F # и Erlang отмечаются излишней многословностью. Практическая значимость. Полученные выводы и измерения помогут при выборе наиболее эффективного языка функционального программирования для решения конкретных задач с учётом различий в сферах применения. Разработанное программное обеспечение позволяет выполнять измерения для разных текстов программ при разработке и сопровождения сложных программных систем.ru_RU
dc.description.abstractENG: Purpose. The authors aim to determine the differences between functional programming languages, to identify the capabilities of the most popular languages by comparing and analyzing them. To identify the main features, it is necessary to consider their data structures, as well as the application scope. The authors also aim to analyze and compare examples from various fields of language application using metrics of the program texts complexity. Methodology. The five most popular specialized functional languages are selected: Erlang, Lisp, F #, Scala and Haskel. An overview of the official documentation was conducted to obtain information on the capabilities of each language; their data structures and the application scope were studied. The experimental research base is formed from texts of the existing open source software systems and matched by similar applications and equal volume of text. Comparative analysis of sample programs is performed using Halsted metrics, which are calculated using specially designed software. The analysis of the received quality assessments is done graphically. Findings. Software has been developed to obtain Halsted metrics for program input texts in functional programming languages such as Erlang, Lisp, F # and Scala. The complexity of the Haskel programming language syntax did not allow the use of metrics to evaluate the text, so only a documentation review was performed. Benchmarking shows the differences between languages and outlines their use. The examples of different volumes from such areas of application as system programming tasks, graphing, mathematical calculations, AI systems, web programming, etc. were compared. Originality. The authors first conducted a comparative analysis of specialized languages using text complexity met-rics, which made it possible to establish that Lisp has the smallest vocabulary and code length, Scala text has the most structured form, and F # and Erlang are marked with extra verbosity. Practical value. The findings and meas-urements will help in selecting the most effective functional programming language for solving specific problems, taking into account differences in applications. The developed software allows making measurements for various program texts when developing and maintaining complex software systems.en
dc.identifierDOI: 10.15802/stp2019/195581en
dc.identifier.citationСторчак І. М., Іванов O. П. Аналіз механізмів та ефективності спеціалізованих мов функціонального програмування. Наука та прогрес транспорту. 2019. № 6 (84). С. 117–129. DOI: 10.15802/stp2019/195581.uk_UA
dc.identifier.issn2307-3489 (Print)
dc.identifier.issn2307-6666 (Online)
dc.identifier.urihttp://eadnurt.diit.edu.ua/jspui/handle/123456789/11872en
dc.identifier.urihttp://stp.diit.edu.ua/article/view/195581/198108en
dc.identifier.urihttp://stp.diit.edu.ua/article/view/195581en
dc.language.isouk_UA
dc.publisherДніпровський національний університет залізничного транспорту імені академіка В. Лазаряна, Дніпроuk_UA
dc.subjectфункціональне програмуванняuk_UA
dc.subjectметрики Холстедаuk_UA
dc.subjectможливості мовuk_UA
dc.subjectпорівняння мовuk_UA
dc.subjectспеціалізовані функціональні мовиuk_UA
dc.subjectфункциональное программированиеru_RU
dc.subjectметрики Холстедаru_RU
dc.subjectвозможности языковru_RU
dc.subjectсравнение языковru_RU
dc.subjectспециализированные функциональные языкиru_RU
dc.subjectfunctional programmingen
dc.subjectHalstead metricsen
dc.subjectlanguage capabilitiesen
dc.subjectlanguage comparisonen
dc.subjectspecialized functional languagesen
dc.subjectErlangen
dc.subjectHaskelen
dc.subjectLispen
dc.subjectF#en
dc.subjectScalaen
dc.subjectКІТuk_UA
dc.titleАналіз механізмів та ефективності спеціалізованих мов функціонального програмуванняuk_UA
dc.title.alternativeАнализ механизмов и эффективности специализированных языков функционального программированияru_RU
dc.title.alternativeAnalysis of Mechanisms and Efficiency of Specialized Languages of Functional Programmingen
dc.typeArticleen
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Storchak.pdf
Size:
999.5 KB
Format:
Adobe Portable Document Format
License bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
1.71 KB
Format:
Item-specific license agreed upon to submission
Description: