Abstract
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.
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
Badros, G.: JavaML: a Markup Language for Java source code. Computer Networks 33(6), 159–177 (2000)
Canada, B.: Datrix Abstract Semantic Graph: Reference Manual, version 1.4, Bell Canada Inc., Montreal Canada, May 01 (2000)
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)
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)
van Deursen, A., Kuipers, T.: Building Documentation Generators. In: Proc. International Conference on Software Maintenance (ICSM 1999), Oxford, England, pp. 40–49 (1999)
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)
Cordy, J.R., Halpern, C.D., Promislow, E.: TXL: A Rapid Prototyping System for Programming Language Dialects. Computer Languages 16(1), 97–107 (1991)
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)
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)
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)
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)
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)
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)
Guo, X., Cordy, J., Dean, T.: Unique Renaming in Java. In: 3rd International Workshop on Source Code Analysis and Manipulation, Amsterdam, Netherlands (September 2003)
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)
Li, X.: Defining and Visualizing Web Application Slices, M.Sc. Thesis, School of Computing, Queen’s University (2004)
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)
Moonen, L.: Generating Robust Parsers using Island Grammars. In: Proc. 8th Working Conference on Reverse Engineering (WCRE 2001), Stuttgart, Germany, pp. 13–22 (2001)
Moonen, L.: Lightweight Impact using Island Grammars. In: Proceedings 10th International Workshop on Program Comprehension (IWPC 2002), Paris, France, pp. 343–352 (2002)
Neighbors, J.: The Draco Approach to Constructing Software from Reusable Components. IEEE Transactions on Software Engineering 10(5), 564–574 (1984)
Reasoning Systems, Refine User’s Manual, Palo Alto, California (1992)
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)
Synytskyy, Mykyta, Cordy, J., Dean, T.: Robust Multilingual Parsing Using Island Grammars. In: Proc. IBM Center for Advanced Studies Conference, Toronto, Canada (November 2003)
Tennent, A.: Semantics of Programming Langauges. Prentice Hall, Englewood Cliffs (1990)
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)
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)
Xu, S.: Modernizing Java ServerPages by Transformation, M.Sc. Thesis, School of Computing, Queen’s Univeristy (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Dean, T., Synytskyy, M. (2006). Agile Parsing to Transform Web Applications. In: Lämmel, R., Saraiva, J., Visser, J. (eds) Generative and Transformational Techniques in Software Engineering. GTTSE 2005. Lecture Notes in Computer Science, vol 4143. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11877028_11
Download citation
DOI: https://doi.org/10.1007/11877028_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-45778-7
Online ISBN: 978-3-540-46235-4
eBook Packages: Computer ScienceComputer Science (R0)