首页    期刊浏览 2024年12月04日 星期三
登录注册

文章基本信息

  • 标题:Source-to-Source Refactoring and Elimination of Global Variables in C Programs
  • 本地全文:下载
  • 作者:Hemaiyer Sankaranarayanan ; Prasad A. Kulkarni
  • 期刊名称:Journal of Software Engineering and Applications
  • 印刷版ISSN:1945-3116
  • 电子版ISSN:1945-3124
  • 出版年度:2013
  • 卷号:6
  • 期号:5
  • 页码:264-273
  • DOI:10.4236/jsea.2013.65033
  • 出版社:Scientific Research Publishing
  • 摘要: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 corresponding new local variable, passes it as an argument to necessary functions, and updates the source lines that used the global to now instead use the corresponding local or argument. We also characterize the use of global variables in standard benchmark programs. We study the effect of our transformation on static program properties, such as change in the number of function arguments and program state visibility. Additionally, we quantify dynamic program features, including memory and runtime performance, before and after our localizing transformation.
  • 关键词:Global Variable; Program Refactoring; Compiler Transformations
国家哲学社会科学文献中心版权所有