Syntactic analysis lies at the heart of many transformation tools. Grammars are used to provide a structure to guide the application of transformations. Agile parsing is a technique in which grammars are adapted on a transformation by transformation basis to simplify transformation tasks. This paper gives an overview of agile parsing techniques, and how they may be applied to Web Applications. We give examples from several transformations that have been used in the Web application domain.


Parse Tree Clone Detection Transformation Tool Interesting Element Clone Candidate 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Badros, G.: JavaML: a Markup Language for Java source code. Computer Networks 33(6), 159–177 (2000)CrossRefGoogle Scholar
  2. 2.
    Canada, B.: Datrix Abstract Semantic Graph: Reference Manual, version 1.4, Bell Canada Inc., Montreal Canada, May 01 (2000)Google Scholar
  3. 3.
    van den Brand, M., van Deursen, A., Heering, J., de Jong, H., de Jonge, M., Kuipers, T., Klint, P., Moonen, L., Olivier, P., Scheerder, J., Vinju, J., Visser, C., Visser, J.: The ASF+SDF Meta-Environment: a component-based language development environment. In: Wilhelm, R. (ed.) CC 2001. LNCS, vol. 2027, pp. 365–370. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  4. 4.
    van den Brand, M., Heering, J., Klint, P., Olivier, P.: Compiling Rewrite Systems: The ASF+SDF Compiler. ACM Transactions on Programming Languages and Systems 24(4), 334–368 (2002)CrossRefGoogle Scholar
  5. 5.
    van Deursen, A., Kuipers, T.: Building Documentation Generators. In: Proc. International Conference on Software Maintenance (ICSM 1999), Oxford, England, pp. 40–49 (1999)Google Scholar
  6. 6.
    Baxter, I.D., Pidgeon, C.W.: Software Change Through Design Maintenance. In: Proc. 1997 International Conference on Software Maintenance, Bari, Italy, pp. 250–259 (1997)Google Scholar
  7. 7.
    Cordy, J.R., Halpern, C.D., Promislow, E.: TXL: A Rapid Prototyping System for Programming Language Dialects. Computer Languages 16(1), 97–107 (1991)CrossRefGoogle Scholar
  8. 8.
    Cordy, J.R.: TXL - A Language for Programming Language Tools and Applications. In: Proc. LDTA 2004, ACM 4th International Workshop on Language Descriptions, Tools and Applications, Edinburg, Scotland, pp. 3–31 (January 2005)Google Scholar
  9. 9.
    Cordy, J.R., Schneider, K., Dean, T., Malton, A.: HSML: Design Directed Source Code Hot Spots. In: Proc. 9th International Workshop on Program Comprehension (IWPC 2001), Toronto, Canada, pp. 145–154 (2001)Google Scholar
  10. 10.
    Cordy, J., Dean, T., Malton, A., Schneider, K.: Source Transformation in Software Engineering using the TXL Transformation System. Special Issue on Source Code Analysis and Manipulation, Journal of Information and Software Technology 44(13), 827–837 (2002)Google Scholar
  11. 11.
    Cordy, J.R., Dean, T., Synytskyy, N.: Practical Language-Independent Detection of Near-Miss Clones. In: Proc. 14th IBM Center for Advanced Studies Conference, Toronto, Canada, pp. 29–40 (October 2004)Google Scholar
  12. 12.
    Dean, T., Cordy, J., Schneider, K., Malton, A.: Experience Using Design Recovery Techniques to Transform Legacy Systems. In: Proc. International Conference on Software Maintenance (ICSM 2001), Florence, Italy, pp. 622–631 (2001)Google Scholar
  13. 13.
    Dean, T.R., Cordy, J.R., Malton, A.J., Schneider, K.A.: Agile Parsing in TXL. Journal of Automated Software Engineering 10(4), 311–336 (2003)CrossRefGoogle Scholar
  14. 14.
    Guo, X., Cordy, J., Dean, T.: Unique Renaming in Java. In: 3rd International Workshop on Source Code Analysis and Manipulation, Amsterdam, Netherlands (September 2003)Google Scholar
  15. 15.
    Hassan, A.E., Holt, R.C.: Migrating Web Frameworks Using Water Transformations. In: Proceedings of COMPSAC 2003: International Computer Software and Application Conference, Dallas, Texas, USA, pp. 296–303 (November 2003)Google Scholar
  16. 16.
    Li, X.: Defining and Visualizing Web Application Slices, M.Sc. Thesis, School of Computing, Queen’s University (2004)Google Scholar
  17. 17.
    Malton, A.J., Schneider, K.A., Cordy, J.R., Dean, T.R., Cousineau, D., Reynolds, J.: Processing Software Source Text in Automated Design Recovery and Transformation. In: Proc. 9th International Workshop on Program Comprehension (IWPC 2001), Toronto, Canada, pp. 127–134 (2001)Google Scholar
  18. 18.
    Moonen, L.: Generating Robust Parsers using Island Grammars. In: Proc. 8th Working Conference on Reverse Engineering (WCRE 2001), Stuttgart, Germany, pp. 13–22 (2001)Google Scholar
  19. 19.
    Moonen, L.: Lightweight Impact using Island Grammars. In: Proceedings 10th International Workshop on Program Comprehension (IWPC 2002), Paris, France, pp. 343–352 (2002)Google Scholar
  20. 20.
    Neighbors, J.: The Draco Approach to Constructing Software from Reusable Components. IEEE Transactions on Software Engineering 10(5), 564–574 (1984)CrossRefGoogle Scholar
  21. 21.
    Reasoning Systems, Refine User’s Manual, Palo Alto, California (1992)Google Scholar
  22. 22.
    Synytskyy, N., Cordy, J.R., Dean, T.: Resolution of Static Clones in Dynamic Web Pages. In: Proc. IEEE 5th International Workshop on Web Site Evolution, Amsterdam, pp. 49–58 (September 2003)Google Scholar
  23. 23.
    Synytskyy, Mykyta, Cordy, J., Dean, T.: Robust Multilingual Parsing Using Island Grammars. In: Proc. IBM Center for Advanced Studies Conference, Toronto, Canada (November 2003) Google Scholar
  24. 24.
    Tennent, A.: Semantics of Programming Langauges. Prentice Hall, Englewood Cliffs (1990)Google Scholar
  25. 25.
    Visser, E.: Stratego: A Language for Program Transformation Based on Rewriting Strategies. System description of Stratego 0.5. In: Middeldorp, A. (ed.) RTA 2001. LNCS, vol. 2051, pp. 357–361. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  26. 26.
    Xu, S., Dean, T.: Transforming Embedded Java Code into Custom Tags. In: Proc. 5th International Worshop on Source Code Analysis and Manipulation, Budapest, Hungary, pp. 173–182 (October 2005)Google Scholar
  27. 27.
    Xu, S.: Modernizing Java ServerPages by Transformation, M.Sc. Thesis, School of Computing, Queen’s Univeristy (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Thomas Dean
    • 1
  • Mykyta Synytskyy
    • 2
  1. 1.Electrical and Computer EngineeringQueen’s University 

Personalised recommendations