Generic language technology research focuses on the development of fundamental techniques for language processing. The Asf+Sdf Meta-Environment, an interactive development environment for the automatic generation of interactive systems, is an example of research in this field. The Meta-Environment has been applied in various projects in order to enable the development of high quality tools for the analysis and transformation of large software systems written in languages such as C, Java, Cobol, and PL/I. The Meta-Environment offers the interactive construction of language definitions and the generation of tools given these definitions. Over the years, this system has been used in a variety of academic and industrial projects ranging from formal program manipulation to conversion of industrial Cobol systems.


Parse Tree Program Transformation Concrete Syntax Attribute Grammar Abstract Syntax Tree 
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.
    Alblas, H.: Introduction to attribute grammars. In: Alblas, H., Melichar, B. (eds.) SAGA School 1991. LNCS, vol. 545, pp. 1–15. Springer, Heidelberg (1991)Google Scholar
  2. 2.
    Baxter, I.D., Pidgeon, C., Mehlich, M.: DMS: Program transformations for practical scalable software evolution. In: ICSE 2004: Proceedings of the 26th International Conference on Software Engineering, pp. 625–634. IEEE Computer Society Press, Washington (2004)CrossRefGoogle Scholar
  3. 3.
    van Beek, D.A., Man, K.L., Reniers, M.A., Rooda, J.E., Schiffelers, R.R.H.: Syntax and consistent equation semantics of hybrid Chi. Journal of Logic and Algebraic Programming (to appear, 2005)Google Scholar
  4. 4.
    Bergstra, J.A., Heering, J., Klint, P. (eds.): Algebraic Specification. ACM Press/Addison-Wesley (1989)Google Scholar
  5. 5.
    Bergstra, J.A., Klint, P.: The discrete time ToolBus – a software coordination architecture. Science of Computer Programming 31(2-3), 205–229 (1998)MATHCrossRefGoogle Scholar
  6. 6.
    Borovanský, P., Kirchner, C., Kirchner, H., Moreau, P.-E., Ringeissen, C.: An overview of ELAN. In: Kirchner, C., Kirchner, H. (eds.) WRLA. ENTCS, vol. 15. Elsevier Sciences, Amsterdam (1998)Google Scholar
  7. 7.
    van den Brand, M.G.J., van Deursen, A., Heering, J., de Jong, H.A., de Jonge, M., Kuipers, T., Klint, P., Moonen, L., Olivier, P.A., Scheerder, J., Vinju, J.J., Visser, E., 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
  8. 8.
    van den Brand, M.G.J., van Deursen, A., Klint, P., Klusener, S., van den Meulen, E.A.: Industrial applications of ASF+SDF. In: Nivat, M., Wirsing, M. (eds.) AMAST 1996. LNCS, vol. 1101. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  9. 9.
    van den Brand, M.G.J., Heering, J., Klint, P., Olivier, P.A.: Compiling language definitions: The ASF+SDF compiler. ACM Transactions on Programming Languages and Systems 24(4), 334–368 (2002)CrossRefGoogle Scholar
  10. 10.
    van den Brand, M.G.J., Iversen, J., Mosses, P.D.: An action environment. Science of Computer Programming (to appear, 2005)Google Scholar
  11. 11.
    van den Brand, M.G.J., de Jong, H.A., Klint, P., Olivier, P.: Efficient annotated terms. Software, Practice & Experience 30, 259–291 (2000)CrossRefGoogle Scholar
  12. 12.
    van den Brand, M.G.J., Klint, P., Vinju, J.J.: Term rewriting with traversal functions. ACM Transactions on Software Engineering and Methodology 12(2), 152–190 (2003)CrossRefGoogle Scholar
  13. 13.
    van den Brand, M.G.J., Kooiker, A.T., Veerman, N.P., Vinju, J.J.: An industrial application of context-sensitive formatting. Technical Report SEN-R0510, Centrum voor Wiskunde en Informatica (CWI), Amsterdam (2005)Google Scholar
  14. 14.
    van den Brand, M.G.J., Moreau, P.-E., Vinju, J.J.: A generator of efficient strongly typed abstract syntax trees in java. IEEE Proceedings — Software 152(2), 70–79 (2005)CrossRefGoogle Scholar
  15. 15.
    van den Brand, M.G.J., Scheerder, J.: Development of parsing tools for CASL using generic language technology. In: Bert, D., Choppy, C., Mosses, P.D. (eds.) WADT 1999. LNCS, vol. 1827, pp. 89–105. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  16. 16.
    van den Brand, M.G.J., Scheerder, J., Vinju, J.J., Visser, E.: Disambiguation filters for scannerless generalized LR parsers. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol. 2304, pp. 143–158. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  17. 17.
    van den Brand, M.G.J., Sellink, M.P.A., Verhoef, C.: Generation of components for software renovation factories from context-free grammars. Science of Computer Programming 36, 209–266 (2000)CrossRefGoogle Scholar
  18. 18.
    van den Brand, M.G.J., Visser, E.: Generation of formatters for context-free languages. ACM Transactions on Software Engineering and Methodology 5, 1–41 (1996)CrossRefGoogle Scholar
  19. 19.
    Cleve, A., Henrard, J., Hainaut, J.-L.: Co-transformations in information system reengineering. In: Second International Workshop on Meta-Models, Schemas and Grammars for Reverse Engineering (ATEM 2004). ENTCS, vol. 137(3), pp. 5–15 (2004)Google Scholar
  20. 20.
    Cordy, J.R.: TXL — a language for programming language tools and applications. In: Hedin, G., van Wyk, E. (eds.) 4th International Workshop on Language Descriptions, Tools and Applications (LDTA 2004). Electronic Notes in Theoretical Computer Science, pp. 1–27. Elsevier, Amsterdam (2004)Google Scholar
  21. 21.
    de Jonge, M., Visser, E., Visser, J.: XT: A bundle of program transformation tools. In: van den Brand, M.G.J., Parigot, D. (eds.) Workshop on Language Descriptions, Tools and Applications (LDTA 2001). Electronic Notes in Theoretical Computer Science, vol. 44. Elsevier Science Publishers, Amsterdam (2001)Google Scholar
  22. 22.
    van Deursen, A., Heering, J., Klint, P. (eds.): Language Prototyping: An Algebraic Specification Approach. AMAST Series in Computing, vol. 5. World Scientific, Singapore (1996)MATHGoogle Scholar
  23. 23.
    Doh, K.-G., Mosses, P.D.: Composing programming languages by combining action-semantics modules. Science of Computer Programming 47, 3–36 (2003)MATHCrossRefGoogle Scholar
  24. 24.
    Groote, J.F., Ponse, A.: The syntax and semantics of μCRL. In: Ponse, A., Verhoef, C., van Vlijmen, S.F.M. (eds.) Algebra of Communicating Processes 1994. Workshops in Computing Series, pp. 26–62. Springer, Heidelberg (1995)Google Scholar
  25. 25.
    Heering, J., Hendriks, P.R.H., Klint, P., Rekers, J.: The syntax definition formalism SDF: Reference manual. SIGPLAN Notices 24(11), 43–75 (1989)CrossRefGoogle Scholar
  26. 26.
    Iversen, J., Mosses, P.D.: Constructive action semantics for Core ML. IEE Proceedings — Software 152(2), 79–98 (2005)CrossRefGoogle Scholar
  27. 27.
    Johnson, S.C.: YACC—yet another compiler-compiler. Technical Report CS-32, AT&T Bell Laboratories, Murray Hill, N.J (1975)Google Scholar
  28. 28.
    de Jong, H.A., Olivier, P.A.: Generation of abstract programming interfaces from syntax definitions. Journal of Logic and Algebraic Programming 59 (April 2004)Google Scholar
  29. 29.
    Klint, P.: A meta-environment for generating programming environments. ACM Transactions on Software Engineering and Methodology 2, 176–201 (1993)CrossRefGoogle Scholar
  30. 30.
    Klint, P.: A Tutorial Introduction to RScript — a Relational Approach to Software Analysis (2005),
  31. 31.
    Lamport, L.: Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley Longman Publishing Co., Inc., Boston (2002)Google Scholar
  32. 32.
    Lesk, M.E., Schmidt, E.: LEX — A lexical analyzer generator. Technical Report CS-39, AT&T Bell Laboratories, Murray Hill, N.J (1975)Google Scholar
  33. 33.
    Moreau, P.-E., Ringeissen, C., Vittek, M.: A pattern matching compiler for multiple target languages. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 61–76. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  34. 34.
    Mosses, P.D.: Action Semantics. Cambridge Tracts in Theoretical Computer Science, vol. 26. Cambridge University Press, Cambridge (1992)MATHCrossRefGoogle Scholar
  35. 35.
    Olmos, K., Visser, E.: Composing source-to-source data-flow transformations with rewriting strategies and dependent dynamic rewrite rules. In: Bodik, R. (ed.) CC 2005. LNCS, vol. 3443, pp. 204–220. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  36. 36.
    Reps, T., Teitelbaum, T.: The Synthesizer Generator: A System for Constructing Language-Based Editors, 3rd edn. Springer, Heidelberg (1989)MATHGoogle Scholar
  37. 37.
    van Deursen, A.: An Algebraic Specification of the Static Semantics of Pascal. In: van Leeuwen, J. (ed.) Conference Proceedings Computing Science in the Netherlands (CSN 1991), pp. 150–164 (1991)Google Scholar
  38. 38.
    Veerman, N.: Revitalizing modifiability of legacy assets. Software Maintenance and Evolution: Research and Practice, Special issue on CSMR 2003 16(4–5), 219–254 (2004)CrossRefGoogle Scholar
  39. 39.
    Visser, E.: Syntax Definition for Language Prototyping. PhD thesis, University of Amsterdam (1997),
  40. 40.
    Visser, E.: Stratego: A language for program transformation based on rewriting strategies. In: Middeldorp, A. (ed.) RTA 2001. LNCS, vol. 2051, pp. 357–361. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  41. 41.
    Visser, E., Benaissa, Z., Tolmach, A.: Building program optimizers with rewriting strategies. In: International Conference on Functional Programming (ICFP 1998), pp. 13–26 (1998)Google Scholar
  42. 42.
    Waddington, D.G., Yao, B.: High-fidelity C/C++ code transformation. In: Boyland, J., Hedin, G. (eds.) Fifth Workshop on Language Descriptions, Tools and Applications, pp. 6–26 (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • M. G. J. van den Brand
    • 1
  1. 1.Department of Mathematics and Computer ScienceTechnical University EindhovenEindhovenThe Netherlands

Personalised recommendations