Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1328408.1328432acmconferencesArticle/Chapter ViewAbstractPublication PagespepmConference Proceedingsconference-collections
research-article

Specialization for applications using shared libraries

Published: 07 January 2008 Publication History

Abstract

Shared libraries have been prevalently deployed in many systems and application domains in the last decade. Their ubiquity depends largely on their allowance for sharing; ie., a single copy of the library is used across multiple applications running on a single system. Unfortunately, traditional partial evaluation does not consider the sharing issue. Specifically, libraries are treated as if they are statically linked, and sharing is not preserved during the process of creating and running specialized libraries, especially across different specialized applications. In this paper, we propose a methodology for run-time specialization that aims to maximize sharing during the whole specialization process. Specifically, we advocate a stand-alone specialization of shared libraries (independent of their clients), and propose a specialization mechanism which enables sharing of run-time specialized library code both within a specialized application and across multiple specialized applications. Our proposal includes a novel static transformation that constructs a generic specialization library/component, aiming to eliminate code duplication arising at compile-time, as well as a novel run-time specialization that eliminates code duplication occurring at run-time.

References

[1]
Tempo Specializer - A Partial Evaluator for C. Phoenix group. URL: http://phoenix.labri.fr/software/tempo/.
[2]
'C and tcc. PDOS group. MIT Computer Science and Artificial Intelligence Laboratory. URL: http://pdos.csail.mit.edu/tickc/.
[3]
Gustavo Bobeff and Jacques Noyé. Molding components using program specialization techniques. In Workshop on Component-Oriented Programming, July 2003.
[4]
Gustavo Bobeff and Jacques Noyé. Component specialization. In ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 39--50, 2004.
[5]
Charles Consel. A tour of schism: a partial evaluation system for higher-order applicative languages. In ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 145--154, 1993.
[6]
Charles Consel and Olivier Danvy. From interpreting to compiling binding times. In European Symposium on Programming, pages 88--105, 1990.
[7]
Charles Consel, Luke Hornof, R. Marlet, G. Muller, S. Thibault, E.-N. Volanschi, Julia Lawall, and J. Noyé. Tempo: specializing systems applications and beyond. ACM Computing Survey, 30(3es):19--24, 1998.
[8]
Charles Consel, Julia Lawall, and Anne-Françoise Le Meur. A tour of Tempo: A program specializer for the C language. Science of Computer Programming, 2004.
[9]
Charles Consel and François Noël. A general approach for run-time specialization and its application to c. In Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 145--156, 1996.
[10]
Crispin Cowan, Andrew Black, Charles Krasic, Calton Pu, Jonathan Walpole, Charles Consel, and Eugen-Nicolae Volanschi. Specialization classes: an object framework for specialization. In IWOOOS '96: Proceedings of the 5th International Workshop on Object Orientation in Operating Systems, page~72, 1996.
[11]
Brian Grant, Markus Mock, Matthai Philipose, Craig Chambers, and Susan J. Eggers. Dyc: an expressive annotation-directed dynamic compiler for c. Theoretical Computer Science, 248(1--2):147--199, 2000.
[12]
Brian Grant, Matthai Philipose, Markus Mock, Craig Chambers, and Susan J. Eggers. An evaluation of staged run-time optimizations in dyc. In ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 293--304, 1999.
[13]
Julia L. Lawall and Gilles Muller. Faster run-time specialized code using data specialization. Technical Report Research Report RR--3833, INRIA, December 1999.
[14]
Anne-Françoise Le Meur, Julia Lawall, and Charles Consel. Specialization scenarios: A pragmatic approach to declaring program specialization. Journal of Higher-Order and Symbolic Computation, 17(1):47--92, 2004.
[15]
François Noऩl. Spécialisation dynamique de code par évaluation partielle. PhD thesis, Université de Rennes 1, France, October 1996. In French.
[16]
Massimiliano Poletto. Language and compiler support for dynamic code generation. PhD thesis, MIT, June, 1999.
[17]
Massimiliano Poletto, Wilson C. Hsieh, Dawson R. Engler, and M. Frans Kaashoek. 'C and tcc: A language and compiler for dynamic code generation. ACM Transaction on Programming Languages and Systems, 21(2):324--369, March 1999.
[18]
Ulrik Pagh Schultz. Black-box program specialization. In Workshop on Component-Oriented Programming, 1999.
[19]
Eugen-Nicolae Volanschi, Charles Consel, Gilles Muller, and Crispin Cowan. Declarative specialization of object-oriented programs. In ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications, pages 286--300, 1997.
[20]
Ping Zhu and Siau Cheng Khoo. Request and assert: A pragmatic approach to generating specialization scenarios. Technical report, School of Computing, National University of Singapore, 2006.
[21]
Ping Zhu and Siau-Cheng Khoo. Towards constructing reusable specialization components. In ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 154--164, 2007.

Cited By

View all

Recommendations

Reviews

German Vidal

Zhu and Khoo present a novel approach to the runtime specialization of C applications that use shared libraries. In contrast to static libraries, shared libraries are not linked to every application that uses them. Rather, only a reference to a single executable of the library is added, thus reducing disk and memory usage. Runtime specialization proceeds in two stages. At compile time, a generating extension for each shared library is produced?a set of code templates, together with a runtime specializer that are used for instantiating them. At runtime, the generating extensions are executed using the input data so that the specialized code is generated and then executed. The specialization of shared libraries using standard techniques may produce many copies of the specialized libraries, thus the motivation of the paper is clear. In contrast to other runtime specializers, the new approach reduces the number of code templates produced at compile time, as well as the size of the specialized code footprint at runtime. Unfortunately, although the developments are illustrated by means of several examples, no experimental results are provided. The paper is reasonably well written and organized. It starts with an informal explanation of the complete technique so that nonexperts can still get an idea of the overall technique, while ignoring the technical details. The technical part of the paper is only accessible to people with some knowledge of runtime specialization, such as the system Tempo. Familiarity with Zhu and Khoo's previous work on profitability-oriented specialization would also be helpful to readers. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PEPM '08: Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
January 2008
214 pages
ISBN:9781595939777
DOI:10.1145/1328408
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 07 January 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. run-time specialization
  2. shared libraries

Qualifiers

  • Research-article

Conference

PEPM08
PEPM08: Partial Evaluation and Program Manipulation
January 7 - 8, 2008
California, San Francisco, USA

Acceptance Rates

Overall Acceptance Rate 66 of 120 submissions, 55%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 18 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media