Abstract
Using explicit tags at the programming language level has been attracting a lot of attention recently with technologies like xDoclet [41] which automates EJB [30] related tasks, and .NET attributes [21] which are a vital part of the .NET framework [34]. However there are currently no systematic ways for adding and transforming tag-driven product line specific constructs. This results often in implementations which are not very modular and hence that are difficult to reuse.
In this paper we introduce Tango a specialized language for implementing source to source tag-driven transformers for object-based languages in a systematic way using several layers of abstraction. Tango operates on a fixed, language independent, object-based metamodel and divides the transformation strategy in several well-defined layers which makes it also possible to reuse lower level parts. Tango uses the so-called inner tags to communicate semantics between different transformer modules in a uniform way.
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
De Volder, K., Murphy, G.C., Bryant, A., Catton, A.: Explicit Programming. In: Proc. of AOSD 2002, pp. 10–18. ACM Press, New York (2002)
Gudgin, M., Skonnard, A.: Essential XML Quick Reference. Addison-Wesley, Reading (2001)
Aßmann, U.: Invasive Software Composition. Springer, Heidelberg (2003)
Batory, D., Cardone, R., Smaragdakis, Y.: Object-Oriented Frameworks and Product Lines. In: Donohoe, P. (ed.) Proceedings of the First Software Product Line Conference, pp. 227–247 (2000)
Biggerstaff, T.J.: A New Control Structure for Transformation-Based Generators. In: Proc. of 6th International Conerence on Software Reuse (2000)
Bloch, C., Wagner, A.: MIDP 2.0 Style Guide for the Java 2 Platform.Micro edn. Addison-Wesley, Reading (2003)
Frankel, D.S.: Model Driven Architecture - Applying MDA to Enterprise Computing. Wiley, Chichester (2003)
Laurent, S.S., Tidwell, D.: XSLT. O’Relly (2001)
DSCT, IBM, CBOP. MOF Query / Views / Transformations. Initial Submition, OMG Document (2003)
Visser, E.: Stratego: A Language for Program Transformations Based on Rewriting Strategies. In: Middeldorp, A. (ed.) RTA 2001. LNCS, vol. 2051, pp. 357–361. Springer, Heidelberg (2001)
Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C., Loingtier, J., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Austermann, M., Kniesel, G., Costanza, P.: JMangler - A Powerful Back-End for Aspect-Oriented Programming. In: Filman, R., Elrad, T., Clarke, S., Aksit, M. (eds.) Aspect-oriented Software Development, Prentice Hall, Englewood Cliffs (2004)
Baxter, D., Pidgeon, C., Mehlich, M.: DMS: Program Transformations For Practical Scalable Software Evolution. In: Proc. of International Workshop on Principles of Software Evolution (2002)
Zderadicka ,I.: CS CODEDOM Parser. csparser.html (2002), http://ivanz.webpark.cz/
Ichisugi, Y.: Extensible Type System Framework for a Java Pre-Processor: EPP. staff.aist.go.jp/y-ichisugi/epp/ (2000)
Playford, K., Bachrach, J.: The Java Syntactic Extender: JSE. In: Proc. of OOPSLA 2001. ACM SIGPLAN Notices, vol.36(11), pp. 31–42 (2001)
Kim, W., Banerjee, J.: Semantics and Implementation of Schema Evolution in Object-Oriented Databases.In: Proc. of ACM SIGMOD International Conference on Management of Data (1987)
Bosch, J.: Design and Use of Software Architectures, Adopting and Evolving a Product-Line Approach. Addison-Wesley, Reading (2002)
Cordy, J.: TXL - A Language for Programming Language Tools and Applications.In: Proc. of 4th Workshop on Language Descriptions, Tools and Applications, LDTA (2004)
Cole, J., Gradecki, J.D.: Mastering Apache Velocity. John Wiley & Sons, Chichester (2003)
Newkirk, J., Vorontsov, A.: How.NET’s Custom Attributes Affect Design. IEEE SOFTWARE 19(5), 18–20 (2002)
van Wijngaarden, J., Visser, E.: Program Transformation Mechanics. A Classification of Mechanisms for Program Transformation with a Survey of Existing Transformation Systems. Technical Report UU-CS-2003-048. Institute of Information and Computing Sciences, Utrecht University (2003)
Helsen, S., Czarnecki, K.: Classification of Model Transformation Approaches.In: Proc. of 2nd OOPSLA Workshop Generative Techniques in the context of MDA (2003)
Abadi, M., Cardelli, L., Matthes, F.: Extensible Syntax with Lexical Scoping. Technical Report 121, Digital Equipment (1994)
van der Brand, M.G.J., Heering, J., Klint, P., Oliver, P.A.: Compiling Language Definitions: The ASF+SDF Compiler. ACM Transactions on Programming Languages and Systems 24(4), 334–368 (2002)
Franczyk, B., Majkut, M.: Generation of Implementations for the Model Driven Architecture with Syntactic Unit Trees.In: Proc. of 2nd OOPSLA Workshop Generative Techniques in the context of MDA (2003)
Voelter, M.: A collection of Patterns for Program Generation.In: Proc. EuroPLoP (2003)
Mens, T.: A Formal Foundation for Object-Oriented Software Evolution. Ph.D Disseration / Vrije University Brussel (1999)
MobCon Homepage (2003), http://www.st.informatik.tu-darmstadt.de/static/pages/projects/mobcon/index.html
Monson-Haefel, R.: Enterprise JavaBeans. Addison-Wesley, Reading (2000)
Harrison, N.: Using the CodeDOM. O’Reilly Network http:// (2003), http://www.ondotnet.com/pub/a/dotnet/2003/02/03/codedom.html
Calnan, P.W.: EXTRACT: Extensible Transformation and Compiler Technology. Master of Science Thesis, Worcester Polytechnic Institute Available (April 2003), http://www.wpi.du/Pubs/ETD/etd-0429103-152947
Pollack, M.: Code Generation using Javadoc. JavaWorld, http:// html (August. 2000), http://www.javaworld.com/javaworld/jw-08-2000/jw-0818-javadoc
Prosise, J.: Programming Microsoft.NET. Microsoft Press (2002)
Suedholt, M., Douence, R., Fradet, P.: Detection and Resolution of Aspect Interactions. In: ACM SIGPLAN/SIGSOFT Proc. of GPCE (2002)
Tango Homepage (2004), http://www.st.informatik.tu-darmstadt.de/static/staff/Cepa/tango/index.html
Cepa, V., Mezini, M.: Language Support for Model-Driven Software Development.To Appear in Aksit, M. (ed.) Special Issue Science of Computer Programming (Elsevier) on MDA: Foundations and Applications Model Driven Architecture (2004)
NET Attribute Dependency Checker Tool Homepage (2003), http://www.st.informatik.tu-darmstadt.de/static/staff/Cepa/tools/adc/index.html
Taha, W., Sheard, T.: Multi-stage Programming. ACM SIGPLAN Notices 32(8) (1997)
JSR 175: A Metadata Facility for the Java Programming Language. http: // (2003), http://www.jcp.org/en/jsr/detail?id=175
xDoxclet Code Generation Engine (2003), http://xdoclet.sourceforge.net/
XML Path Language (XPath) (1999), http://www.w3.org/TR/xpath
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Cepa, V. (2004). Implementing Tag-Driven Transformers with Tango. In: Bosch, J., Krueger, C. (eds) Software Reuse: Methods, Techniques, and Tools. ICSR 2004. Lecture Notes in Computer Science, vol 3107. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-27799-6_25
Download citation
DOI: https://doi.org/10.1007/978-3-540-27799-6_25
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22335-1
Online ISBN: 978-3-540-27799-6
eBook Packages: Springer Book Archive