Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Extracting library-based object-oriented applications

Published: 01 November 2000 Publication History

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]
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.
[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).
[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.
[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.
[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).
[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.
[7]
CALLAWAY, D. R. Inside Servlets: Server-Side Programming for the Java Platform. Addison-Wesley, 1999.
[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.
[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.
[10]
DIGITALK INC. Smalltalk/V for win32 Programming, 1993. Chapter 17: "Object Libraries and Library Builder.
[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).
[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.
[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).
[14]
PARcPLAcE SYSTEMS. ParePlace Smalltalk, objectworks release 4.1 ed., 1992. Section 16: Deploying an Application, Section 28: Binary Object Streaming Service.
[15]
SOHEDFLER, R. W. An anALysis of online substitution for a structured programming language. Commas. ACM N0, 9 (Sept. 1977), 647-654.
[16]
SUN MICROSYSTEMS. JavaEeans, version 1.01 ed. 2550 Garcia Avenue, Mountain View, CA 94043, July 1997.
[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).
[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).
[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.
[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).

Cited By

View all
  • (2022)Stubbifier: debloating dynamic server-side JavaScript applicationsEmpirical Software Engineering10.1007/s10664-022-10195-627:7Online publication date: 20-Sep-2022
  • (2003)Investigating java type analyses for the receiver-classes testing criterion14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003.10.1109/ISSRE.2003.1251063(419-429)Online publication date: 2003
  • (2003)Dimensions of Precision in Reference Analysis of Object-Oriented Programming LanguagesCompiler Construction10.1007/3-540-36579-6_10(126-137)Online publication date: 28-Feb-2003
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGSOFT Software Engineering Notes
ACM SIGSOFT Software Engineering Notes  Volume 25, Issue 6
Nov. 2000
169 pages
ISSN:0163-5948
DOI:10.1145/357474
Issue’s Table of Contents
  • cover image ACM Conferences
    SIGSOFT '00/FSE-8: Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
    November 2000
    170 pages
    ISBN:1581132050
    DOI:10.1145/355045
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: 01 November 2000
Published in SIGSOFT Volume 25, Issue 6

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)48
  • Downloads (Last 6 weeks)7
Reflects downloads up to 10 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Stubbifier: debloating dynamic server-side JavaScript applicationsEmpirical Software Engineering10.1007/s10664-022-10195-627:7Online publication date: 20-Sep-2022
  • (2003)Investigating java type analyses for the receiver-classes testing criterion14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003.10.1109/ISSRE.2003.1251063(419-429)Online publication date: 2003
  • (2003)Dimensions of Precision in Reference Analysis of Object-Oriented Programming LanguagesCompiler Construction10.1007/3-540-36579-6_10(126-137)Online publication date: 28-Feb-2003
  • (2001)Points-to and Side-Effect Analyses for Programs Built with Precompiled LibrariesCompiler Construction10.1007/3-540-45306-7_3(20-36)Online publication date: 23-Mar-2001
  • (2021)A Study of Call Graph Construction for JVM-Hosted LanguagesIEEE Transactions on Software Engineering10.1109/TSE.2019.295692547:12(2644-2666)Online publication date: 1-Dec-2021
  • (2011)Taming reflectionProceedings of the 33rd International Conference on Software Engineering10.1145/1985793.1985827(241-250)Online publication date: 21-May-2011
  • (2008)Slim VMProceedings of the 6th international symposium on Principles and practice of programming in Java10.1145/1411732.1411749(117-126)Online publication date: 9-Sep-2008
  • (2007)Tactics for minimal interference from class loading in real-time Java™Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems10.1145/1288940.1288944(23-32)Online publication date: 26-Sep-2007
  • (2004)Fragment Class Analysis for Testing of Polymorphism in Java SoftwareIEEE Transactions on Software Engineering10.1109/TSE.2004.2030:6(372-387)Online publication date: 1-Jun-2004
  • (2003)Fragment class analysis for testing of polymorphism in Java softwareProceedings of the 25th International Conference on Software Engineering10.5555/776816.776842(210-220)Online publication date: 3-May-2003
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media