API for C# code generation
Rozhraní pro generování C# kódu
bachelor thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/120973Identifiers
Study Information System: 223158
Collections
- Kvalifikační práce [11242]
Author
Advisor
Referee
Kliber, Filip
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Programming and Software Systems
Department
Department of Applied Mathematics
Date of defense
14. 9. 2020
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Excellent
Keywords (Czech)
generování kódu, C#, ILSpy, CoberecKeywords (English)
code generation, C#, ILSpy, CoberecV práci představujeme knihovnu pro implementaci robustních generátorů kódu v jazyce C#. Stávající generátory kódu často pro nějaké vstupy produkují nepřeložitelný kód. Dochází ke jmeným kolizím a dalším problémům, což zhoršuje stabilitu generování kódu. Tyto případy pak rozbíjí zavedené procesy sestavování aplikací a programátoři je musí řešit ručně. Naše knihovna tyto problémy řeší. Automaticky se vyhýbá jmeným kolizím a dalším nejednoznačnostem, zatímco produkuje čitelný kód. Náš přístup porovnáme s jinými řešeními, mimo jiné s metaprogramováním založeném na reflexi, makrech a automatickým přepisováním mezijazyka. 1
This work presents a library for implementing robust generators of C# code. Exist- ing code generators often generate invalid code for some inputs. Issues such as name collisions reduce the reliability of code generation. Programmers are then forced to han- dle these cases manually, which breaks build pipelines and lowers productivity. Our library solves these issues. It automatically avoids name collisions, and keeps the gener- ated code clean and human-readable. We compare our approach to other solutions such as reflection-based metaprogramming, macros, intermediate language rewriting and F# Type Providers. 1