Skip to main content

Implementing Tag-Driven Transformers with Tango

  • Conference paper
Software Reuse: Methods, Techniques, and Tools (ICSR 2004)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3107))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Google Scholar 

  2. Gudgin, M., Skonnard, A.: Essential XML Quick Reference. Addison-Wesley, Reading (2001)

    Google Scholar 

  3. Aßmann, U.: Invasive Software Composition. Springer, Heidelberg (2003)

    Book  MATH  Google Scholar 

  4. 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)

    Google Scholar 

  5. Biggerstaff, T.J.: A New Control Structure for Transformation-Based Generators. In: Proc. of 6th International Conerence on Software Reuse (2000)

    Google Scholar 

  6. Bloch, C., Wagner, A.: MIDP 2.0 Style Guide for the Java 2 Platform.Micro edn. Addison-Wesley, Reading (2003)

    Google Scholar 

  7. Frankel, D.S.: Model Driven Architecture - Applying MDA to Enterprise Computing. Wiley, Chichester (2003)

    Google Scholar 

  8. Laurent, S.S., Tidwell, D.: XSLT. O’Relly (2001)

    Google Scholar 

  9. DSCT, IBM, CBOP. MOF Query / Views / Transformations. Initial Submition, OMG Document (2003)

    Google Scholar 

  10. 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)

    Chapter  Google Scholar 

  11. 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)

    Chapter  Google Scholar 

  12. 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)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. Zderadicka ,I.: CS CODEDOM Parser. csparser.html (2002), http://ivanz.webpark.cz/

  15. Ichisugi, Y.: Extensible Type System Framework for a Java Pre-Processor: EPP. staff.aist.go.jp/y-ichisugi/epp/ (2000)

    Google Scholar 

  16. Playford, K., Bachrach, J.: The Java Syntactic Extender: JSE. In: Proc. of OOPSLA 2001. ACM SIGPLAN Notices, vol.36(11), pp. 31–42 (2001)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. Bosch, J.: Design and Use of Software Architectures, Adopting and Evolving a Product-Line Approach. Addison-Wesley, Reading (2002)

    Google Scholar 

  19. Cordy, J.: TXL - A Language for Programming Language Tools and Applications.In: Proc. of 4th Workshop on Language Descriptions, Tools and Applications, LDTA (2004)

    Google Scholar 

  20. Cole, J., Gradecki, J.D.: Mastering Apache Velocity. John Wiley & Sons, Chichester (2003)

    Google Scholar 

  21. Newkirk, J., Vorontsov, A.: How.NET’s Custom Attributes Affect Design. IEEE SOFTWARE 19(5), 18–20 (2002)

    Article  Google Scholar 

  22. 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)

    Google Scholar 

  23. Helsen, S., Czarnecki, K.: Classification of Model Transformation Approaches.In: Proc. of 2nd OOPSLA Workshop Generative Techniques in the context of MDA (2003)

    Google Scholar 

  24. Abadi, M., Cardelli, L., Matthes, F.: Extensible Syntax with Lexical Scoping. Technical Report 121, Digital Equipment (1994)

    Google Scholar 

  25. 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)

    Article  Google Scholar 

  26. 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)

    Google Scholar 

  27. Voelter, M.: A collection of Patterns for Program Generation.In: Proc. EuroPLoP (2003)

    Google Scholar 

  28. Mens, T.: A Formal Foundation for Object-Oriented Software Evolution. Ph.D Disseration / Vrije University Brussel (1999)

    Google Scholar 

  29. MobCon Homepage (2003), http://www.st.informatik.tu-darmstadt.de/static/pages/projects/mobcon/index.html

  30. Monson-Haefel, R.: Enterprise JavaBeans. Addison-Wesley, Reading (2000)

    Google Scholar 

  31. Harrison, N.: Using the CodeDOM. O’Reilly Network http:// (2003), http://www.ondotnet.com/pub/a/dotnet/2003/02/03/codedom.html

  32. 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

  33. Pollack, M.: Code Generation using Javadoc. JavaWorld, http:// html (August. 2000), http://www.javaworld.com/javaworld/jw-08-2000/jw-0818-javadoc

  34. Prosise, J.: Programming Microsoft.NET. Microsoft Press (2002)

    Google Scholar 

  35. Suedholt, M., Douence, R., Fradet, P.: Detection and Resolution of Aspect Interactions. In: ACM SIGPLAN/SIGSOFT Proc. of GPCE (2002)

    Google Scholar 

  36. Tango Homepage (2004), http://www.st.informatik.tu-darmstadt.de/static/staff/Cepa/tango/index.html

  37. 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)

    Google Scholar 

  38. NET Attribute Dependency Checker Tool Homepage (2003), http://www.st.informatik.tu-darmstadt.de/static/staff/Cepa/tools/adc/index.html

  39. Taha, W., Sheard, T.: Multi-stage Programming. ACM SIGPLAN Notices 32(8) (1997)

    Google Scholar 

  40. JSR 175: A Metadata Facility for the Java Programming Language. http: // (2003), http://www.jcp.org/en/jsr/detail?id=175

  41. xDoxclet Code Generation Engine (2003), http://xdoclet.sourceforge.net/

  42. XML Path Language (XPath) (1999), http://www.w3.org/TR/xpath

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics