A GRAPHICAL ENVIRONMENT FOR ASSISTANCE WITH MINING CODE IDIOMS FROM SOURCE CODE
DOI:
https://doi.org/10.24867/16BE44KolosnjajiKeywords:
MDSE, code generation, code idiomsAbstract
Code generation with the goal of software development automation is the most common case of applying the MDSE approach. One of the tools for code generation is the RoseLib library, which offers an API for generating C# code. This paper presents a solution implemented with the goal to extend the RoseLib library. A graphical environment which enables mining code idioms based on a set of idiomatic software projects and their integration in the RoseLib library was implemented. By integrating found idioms, the API offered by the RoseLib library is extended to enable generating found idioms. This makes generation of code that recurs over software projects easier, which speeds up the development of a software product.
References
[1] M. Brambilla, J. Cabot and M. Wimmer, Model-Driven Software Engineering in Practice: Second Edition. Morgan & Claypool, 2017.
[2] The .NET Compiler Platform SDK, dostupno na: https://docs.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/ (pristupano u oktobru 2021.)
[3] N. Todorović, A. Lukić, B. Zoranović, R. Vaderna, Ž. Vuković and S. Stoja, „RoseLib: A Library for Simplifying .NET Compiler Platform Usage“. in: ICIST 2018 Proceedings. 2018, pp. 216–221
[4] M. Allamanis and C. Sutton, „Mining idioms from source code“, in: Proceedings of the 22nd acm sigsoft international symposium on foundations of software engineering. 2014, pp. 472–483
[5] N. Todorović and A. Lukić, RoseLibML, dostupno na: https://github.com/lukic-aleksandar/RoseLibML, (pristupano u oktobru 2021.)
[6] Language Server Protocol, dostupno na: https://microsoft.github.io/language-server-protocol/ (pristupano u oktobru 2021.)
[7] OmniSharp Language Server Protocol Implementation, dostupno na: https://github.com/OmniSharp/csharp-language-server-protocol (pristupano u oktobru 2021.)
[8] Webview API, dostupno na: https://code.visualstudio.com/api/extension-guides/webview (pristupano u oktobru 2021.)
[9] VSCode Language Client – Server Module, dostupno na: https://www.npmjs.com/package/vscode-languageclient (pristupano u oktobru 2021.)
[2] The .NET Compiler Platform SDK, dostupno na: https://docs.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/ (pristupano u oktobru 2021.)
[3] N. Todorović, A. Lukić, B. Zoranović, R. Vaderna, Ž. Vuković and S. Stoja, „RoseLib: A Library for Simplifying .NET Compiler Platform Usage“. in: ICIST 2018 Proceedings. 2018, pp. 216–221
[4] M. Allamanis and C. Sutton, „Mining idioms from source code“, in: Proceedings of the 22nd acm sigsoft international symposium on foundations of software engineering. 2014, pp. 472–483
[5] N. Todorović and A. Lukić, RoseLibML, dostupno na: https://github.com/lukic-aleksandar/RoseLibML, (pristupano u oktobru 2021.)
[6] Language Server Protocol, dostupno na: https://microsoft.github.io/language-server-protocol/ (pristupano u oktobru 2021.)
[7] OmniSharp Language Server Protocol Implementation, dostupno na: https://github.com/OmniSharp/csharp-language-server-protocol (pristupano u oktobru 2021.)
[8] Webview API, dostupno na: https://code.visualstudio.com/api/extension-guides/webview (pristupano u oktobru 2021.)
[9] VSCode Language Client – Server Module, dostupno na: https://www.npmjs.com/package/vscode-languageclient (pristupano u oktobru 2021.)
Downloads
Published
2022-02-04
Issue
Section
Electrotechnical and Computer Engineering