skip to main content
article
Open Access

Smart recompilation

Published:01 June 1986Publication History
Skip Abstract Section

Abstract

With current compiler technology, changing a single line in a large software system may trigger massive recompilations. If the change occurs in a file with shared declarations, all compilation units depending upon that file must be recompiled to assure consistency. However, many of those recompilations may be redundant, because the change may affect only a small fraction of the overall system.

Smart recompilation is a method for reducing the set of modules that must be recompiled after a change. The method determines whether recompilation is necessary by isolating the differences among program modules and analyzing the effect of changes. The method is applicable to languages with and without overloading. A prototype demonstrates that the method is efficient and can be added with modest effort to existing compilers.

References

  1. 1 Ada Programming Language, Military Standard. J. D. Ichbiah, United States Department of Defense, 1983.Google ScholarGoogle Scholar
  2. 2 BAKER, T.P. A one-pass algorithm for overload resolution in Ada. ACM Trans. Program. Lang. Syst. 4, 4 (Oct. 1982), 601-614. Google ScholarGoogle Scholar
  3. 3 BIRTWISTLE, G., ENDERIN, L., OHLIN, M., AND PALME, J. DECsystem-lO Simula Language Handbook Part 1. C8398, Swedish National Defense Research Institute, Mar. 1976.Google ScholarGoogle Scholar
  4. 4 DAUSMANN, M. Reducing recompilation costs for software systems in Ada. In System lmplementation Languages: Experience and Assessment, Proceedings of the IFIP WG2.4 Conference (Canterbury, UK, 1984) North-Holland, Amsterdam.Google ScholarGoogle Scholar
  5. 5 FELDMAN, S. Make--A program for maintaining computer programs. Softw. Pract. Exper. 9, 3 (Mar. 1979), 255-265.Google ScholarGoogle Scholar
  6. 6 LAUER, H. C. AND SATTERTHWAITE, E.H. The impact of Mesa on system design. In Proceedings of the 4th International Conference on Software Engineering (Sept. 1979), ACM, IEEE, ERO, GI, 174-182. Google ScholarGoogle Scholar
  7. 7 LEBLANG, D. B., AND CHASE, R. P. Computer-aided software engineering in a distributed workstation environment. SIGPLAN Not. 19, 5 (May 1984), 104-112. Google ScholarGoogle Scholar
  8. 8 MITCHELL, J. G., MAYBURY, W., AND SWEET, R. Mesa Language Manual. Tech. Rep. Xerox Palo Alto Research Center, Feb. 1978.Google ScholarGoogle Scholar
  9. 9 ROCHKIND, M.J. The source code control system. IEEE Trans. Softw. Eng. SE-I, 4 (Dec. 1975), 364-370.Google ScholarGoogle Scholar
  10. 10 SWEET, R.E. The Mesa programming environment. ACM SIGPLAN Not. 20, 7 (July 1985), 216-229. Google ScholarGoogle Scholar
  11. 11 TICHV, W. F. Software development control based on module interconnection. In Software Development Environments, A. I. Wasserman, Ed., IEEE Computer Society Press, 1981, 272-284. Also published in Proceedings of the 4th International Conference on Software Engineering. (Sept. 1979), IEEE, New York. Google ScholarGoogle Scholar
  12. 12 TICHY, W. F. A data model for programming support environments and its application. In Automated Tools for Information System Design and Development, H-J. Schneider and A. I. Wasserman, Eds., North-Holland, Amsterdam, 1982.Google ScholarGoogle Scholar
  13. 13 TICHY, W.F. The string-to-string correction problem with block moves. ACM Trans. Comput. Syst. 2, 4 (Nov. 1984), 309-321. Google ScholarGoogle Scholar
  14. 14 TICHY, W. F. RCS--A system for version control. Softw. Pract. Exper. 15, 7 (July 1985), 637-654. Google ScholarGoogle Scholar
  15. 15 WroTH, N. Programming in Modula-2. Springer-Verlag, New York, 1985.Google ScholarGoogle Scholar

Index Terms

  1. Smart recompilation

                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

                Full Access

                • Published in

                  cover image ACM Transactions on Programming Languages and Systems
                  ACM Transactions on Programming Languages and Systems  Volume 8, Issue 3
                  The MIT Press scientific computation series
                  July 1986
                  135 pages
                  ISSN:0164-0925
                  EISSN:1558-4593
                  DOI:10.1145/5956
                  Issue’s Table of Contents

                  Copyright © 1986 ACM

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 1 June 1986
                  Published in toplas Volume 8, Issue 3

                  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