article

Extracting library-based object-oriented applications

Abstract

In an increasingly popular model of software distribution, software is developed in one computing environment and deployed in other environments by transfer over the internet. Extraction tools perform a static whole-program analysis to determine unused functionality in applications in order to reduce the time required to download applications. We have identified a number of scenarios where extraction tools require information beyond what can be inferred through static analysis: software distributions other than complete applications, the use of reflection, and situations where an application uses separately developed class libraries. This paper explores these issues, and introduces a modular specification language for expressing the information required for extraction. We implemented this language in the context of Jax, an industrial-strength application extractor for Java, and present a small case study in which different extraction scenarios are applied to a commercially available library-based application.

References

  1. 1 AGBSBN, O. Concrete Type Inference: Delivering Object-Oriented Applications. Phi) thesis, Stanford U., December 1995. Appeared as Sun Microsystems Laboratories Technical Report SMLI TR-96-52.Google ScholarGoogle Scholar
  2. 2 AGESEN, O., AND UNGAR, D. Sifting out the gold: Delivering compact applications from an exploratory object-oriented programming environment. In Proc. of the Ninth Annual Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '94)(Portland, OR, 1994), pp. 355-370. ACM SIGPLAN Notices 29(10). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3 AIGNBR, G., AND HOLZLE, U. Eliminating virtual function calls in C+q- programs. In Proc. of the Tenth European Conf. on Object-Oriented Program (Baooe'98) ((Lins, Austria), July 1996), pp. 142-166. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4 BACON, D. F. Fast and Effective Optimization of Statically Typed Object-Oriented Languages PhD thesis, Computer Science Division, U. of California, Berkeley, Dec. 1997. Report No. UCB/CSD-98-1017. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5 BACON, D. F., AND SWBmNEY, P. F. Fast static analysis of C++ virtual function calls. In Proc. of the Eleventh Annual Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '96) (San Jose, CA, 1996), pp. 324-341. SIGPLAN Notices 31(10). Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 CALDER, B., AND GRUNWALD, D. Reducing indirect function call overhead in C++ programs. In Proc. of the 2lst Annual AGM Symposium on Principles of Programming Languages (1994), pp. 397-408. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7 CALLAWAY, D. R. Inside Servlets: Server-Side Programming for the Java Platform. Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8 CHEN, Y.-F., GANSNER, E. R., AND KOUTSOFIOS, E. A C++ data model supporting reachability analysis and dead code detection. IEEE Transactions on Software Engineering 24, 9 (Sept. 1998), 682-694. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 DEAN, J., GROVE, D., AND CHAMBERS, C. Optimization of object-oriented programs using static class hierarchy analysis. In Proc. of the Ninth European Conf. on Object-Oriented Programming w GOOP'95)(Aarhns, Denmark, Aug. 1995), -Olthoff, Ed., Springer-Verlag, pp- 77-101. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10 DIGITALK INC. Smalltalk/V for win32 Programming, 1993. Chapter 17: "Object Libraries and Library Builder.Google ScholarGoogle Scholar
  11. 11 DIWAN, A., MOSS, J. E. B., AND McKINLEY, K. S. Simple and effective analysis of statically-typed object-oriented programs. In Proc. of the Eleventh Annual Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '96) (San Jose, CA, 1996), pp. 292-305. SIGPLAN Notices 31(10). Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12 IBM CORPORATION. IBM Smalltalk User's Guide, version 3, release 0 ed., 1995. Chapter 36: Introduction to Packaging, Chapter 37: "Simple Paclmging, Chapter 38: "Advanced Packaging.Google ScholarGoogle Scholar
  13. 13 JACKSON, D., AnD WAINGOLD, A. Lightweight extraction of object models from bytecode. In Proc. of the International Conf. on Soft'ware Engineering (ICSE '99) (Los Angeles, CA), 1999). Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14 PARcPLAcE SYSTEMS. ParePlace Smalltalk, objectworks release 4.1 ed., 1992. Section 16: Deploying an Application, Section 28: Binary Object Streaming Service.Google ScholarGoogle Scholar
  15. 15 SOHEDFLER, R. W. An anALysis of online substitution for a structured programming language. Commas. ACM N0, 9 (Sept. 1977), 647-654. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16 SUN MICROSYSTEMS. JavaEeans, version 1.01 ed. 2550 Garcia Avenue, Mountain View, CA 94043, July 1997.Google ScholarGoogle Scholar
  17. 17 SWEENEY, P. F., AND TIP, F. A study of dead data members in C++ applications. In Proc. of the ACM SIGPLAN'98 Conf. on Programming Language Desigen and Implementation {PLDI '98)(Montreal, Canada, June 1996), pp. 324-332. ACM SIGPLAN Notices 33(6). Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18 TIp, F., LAFFRA, C., SWEENw.Y, P. F., AND STREETER, D. Practical experience with an application extractor for Java. In Proc. of the Fourteenth Annual Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '99) (Denver, CO), 1999), pp. 292-305. SIGPLA N Notices 34(10). Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19 TIp, F., AND PALSBERG, I. Scalable propagation-based call graph construction algorithms. In Proc. of the Fifteenth Annual Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOFSLA '00) (Minneapolis, MN), 2000). To appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20 Tin, F., AND SWEBNEY, P. F. Class hierarchy specialization. In Proc. of the Eleventh Annual Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '97) (Atlanta, GA, 1997), pp. 271-285. ACM SIGPLAN Notices 32(10). Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Extracting library-based object-oriented applications

          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

          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!