• English
    • українська
  • українська 
    • English
    • українська
  • Увійти
Дивитися документ 
  • Головна
  • Факультет менеджменту та інформаційної безпеки
  • Кафедра менеджменту, маркетингу та економiки
  • Наукові роботи каф. ММЕ
  • Дивитися документ
  • Головна
  • Факультет менеджменту та інформаційної безпеки
  • Кафедра менеджменту, маркетингу та економiки
  • Наукові роботи каф. ММЕ
  • Дивитися документ
Сайт інституційного репозитарію ВНТУ містить роботи, матеріали та файли, які були розміщені докторантами, аспірантами та студентами Вінницького Національного Технічного Університету. Для розширення функцій сайту рекомендується увімкнути JavaScript.

Implementing traits in C# using Roslyn Source Generators

Автор
Pozur, М.
Voitko, V.
Bevz, S.
Burbelo, S.
Kosaruk, О.
Позур, М.
Войтко, В.
Бевз, С.
Бурбело, С.
Косарук, О.
Дата
2025
Metadata
Показати повну інформацію
Collections
  • Наукові роботи каф. ММЕ [376]
Анотації
Artykuł przedstawia podejście do implementacji funkcjonalności cech w języku programowania C# poprzez wykorzystanie Roslyn Source Generators, narzędzia do metaprogramowania w czasie kompilacji wprowadzonego w .NET5. Traity, które są komponowalnymi jednostkami drobnoziarnistego ponownego użycia, mogą przynieść korzyści językowi C# poprzez wprowadzenie mechanizmu ponownego użycia zachowania w kontekście pojedynczego dziedziczenia. W artykule opisano projekt i implementację generatora źródłowego, który umożliwia dodawanie adnotacji do klas za pomocą atrybutów metadanych, automatycznie wstrzykując odpowiednie definicje elementów członkowskich w czasie kompilacji. Aby osiągnąć lepszą wydajność generowania kodu w czasie projektowania, zastosowano przyrostowe generatory źródeł. Szczegółowo opisano skład członków cech, koncentrując się na rozwiązywaniu konfliktów nazw i bezpieczeństwie typów poprzez wykorzystanie interfejsów i mechanizmu zastępowania. Omówiono i zaimplementowano również definiowanie niepublicznych członków w kontekście cechy, co pozwala na lepsze ponowne wykorzystanie kodu. Artykuł podsumowuje, że funkcje na poziomie języka, takie jak cechy, można zaimplementować w języku C# za pomocą Roslyn Source Generators, demonstrując w ten sposób potencjał takiego narzędzia i ogólnie metaprogramowania.
 
The paper presents an approach to implementing traits functionality in the C# programming language through the use of Roslyn Source Generators, a compile-time metaprogramming tool introduced in .NET5. Traits, which are composable units of fine-grained reuse, can benefit the C# language by bringing a mechanism for behavior reuse in the context of single inheritance. The article describes the design and implementation of a source generator that allows to annotate classes with metadata attributes, automatically injecting the corresponding member definitions at compile time. To achieve better code generation performance at design time, Incremental Source Generators were used. The composition of trait members is described in detail, focusing on name conflict resolution and type safety by utilizing interfaces and the override mechanism. Defining non-public members in a context of a trait is also discussed and implemented, thus allowing for better code reusability. The article concludes that language-level features such as traits can be implemented in the C# language by using Roslyn Source Generators, thus demonstrating the potential of such an instrument and metaprogramming in general.
 
URI:
https://ir.lib.vntu.edu.ua//handle/123456789/50337
Відкрити
190064.pdf (1.017Mb)

Інституційний репозиторій

ГоловнаПошукДовідкаКонтактиПро нас

Ресурси

JetIQСайт бібліотекиСайт університетаЕлектронний каталог ВНТУ

Перегляд

Всі архівиСпільноти та колекціїЗа датою публікаціїАвторамиНазвамиТемамиТипВидавництвоМоваУДКISSNВидання, що міститьDOIЦя колекціяЗа датою публікаціїАвторамиНазвамиТемамиТипВидавництвоМоваУДКISSNВидання, що міститьDOI

Мій обліковий запис

ВхідРеєстрація

Статистика

View Usage Statistics

ISSN 2413-6360 | Головна | Відправити відгук | Довідка | Контакти | Про нас
© 2016 Vinnytsia National Technical University | Extra plugins code by VNTU Linuxoids | Powered by DSpace
Працює за підтримки 
НТБ ВНТУ