skip to main content
10.1145/1145319.1145331acmotherconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Refactorings for Fortran and high-performance computing

Authors Info & Claims
Published:15 May 2005Publication History

ABSTRACT

Not since the advent of the integrated development environment has a development tool had the impact on programmer productivity that refactoring tools have had for object-oriented developers. However, at the present time, such tools do not exist for high-performance languages such as C and Fortran; moreover, refactorings specific to high-performance and parallel computing have not yet been adequately examined. We observe that many common refactorings for object-oriented systems have clear analogs in procedural Fortran. The Fortran language itself and the introduction of object orientation in Fortran 2003 give rise to several additional refactorings. Moreover, we conjecture that many hand optimizations common in supercomputer programming can be automated by a refactoring engine but deferred until build time in order to preserve the maintainability of the original code base. Finally, we introduce Photran, an integrated development environment that will be used to implement these transformations, and discuss the impact of such a tool on legacy code reengineering.This work is being funded by IBM under the PERCS project.

References

  1. Boehm, B., and Horowitz E. (editors) The High Cost of Software: Practical Strategies for Developing Large Software Systems. Addison-Wesley, 1975.Google ScholarGoogle Scholar
  2. Brooks, F. The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. C Development Tool http://www.eclipse.org/cdt/Google ScholarGoogle Scholar
  4. De, V. A Foundation for Refactoring Fortran 90 in Eclipse. M. S. Thesis, University of Illinois at Urbana-Champaign, 2004.Google ScholarGoogle Scholar
  5. Foote, B., Yoder J. Big Ball of Mud. Fourth Conference on Patterns Languages of Programs (PLoP'97/EuroPLoP'97). Monticello, Illinois, September 1997.Google ScholarGoogle Scholar
  6. Fowler, M. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Garrido, A., and Johnson, R. "Challenges of Refactoring C Programs." Proceedings of IWPSE 2002: International Workshop on Principles of Software Evolution. Orlando, Florida. May 19--20, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Garrido, A., and Johnson, R. "Refactoring C with Conditional Compilation." Proceedings of the 18th IEEE International Conference on Automated Software Engineering (ASE 2003). Montreal, Canada, October 6--10, 2003. 323--326.Google ScholarGoogle Scholar
  9. Java Developement Tools for Eclipse http://www.eclipse.org/jdt/Google ScholarGoogle Scholar
  10. Opdyke, W. Refactoring Object-Oriented Frameworks. Ph.D. Thesis, University of Illinois at Urbana-Champaign, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Photran, an Eclipse plugin for Fortran Developement http://www.photran.org/Google ScholarGoogle Scholar
  12. Roberts, D., Brant, J., and Johnson, R. "A Refactoring Tool for Smalltalk." Theory and Practice of Object Systems 3(4), 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Demeyer S., Ducasse S. and Nierstrasz O. Object-Oriented Reengineering Patterns. Morgan Kaufmann, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Feathers M. Working Effectively with Legacy Code. Prentice Hall, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Refactorings for Fortran and high-performance computing

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Other conferences
        SE-HPCS '05: Proceedings of the second international workshop on Software engineering for high performance computing system applications
        May 2005
        82 pages
        ISBN:1595931171
        DOI:10.1145/1145319

        Copyright © 2005 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 15 May 2005

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader