Курсовая работа: Кросс-проектный анализ для генеративных поставщиков типов F#
Описание
генеративных поставщиков типов F#
Оглавление
3
4
Современные программные системы оперируют большими данны-ми, реализуя сложные задачи по их обработке [8]. Известно, что данные реальных источников, как правило, слабо структурированы, в то вре-мя как большинство промышленных языков программирования имеют строгую статическую типизацию. Традиционно для реализации досту-па программных систем к внешним данным, таким как веб-сервисы или базы данных, требовалось переписывать вручную или генерировать с помощью специальных инструментов программный код. Однако прак-тика кодогенерации в большинстве случаев считается неприемлемой из-за сложности в понимании и поддержке сгенерированного кода.
Поставщики типов языка F# [6] позволяют упростить получение данных из внешних источников, предоставляя необходимые типы дан-ных «на лету» во время написания кода и компиляции, загружая струк-туру данных из внешнего описания или схемы. Для программиста по-ставщик типов представлен в виде подключаемой библиотеки, включа-ющей набор определенных типов, при использовании которых во время написания кода и компиляции генерируются требуемые статические ти-пы данных. Типы, созданные генеративными поставщиками, на этапе компиляции записываются в метаданные сборки, в которой они были объявлены, что позволяет использовать полученные типы во всех .NET-совместимых я
Оглавление
| 1. | Введение | 5 | |
| 2. | Постановка задачи | 8 | |
| 3. | Обзор | 9 | |
| 3.1. | Поставщикитипов....................... | 9 | |
| 3.2. | Генеративные поставщики типов . . . . . . . . . . . . . . | 10 | |
| 3.3. | ReSharper PSI . . . . . . . . . . . . . . . . . . . . . . . . . | 11 | |
| 3.4. | Кросс-языковой анализ в Rider . . . . . . . . . . . . . . . | 12 | |
| 3.5. | Изолированный запуск поставщиков типов в | ||
| Rider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | 13 | ||
| 4. | Архитектура | 14 | |
| 4.1. | Кросс-языковой анализ генеративных типов . . . . . . . | 14 | |
| 4.2. | Генеративные типы в модели ReSharper PSI . . . . . . . . | 15 | |
| 5. | Реализация | 17 | |
| 5.1. | Обнаружение созданных поставщиками генеративных ти- | ||
| пов................................ | 17 | ||
| 5.2. | Кэшгенеративныхтипов................... | 18 | |
| 5.3. | Представление генеративных типов в ReSharper PSI . . . | 20 | |
| 5.4. | Алгоритм разрешения генеративных типов . . . . . . . . | 23 | |
| 5.5. | Дополнительная функциональность в IDE . . . . . . . . . | 25 | |
| 6. | Тестирование и апробация | 27 | |
| 6.1. | Прототип............................ | 27 | |
| 6.2. | Написание автоматических тестов . . . . . . . . . . . . . | 27 | |
| 6.3. | Ручное тестирование с помощью FSharp.Data и | ||
| OpenApiProvider . . . . . . . . . . . . . . . . . . . . . . . . | 29 | ||
| 6.4. | Выводы............................. | 30 | |
| 7. | Ограничения | 31 | |
3
| 8. Заключение | 32 |
| Список литературы | 33 |
4
- Введение
Современные программные системы оперируют большими данны-ми, реализуя сложные задачи по их обработке [8]. Известно, что данные реальных источников, как правило, слабо структурированы, в то вре-мя как большинство промышленных языков программирования имеют строгую статическую типизацию. Традиционно для реализации досту-па программных систем к внешним данным, таким как веб-сервисы или базы данных, требовалось переписывать вручную или генерировать с помощью специальных инструментов программный код. Однако прак-тика кодогенерации в большинстве случаев считается неприемлемой из-за сложности в понимании и поддержке сгенерированного кода.
Поставщики типов языка F# [6] позволяют упростить получение данных из внешних источников, предоставляя необходимые типы дан-ных «на лету» во время написания кода и компиляции, загружая струк-туру данных из внешнего описания или схемы. Для программиста по-ставщик типов представлен в виде подключаемой библиотеки, включа-ющей набор определенных типов, при использовании которых во время написания кода и компиляции генерируются требуемые статические ти-пы данных. Типы, созданные генеративными поставщиками, на этапе компиляции записываются в метаданные сборки, в которой они были объявлены, что позволяет использовать полученные типы во всех .NET-совместимых я
Характеристики курсовой работы
Учебное заведение
Семестр
Просмотров
1
Размер
512 Kb
Список файлов
Кросс-проектный анализ для генеративных поставщиков типов F#.doc
Комментарии
Нет комментариев
Стань первым, кто что-нибудь напишет!
РЭУ им. Плеханова
Tortuga













