Abstract
Customization often corresponds to a simple functional customization, restricting the functionalities of a component to some configuration values, without performing any code optimization. However, when resources are limited, as in embedded systems, customization needs to be pushed to code customization. This form of customization usually requires one to program low-level and intricate transformations.
This paper proposes a declarative approach to expressing customization properties of components. The declarations enable the developer to focus on what to customize in a component, as opposed to how to customize it. Customization transformations are automatically determined by compiling both the declarations and the component code; this process produces a customizable component. Such a component is then ready to be custom-fitted to any application.
Besides the declaration compiler, we have developed a graphical environment both to assist the component developer in the creation of a customizable component, and to enable a component user to tailor a component to a given application.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Download to read the full chapter text
Chapter PDF
References
L.O. Andersen. Program Analysis and Specialization for the C Programming Language. PhD thesis, Computer Science Department, University of Copenhagen, May 1994. DIKU Technical Report 94/19.
C. Consel, L. Hornof, J. Lawall, R. Marlet, G. Muller, J. Noyé, S. Thibault, and N. Volanschi. Tempo: Specializing systems applications and beyond. ACM Computing Surveys, Symposium on Partial Evaluation, 30(3), 1998.
C. Consel, L. Hornof, F. Noël, J. Noyé, and E.N. Volanschi. A uniform approach for compile-time and run-time specialization. In O. Danvy, R. Glück, and P. Thiemann, editors, Partial Evaluation, International Seminar, Dagstuhl Castle, number 1110 in Lecture Notes in Computer Science, pages 54–72, February 1996.
K. Czarnecki and U. W. Eisenecker. Generative Programming-Methods, Tools, and Applications. Addison-Wesley, 2000.
Red Hat. eCos: Embedded configurable operating system, 2000. http://sources.redhat.com/ecos.
B. W. Kernighan and D. M. Ritchie. The C Programming Language. Prentice-Hall, Englewood Cliffs, New Jersey, 1978.
J.L. Lawall. Faster Fourier transforms via automatic program specialization. In J. Hatcliff, T.Æ. Mogensen, and P. Thiemann, editors, Partial Evaluation— Practice and Theory. Proceedings of the 1998 DIKU International Summerschool, volume 1706 of Lecture Notes in Computer Science, pages 338–355, Copenhagen, Denmark, 1999. Springer-Verlag.
S. Lin and D. J. Costello. Error Control Coding: Fundamentals and Applications. Prentice Hall: Englewood Cliffs, NJ, 1983.
R. Marlet, S. Thibault, and C. Consel. Efficient implementations of software architectures via partial evaluation. Journal of Automated Software Engineering, 6(4):411–440, October 1999.
G. Muller, R. Marlet, E.N. Volanschi, C. Consel, C. Pu, and A. Goel. Fast, optimized Sun RPC using automatic program specialization. In Proceedings of the 18th International Conference on Distributed Computing Systems, Amsterdam, The Netherlands, May 1998. IEEE Computer Society Press.
F. Noël, L. Hornof, C. Consel, and J. Lawall. Automatic, template-based runtime specialization: Implementation and experimental study. In International Conference on Computer Languages, pages 132–142, Chicago, IL, May 1998. IEEE Computer Society Press. Also available as IRISA report PI-1065.
C. Pu, H. Massalin, and J. Ioannidis. The Synthesis kernel. Computing Systems, 1(1):11–32, Winter 1988.
U. Schultz, J. Lawall, C. Consel, and G. Muller. Towards automatic specialization of Java programs. In Proceedings of the European Conference on Object-oriented Programming (ECOOP’99), volume 1628 of Lecture Notes in Computer Science, pages 367–390, Lisbon, Portugal, June 1999.
J. G. Siek and A. Lumsdaine. The matrix template library: A generic programming approach to high performance numerical linear algebra. In International Symposium on Computing in Object-Oriented Parallel Environments, 1998.
Java Sun. Javabeans component architecture. http://java.sun.com/products/javabeans/.
S. Thibault and C. Consel. A framework for application generator design. In Proceedings of the Symposium on Software Reusability, Boston, MA, USA, May 1997.
Scott Thibault, Renaud Marlet, and Charles Consel. A domain-specific language for video device driver: from design to implementation. In Proceedings of the 1st USENIX Conference on Domain-Specific Languages, Santa Barbara, California, October 1997.
T.L. Veldhuizen. Arrays in Blitz++. In Proceedings of the International Symposium on Computing in Object-Oriented Parallel Environments, number 1505 in Lecture Notes in Computer Science, Santa Fe, NM, USA, December 1998. Springer-Verlag.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Le Meur, AF., Consel, C., Escrig, B. (2002). An Environment for Building Customizable Software Components. In: Bishop, J. (eds) Component Deployment. CD 2002. Lecture Notes in Computer Science, vol 2370. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45440-3_1
Download citation
DOI: https://doi.org/10.1007/3-540-45440-3_1
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43847-2
Online ISBN: 978-3-540-45440-3
eBook Packages: Springer Book Archive