@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} }