title: Cross-project analysis for F# generative type providers
metadata.name: dc.contributor.advisor
metadata.value: Мигалёв Иван Евгеньевич
metadata.lang: ru_RU
metadata.name: dc.contributor.advisor
metadata.value: Migalev Ivan Evgenevic
metadata.lang: en_GB
metadata.name: dc.contributor.author
metadata.value: Бережных Алексей Владимирович
metadata.lang: ru_RU
metadata.name: dc.contributor.author
metadata.value: Bereznyh Aleksej Vladimirovic
metadata.lang: en_GB
metadata.name: dc.contributor.editor
metadata.value: Литвинов Юрий Викторович
metadata.lang: ru_RU
metadata.name: dc.contributor.editor
metadata.value: Litvinov Urij Viktorovic
metadata.lang: en_GB
metadata.name: dc.date.accessioned
metadata.value: 2023-04-06T21:47:58Z
metadata.lang: -
metadata.name: dc.date.available
metadata.value: 2023-04-06T21:47:58Z
metadata.lang: -
metadata.name: dc.date.issued
metadata.value: 2022
metadata.name: dc.identifier.other
metadata.value: 054395
metadata.lang: en_GB
metadata.name: dc.identifier.uri
metadata.value: http://hdl.handle.net/11701/39624
metadata.lang: -
metadata.name: dc.description.abstract
metadata.value: Автор: Бережных Алексей Владимирович. 
  Тема: "Кросс-проектный анализ для генеративных поставщиков типов F#".
  Научный руководитель: доцент кафедры системного программирования, к. т. н. Литвинов Ю. В.
  Программная инженерия.
  
  Поставщики типов – компоненты для компилятора F#,  позволяющие упростить получение данных, предоставляя необходимые типы данных «на лету», загружая структуру данных из внешнего описания или схемы и упрощая доступ ко всевозможным источникам. Типы, созданные генеративными поставщиками типов, на этапе компиляции записываются в метаданные сборки, в которой они были объявлены, что позволяет использовать полученные типы во всех .NET-совместимых языках.
  JetBrains Rider, одна из популярных IDE для .NET, позволяет из проектов на С# обращаться к коду, написанному на F# – и наоборот, однако использование генеративных поставщиков типов в подобных проектах приводит к проблемам: генеративные типы, как правило, не имеют явной декларации в коде, а движок ReSharper, на основе которого выполняется анализ C#-кода в Rider, ничего не знает о внутреннем устройстве поставщиков типов из F#. По этой причине  генеративные типы недоступны для анализа в IDE. 
  Данная работа предлагает решение обозначенной проблемы, предоставляя реализацию подсистемы анализа генеративных поставщиков типов из F# в проектах на C#.
  
  Количество использованных источников: 8.
  
  Бережных, А. В. Кросс-проектный анализ для генеративных поставщиков типов F#:
  магистерская работа: представлена к защите 07.06.2022 / Бережных Алексей Владимирович. – СПб., 2022. –
  33 с. – Библиогр.: с. 33.
metadata.lang: ru_RU
metadata.name: dc.description.abstract
metadata.value: Author: Berezhnykh Aleksei Vladimirovich.
  Topic: "Cross-project analysis for F# generative type providers".
  Supervisor: Associate Professor of the Department of System Programming, Ph.D. Yu. V. Litvinov
  Software engineering.
  
  Type providers are components for the F# compiler that make it easier to get data by providing the required data types on the fly, loading a data structure from an external declaration or schema, and making it easier to access all sorts of sources. Types generated by generative type providers are written at compile time to the metadata of the assembly in which they are declared, allowing the resulting types to be used in all .NET-compatible languages.
  JetBrains Rider, one of the popular IDEs for .NET, allows you to access code written in F# from C# projects - and vice versa. However, using generative type providers in such projects leads to problems: generative types, usually, do not have an explicit declaration in code, and the ReSharper engine, on the basis of which C# code analysis is performed in Rider, doesn't know anything about the internals of F# type providers. For this reason, generative types are not available for analysis in the IDE.
  This paper proposes a solution to the identified problem by providing an implementation of a subsystem for analysis F# generative type providers in C# projects.
  
  Number of sources used: 8.
  
  Berezhnykh, A. V. Cross-project analysis for F# generative type providers:
  master's thesis: presented for defense on 07.06.2022 / Berezhnykh Aleksei Vladimirovich. - St. Petersburg, 2022. -
  33 p. – Bibliography: p. 33.
metadata.lang: en_GB
metadata.name: dc.language.iso
metadata.value: ru
metadata.name: dc.subject
metadata.value: программирование
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: функциональное программирование
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: поставщик типов
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: тайп провайдер
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: F#
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: C#
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: .NET
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: ReSharper
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: Rider
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: IDE
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: анализ кода
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: programming
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: functional programming
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: type provider
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: F#
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: C#
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: .NET
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: ReSharper
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: Rider
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: IDE
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: code analysis
metadata.lang: en_GB
metadata.name: dc.title
metadata.value: Cross-project analysis for F# generative type providers
metadata.lang: en_GB
metadata.name: dc.title.alternative
metadata.value: Кросс-проектный анализ для генеративных поставщиков типов F#
metadata.lang: ru_RU
resources.filename: Diploma__2_.pdf
resources.url: https://dspace.spbu.ru/bitstream/11701/39624/2/Diploma__2_.pdf
resources.format: Adobe PDF
resources.description: Article
resources.size: 824,08 kB
resources.filename: reviewSV_Berezhnykh_review.pdf
resources.url: https://dspace.spbu.ru/bitstream/11701/39624/3/reviewSV_Berezhnykh_review.pdf
resources.format: Adobe PDF
resources.description: ReviewSV
resources.size: 115,91 kB
resources.filename: reviewSV_st054395_Bereznyh_Aleksej_Vladimirovic_(supervisor)(Ru).txt
resources.url: https://dspace.spbu.ru/bitstream/11701/39624/4/reviewSV_st054395_Bereznyh_Aleksej_Vladimirovic_%28supervisor%29%28Ru%29.txt
resources.format: Text
resources.description: ReviewSV
resources.size: 4,27 kB