{"title":"函数式编程专用语言的机制和效率分析","authors":"I. M. Storchak, O. Ivanov","doi":"10.15802/stp2019/195581","DOIUrl":null,"url":null,"abstract":"Цель . Авторы ставят целью определить отличия функциональных языков программирования, выявить возможности наиболее популярных языков путём их сравнения и анализа. Для выявления основных возможностей нужно рассмотреть их структуры данных, а также сферы применения. С помощью метрик сложности текстов программ провести анализ и сравнение примеров из различных сфер использования языков. Методика . Отобраны пять самых популярных специализированных функциональных языков программирования: Erlang, Lisp, F #, Scala и Haskel. Для получения информации о возможностях каждого из языков изучены их структуры данных, а также сферы применения, проведен обзор официальной документации. Экспериментальная база исследования сформирована из текстов существующих программных систем, полученных из открытого источника и подобранных по схожим направлениям применения и одинаковым объемам текста. Сравнительный анализ примеров программ выполнен по метрикам Холстеда, которые рассчитывают с помощью специально разработанного программного обеспечения. Анализ полученных оценок качества выполнен графическим способом. Результаты . Разработано программное обеспечение, которое позволяет получить метрики Холстеда, для входных текстов программ на таких языках функционального программирования, как Erlang, Lisp, F # и Scala. Сложность синтаксиса языка программирования Haskel не позволила использовать метрики для оценки текста, поэтому было проведено только рассмотрение возможностей по документации. С помощью сравнительного анализа показано различие языков и очерчены сферы их использования. Выполнено сравнение примеров разного объема из таких сфер использования, как задачи системного программирования, работа с графикой, математические расчеты, системы искусственного интеллекта, веб-программирование и т. п. Научная новизна. Авторы впервые провели сравнительный анализ специализированных языков с помощью метрик сложности текстов, который позволил установить, что язык Lisp имеет самый меньший словарь и длину кода, текст на Scala имеет наиболее структурированный вид, а F # и Erlang отмечаются излишней многословностью. Практическая значимость. Полученные выводы и измерения помогут при выборе наиболее эффективного языка функционального программирования для решения конкретных задач с учётом различий в сферах применения. Разработанное программное обеспечение позволяет выполнять измерения для разных текстов программ при разработке и сопровождения сложных программных систем.","PeriodicalId":120413,"journal":{"name":"Science and Transport Progress. Bulletin of Dnipropetrovsk National University of Railway Transport","volume":"24 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-12-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"ANALYSIS OF MECHANISMS AND EFFICIENCY OF SPECIALIZED LANGUAGES OF FUNCTIONAL PROGRAMMING\",\"authors\":\"I. M. Storchak, O. Ivanov\",\"doi\":\"10.15802/stp2019/195581\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Цель . Авторы ставят целью определить отличия функциональных языков программирования, выявить возможности наиболее популярных языков путём их сравнения и анализа. Для выявления основных возможностей нужно рассмотреть их структуры данных, а также сферы применения. С помощью метрик сложности текстов программ провести анализ и сравнение примеров из различных сфер использования языков. Методика . Отобраны пять самых популярных специализированных функциональных языков программирования: Erlang, Lisp, F #, Scala и Haskel. Для получения информации о возможностях каждого из языков изучены их структуры данных, а также сферы применения, проведен обзор официальной документации. Экспериментальная база исследования сформирована из текстов существующих программных систем, полученных из открытого источника и подобранных по схожим направлениям применения и одинаковым объемам текста. Сравнительный анализ примеров программ выполнен по метрикам Холстеда, которые рассчитывают с помощью специально разработанного программного обеспечения. Анализ полученных оценок качества выполнен графическим способом. Результаты . Разработано программное обеспечение, которое позволяет получить метрики Холстеда, для входных текстов программ на таких языках функционального программирования, как Erlang, Lisp, F # и Scala. Сложность синтаксиса языка программирования Haskel не позволила использовать метрики для оценки текста, поэтому было проведено только рассмотрение возможностей по документации. С помощью сравнительного анализа показано различие языков и очерчены сферы их использования. Выполнено сравнение примеров разного объема из таких сфер использования, как задачи системного программирования, работа с графикой, математические расчеты, системы искусственного интеллекта, веб-программирование и т. п. Научная новизна. Авторы впервые провели сравнительный анализ специализированных языков с помощью метрик сложности текстов, который позволил установить, что язык Lisp имеет самый меньший словарь и длину кода, текст на Scala имеет наиболее структурированный вид, а F # и Erlang отмечаются излишней многословностью. Практическая значимость. Полученные выводы и измерения помогут при выборе наиболее эффективного языка функционального программирования для решения конкретных задач с учётом различий в сферах применения. Разработанное программное обеспечение позволяет выполнять измерения для разных текстов программ при разработке и сопровождения сложных программных систем.\",\"PeriodicalId\":120413,\"journal\":{\"name\":\"Science and Transport Progress. Bulletin of Dnipropetrovsk National University of Railway Transport\",\"volume\":\"24 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2019-12-17\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Science and Transport Progress. Bulletin of Dnipropetrovsk National University of Railway Transport\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.15802/stp2019/195581\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Science and Transport Progress. Bulletin of Dnipropetrovsk National University of Railway Transport","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.15802/stp2019/195581","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
ANALYSIS OF MECHANISMS AND EFFICIENCY OF SPECIALIZED LANGUAGES OF FUNCTIONAL PROGRAMMING
Цель . Авторы ставят целью определить отличия функциональных языков программирования, выявить возможности наиболее популярных языков путём их сравнения и анализа. Для выявления основных возможностей нужно рассмотреть их структуры данных, а также сферы применения. С помощью метрик сложности текстов программ провести анализ и сравнение примеров из различных сфер использования языков. Методика . Отобраны пять самых популярных специализированных функциональных языков программирования: Erlang, Lisp, F #, Scala и Haskel. Для получения информации о возможностях каждого из языков изучены их структуры данных, а также сферы применения, проведен обзор официальной документации. Экспериментальная база исследования сформирована из текстов существующих программных систем, полученных из открытого источника и подобранных по схожим направлениям применения и одинаковым объемам текста. Сравнительный анализ примеров программ выполнен по метрикам Холстеда, которые рассчитывают с помощью специально разработанного программного обеспечения. Анализ полученных оценок качества выполнен графическим способом. Результаты . Разработано программное обеспечение, которое позволяет получить метрики Холстеда, для входных текстов программ на таких языках функционального программирования, как Erlang, Lisp, F # и Scala. Сложность синтаксиса языка программирования Haskel не позволила использовать метрики для оценки текста, поэтому было проведено только рассмотрение возможностей по документации. С помощью сравнительного анализа показано различие языков и очерчены сферы их использования. Выполнено сравнение примеров разного объема из таких сфер использования, как задачи системного программирования, работа с графикой, математические расчеты, системы искусственного интеллекта, веб-программирование и т. п. Научная новизна. Авторы впервые провели сравнительный анализ специализированных языков с помощью метрик сложности текстов, который позволил установить, что язык Lisp имеет самый меньший словарь и длину кода, текст на Scala имеет наиболее структурированный вид, а F # и Erlang отмечаются излишней многословностью. Практическая значимость. Полученные выводы и измерения помогут при выборе наиболее эффективного языка функционального программирования для решения конкретных задач с учётом различий в сферах применения. Разработанное программное обеспечение позволяет выполнять измерения для разных текстов программ при разработке и сопровождения сложных программных систем.