@article {DJN14, title = {Designing and Implementing Control Flow Graph for {M}agic 4th Generation Language}, journal = {Acta Cybernetica}, volume = {21}, number = {3}, year = {2014}, pages = {419{\textendash}437}, abstract = {A good compiler which implements many optimizations during its compilation phases must be able to perform several static analysis techniques such as control flow or data flow analysis. Besides compilers, these techniques are common for static analyzers as well to retrieve information from source code, for example for code auditing, quality assurance or testing purposes. Implementing control flow analysis requires handling many special structures of the target language. In our paper we present our experiences in implementing control flow graph (CFG) construction for a special 4th generation language called Magic. While we were designing and implementing the CFG for this language, we identified differences compared to 3rd generation languages mostly because of the unique programming technique of Magic (e.g. data access, parallel task execution, events). Our work was motivated by our industrial partner who needed precise static analysis tools (e.g. for quality assurance or testing purposes) for this language. We believe that our experiences for Magic, as a representative of 4GLs, might be generalized for other languages too.}, issn = {0324-721X}, url = {http://publicatio.bibl.u-szeged.hu/8995/}, author = {D{\'e}vai, Rich{\'a}rd and Judit J{\'a}sz and Csaba Nagy and Rudolf Ferenc} } @conference {DVF14, title = {Service Layer for {IDE} Integration of {C/C++} Preprocessor Related Analysis}, booktitle = {Proceedings of the 14th International Conference on Computational Science and Its Applications (ICCSA 2014)}, series = {Lecture Notes in Computer Science (LNCS)}, volume = {8583}, year = {2014}, month = {jun}, publisher = {Springer-Verlag}, organization = {Springer-Verlag}, address = {Guimar{\~a}es, Portugal}, abstract = {Software development in C/C++ languages is tightly coupled with preprocessor directives. While the use of preprocessor constructs cannot be avoided, current IDE support for developers can still be improved. Early feedback from IDEs about misused macros or conditional compilation has positive effects on developer productivity and code quality as well. In this paper we introduce a service layer for the Visual Studio to make detailed preprocessor information accessible for any type of IDE extensions. The service layer is built upon our previous work on the analysis of directives. We wrap the analyzer tool and provide its functionality through an API. We present the public interface of the service and demonstrate the provided services through small plug-ins implemented using various extension mechanisms. These plug-ins work together to aid the daily work of developers in several ways. We provide (1) an editor extension through the Managed Extensibility Framework which provides macro highlighting within the source code editor; (2) detailed information about actual macro substitutions and an alternative code view to show the results of macro calls; (3) a managed package for discovering the intermediate steps of macro replacements through a macro explorer. The purpose of this work is twofold: we present an additional layer designed to aid the work of tool developers; second, we provide directly usable IDE components to express its potentials.}, doi = {10.1007/978-3-319-09156-3_29}, url = {https://link.springer.com/chapter/10.1007\%2F978-3-319-09156-3_29}, author = {D{\'e}vai, Rich{\'a}rd and L{\'a}szl{\'o} Vid{\'a}cs and Rudolf Ferenc and Tibor Gyim{\'o}thy} } @conference {DJN13, title = {Designing and Implementing Control Flow Graph for {M}agic 4th Generation Language}, booktitle = {Proceedings of the 13th Symposium on Programming Languages and Software Tools (SPLST 2013)}, year = {2013}, month = {aug}, pages = {200{\textendash}214}, publisher = {University of Szeged}, organization = {University of Szeged}, address = {Szeged, Hungary}, abstract = {A good compiler which implements many optimizations during its compilation phases must be able to perform several static analysis techniques such as control ow or data ow analysis. Besides compilers, these techniques are common for static analyzers to retrieve information from the code for example code auditing, quality assurance, or testing purposes. Implementing control ow analysis requires handling many special structures of the target language. In our paper we present our experiences in implementing control ow graph (CFG) construction for a special 4th generation language called Magic. During designing and implementing the CFG for this language we identied dierences compared to 3rd generation languages because the special programming technique of this language (e.g. data access, parallel task execution, events). Our work was motivated by our industrial partner who needed precise static analysis tools (e.g. for quality assurance or testing purposes) for this language. We believe that our experiences for Magic, as a representative of 4GLs might be generalized for other languages too.}, author = {D{\'e}vai, Rich{\'a}rd and Judit J{\'a}sz and Csaba Nagy and Rudolf Ferenc} }