Abstract
Reflection allows defining generic operations in terms of object constituents. A performance penalty accrues if reflection is effectuated at run time, which is usually the case. If performance matters, some compile-time means of reflection is desired to obviate that penalty. Furthermore, static meta-information may be utilized for class creation, e.g., in optimizations. We provide such means in generic components, employing static meta-programming. Essentially, object structure is encoded in a generic container that models a statically indexed family. Optimizations benefit any object defined in terms of that container.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Czarnecki, K., Eisenecker, U.W.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)
Bracha, G., Cook, W.: Mixin-Based Inheritance. In: SIGPLAN Not., vol. 25(10), pp. 303–311. ACM Press, New York (1990)
Eisenecker, U.W., Blinn, F., Czarnecki, K.: A Solution to the Constructor-Problem of Mixin-Based Programming in C++. In: Meyers, S. (ed.) First Workshop on C++ Template Programming (2000), http://www.oonumerics.org/tmpw00
Järvi, J.: Tuples and Multiple Return Values in C++. Technical Report 249, Turku Centre for Computer Science (1999)
Järvi, J.: Boost Tuple Library Homepage (2001), http://www.boost.org/libs/tuple
Winch, E.: Heterogeneous Lists of Named Objects. In: Josuttis, N., Smaragdakis, Y. (eds.) Second Workshop on C++ Template Programming (2001), http://www.oonumerics.org/tmpw01
Weiss, R., Simonis, V.: Storing Properties in Grouped Tagged Tuples. In: Broy, M., Zamulin, A.V. (eds.) PSI 2003. LNCS, vol. 2890, pp. 22–29. Springer, Heidelberg (2004)
de Guzman, J., Marsden, D., Schwinger, T.: Fusion Library 2.0 Homepage (2007), http://spirit.sourceforge.net/dl_more/fusion_v2/libs/fusion
Lämmel, R., Peyton Jones, S.: Scrap Your Boilerplate: A Practical Design Pattern for Generic Programming. In: SIGPLAN Not., vol. 38(3), pp. 26–37. ACM Press, New York (2003)
Hinze, R., Löh, A.: Scrap Your Boilerplate Revolutions. In: Uustalu, T. (ed.) MPC 2006. LNCS, vol. 4014, pp. 180–208. Springer, Heidelberg (2006)
Munkby, G., Priesnitz, A.P., Schupp, S., Zalewski, M.: Scrap++: Scrap Your Boilerplate in C++. In: Hinze, R. (ed.) 2006 SIGPLAN Workshop on Generic Programming, pp. 66–75. ACM Press, New York (2006)
Smaragdakis, Y., Batory, D.: Mixin-Based Programming in C++. In: Butler, G., Jarzabek, S. (eds.) GCSE 2000. LNCS, vol. 2177, pp. 163–177. Springer, Heidelberg (2001)
Attardi, G., Cisternino, A.: Reflection Support by Means of Template Metaprogramming. In: Bosch, J. (ed.) GCSE 2001. LNCS, vol. 2186, pp. 118–127. Springer, Heidelberg (2001)
Calcagno, C., Taha, W., Huang, L., Leroy, X.: Implementing Multi-Stage Languages using ASTs, Gensym, and Reflection. In: Pfenning, F., Smaragdakis, Y. (eds.) GPCE 2003. LNCS, vol. 2830, pp. 57–76. Springer, Heidelberg (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Priesnitz, A.P., Schupp, S. (2008). Generic Components for Static Operations at Object Level. In: Filipe, J., Shishkov, B., Helfert, M., Maciaszek, L.A. (eds) Software and Data Technologies. ICSOFT ENASE 2007 2007. Communications in Computer and Information Science, vol 22. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-88655-6_4
Download citation
DOI: https://doi.org/10.1007/978-3-540-88655-6_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-88654-9
Online ISBN: 978-3-540-88655-6
eBook Packages: Computer ScienceComputer Science (R0)