A global variable in C/C++ is one that is declared outside a function, and whose scope extends the lifetime of the entire program. Global variables cause problems for program dependability, maintainability, extensibility, verification, and thread-safety. However, global variables can also make coding more convenient and improve program performance. We have found the use of global variables to remain unabated and extensive in real-world software. In this paper we present a source-to-source refactoring tool to automatically detect and localize global variables in a program. We implement a compiler based transformation to find the best location to redefine each global variable as a local. For each global, our algorithm initializes the correspo...
Interprocedural analysis requires a statically determinable call multigraph to represent the program...
International audienceOptimizations, transformations and analyses are applied to programs by compile...
Thirty years after its creation, C remains one of the most widely used systems programming languages...
Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any m...
GALLINETTE_HCERES2020Most integrated development environments are shipped with refactoring tools. Ho...
International audienceMost integrated development environments are shipped with refactoring tools. H...
Tool support for refactoring code written in mainstream languages such as C and C is currently lacki...
Abstract. Program optimizations, transformations and analyses are ap-plied to intermediate represent...
Many existing systems are written in C and are not re-entrant or thread safe. Sometimes these system...
In 1968 E.W. Dijkstra wrote a letter to the editor of the CACM proposing that the goto statement be ...
We show how locally replaceable code snippets can be used to easily specify and prototype compiler ...
Hybrid programming models, such as MPI combined with threads, are one of the most efficient ways to ...
In this thesis we present and analyse a set of automatic source-to-source program transformations th...
Any reasonably large program has to use local variables. It is quite common in the Lisp language fam...
Although compiler optimizations play a crucial role in the performance of modern computer systems, d...
Interprocedural analysis requires a statically determinable call multigraph to represent the program...
International audienceOptimizations, transformations and analyses are applied to programs by compile...
Thirty years after its creation, C remains one of the most widely used systems programming languages...
Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any m...
GALLINETTE_HCERES2020Most integrated development environments are shipped with refactoring tools. Ho...
International audienceMost integrated development environments are shipped with refactoring tools. H...
Tool support for refactoring code written in mainstream languages such as C and C is currently lacki...
Abstract. Program optimizations, transformations and analyses are ap-plied to intermediate represent...
Many existing systems are written in C and are not re-entrant or thread safe. Sometimes these system...
In 1968 E.W. Dijkstra wrote a letter to the editor of the CACM proposing that the goto statement be ...
We show how locally replaceable code snippets can be used to easily specify and prototype compiler ...
Hybrid programming models, such as MPI combined with threads, are one of the most efficient ways to ...
In this thesis we present and analyse a set of automatic source-to-source program transformations th...
Any reasonably large program has to use local variables. It is quite common in the Lisp language fam...
Although compiler optimizations play a crucial role in the performance of modern computer systems, d...
Interprocedural analysis requires a statically determinable call multigraph to represent the program...
International audienceOptimizations, transformations and analyses are applied to programs by compile...
Thirty years after its creation, C remains one of the most widely used systems programming languages...