skip to main content
10.1145/1315580.1315591acmconferencesArticle/Chapter ViewAbstractPublication PagesadaConference Proceedingsconference-collections
Article

Using mathematics to improve ada compiled code, part 2: the proof

Published:04 November 2007Publication History

ABSTRACT

In a previous paper, we presented a method of eliminating most procedure call overhead, and most static scoping overhead, in compiling a program written in Ada, or, for that matter, in any language which allows nested procedures. This involves the construction of a loop tree for the call graph of the program; we described this in another earlier paper. Once this is constructed, we make use of a criterion for deciding when a new base register is needed. Suppose that U and V are procedures, with V nested in U. Then the only time a new base register might be needed by V is when there is a loop, in the loop tree, that contains V but not U. This result was stated without proof in the first part of this paper; here we present the proof, after reviewing some basic mathematical concept.

References

  1. Fischer, C. N. , and LeBlanc, R. J. Crafting a Compiler. Benjamin/Cummings, Menlo Park, CA, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Ghezzi, C. , and Jazayeri, M. Programming Language Concepts (2d ed. ). Wiley, New York, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Horowitz, E. , and Sahni, S. Fundamentals of Data Structures. Computer Science Press, Rockville, MD, 1983.Google ScholarGoogle Scholar
  4. Maurer, W. D. Loop Trees for Directed Graphs and Their Applications. Technical Report TR-GWU-CS-05-004, Computer Science Dept. , George Washington University, Washington, 2005.Google ScholarGoogle Scholar
  5. Maurer, W. D. Using mathematics to improve Ada compiled code. In Lecture Notes in Computer Science 4006, 2006, 191--202. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Maurer, W. D. The Rearranger -- a new assembler utility. In Proc. 21 st IEEE/ACM Intl. Conf. On Automated Software Eng. (ASE 2006), Tokyo, Japan, Sept. 2006, 357--358. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Maurer, W. D. Generalized structured programs and loop trees. Science of Computer Programming 67, 2007, 223--246. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Pratt, T. W. Programming Language Design and Implementation (2d ed. ). Prentice-Hall, Englewood Cliffs, NJ, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Ryder, B. G. Constructing the call graph of a program. IEEE Trans. Software Eng. 5, 3 (May 1979), 216--226. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Sharir, M. A strong-connectivity algorithm and its applications in data flow analysis. Comput. Math. Appl. 7 (1981), 67--72.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Using mathematics to improve ada compiled code, part 2: the proof

    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
    • Article Metrics

      • Downloads (Last 12 months)2
      • Downloads (Last 6 weeks)1

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!