Abstract
Modularisation can reduce the effort in designing and maintaining language specifications. Existing approaches to language modularisation are typically either focused on language syntax or on language semantics. In this paper, we propose a modularisation approach covering both syntax and semantics. We propose defining composition rules on the level of abstract syntax, making it the central artefact in a language module. To enable clean interfaces for such language modules—effectively making them language components—we use role-modelling at the metamodel level.
We discuss how role-based metamodelling supports the aspectual modularisation of language semantics and can also be integrated with concrete syntax specifications to build self-contained language components. We present the implementation of our approach in the LanGems language compositions system and show how it can be used to provide a modularised definition of the Object Constraint Language.
Keywords
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.
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
van Deursen, A., Klint, P., Visser, J.: Domain-Specific Languages: An Annotated Bibliography. SIGPLAN Notices 35(6), 26–36 (2000)
Kelly, S., Tolvanen, J.P.: Domain-Specific Modeling. John Wiley & Sons Inc., Hoboken (2008)
Szyperski, C.: Component Software: Beyond Object-Oriented Programming, 2nd edn. Component Software Series. Addison-Wesley Publishing Company, Reading (2002)
Aßmann, U.: Invasive Software Composition. Springer, New-York (2003)
Heering, J., Hendriks, P.R.H., Klint, P., Rekers, J.: The Syntax Definition Formalism SDF – Reference Manual. SIGPLAN Notices 24(11), 43–75 (1989)
Mernik, M., Lenič, M., Avdičaušević, E., Žumer, V.: The Template and Multiple Inheritance Approach Into Attribute Grammars. In: International Conference on Computer Languages, pp. 102–110 (1998)
Nystrom, N., Clarkson, M.R., Myers, A.C.: Polyglot: An Extensible Compiler Framework for Java. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 138–152. Springer, Heidelberg (2003)
Bravenboer, M., Visser, E.: Parse Table Composition Separate Compilation and Binary Extensibility of Grammars. In: Gašević, D., Lämmel, R., Van Wyk, E. (eds.) SLE 2008. LNCS, vol. 5452, pp. 74–94. Springer, Heidelberg (2009)
Hedin, G., Magnusson, E.: The JastAdd System – An Aspect-Oriented Compiler Construction System. Science of Computer Programming 47, 37–58 (2003)
Van Wyk, E., Bodin, D., Krishnan, L., Gao, J.: Silver: an Extensible Attribute Grammar System. In: 7th Workshop on Language Descriptions, Tools, and Analysis, LDTA 2007 (2007)
Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools, 2nd edn. Addison-Wesley, Reading (2006)
Kleppe, A.: Software Language Engineering. Pearson Education, London (2009)
Greenfield, J., Short, K.: Software Factories: Assembling Applications with Patterns, Frameworks, Models & Tools (2004)
Jouault, F., Bezivin, J.: KM3: a DSL for Metamodel Specification. In: Gorrieri, R., Wehrheim, H. (eds.) FMOODS 2006. LNCS, vol. 4037, pp. 171–185. Springer, Heidelberg (2006)
OMG: MOF 2.0 core specification. OMG Document (January 2006), http://www.omg.org/spec/MOF/2.0
Ledeczi, A., Maroti, M., Bakay, A., Karsai, G., Garrett, J., Thomason, C., Nordstrom, G., Sprinkle, J., Volgyesi, P.: The Generic Modeling Environment. In: Workshop on Intelligent Signal Processing, Budapest, Hungary, vol. 17 (2001)
Amelunxen, C., Königs, A., Rötschke, T., Schürr, A.: MOFLON: A Standard-Compliant Metamodeling Framework with Graph Transformations. In: Rensink, A., Warmer, J. (eds.) ECMDA-FA 2006. LNCS, vol. 4066, pp. 361–375. Springer, Heidelberg (2006)
MetaCase: MetaEdit+ - Workbench Users Guide. Online User’s Guide (2009), http://www.metacase.com/support/45/manuals/mwb/Mw.html
Bracha, G., Lindstrom, G.: Modularity Meets Inheritance. In: International Conference on Computer Languages, pp. 282–290. IEEE Computer Society, Los Alamitos (1992)
Taivalsaari, A.: On the Notion of Inheritance. ACM Computing Surveys 28(3), 438–479 (1996)
Reenskaug, T.: Working with objects. The OOram Software Engineering Method. Manning/Prentice Hall (1996)
Steimann, F.: On the Representation of Roles in Object-Oriented and Conceptual Modelling. Data Knowledge Engineering 35(1), 83–106 (2000)
Andersen, E.P.: Conceptual Modeling of Objects: A Role Modeling Approach. Ph.D. Thesis. Oslo, Norway, University of Oslo (1997)
Paton, N.W. (ed.): Active Rules in Database Systems. Springer, New York (1999)
Budinsky, F., Brodsky, S.A., Merks, E.: Eclipse Modeling Framework. Pearson Education, London (2003)
Heidenreich, F., Johannes, J., Karol, S., Seifert, M., Wende, C.: Derivation and Refinement of Textual Syntax for Models. In: Paige, R.F., Hartman, A., Rensink, A. (eds.) ECMDA-FA 2009. LNCS, vol. 5562, pp. 114–129. Springer, Heidelberg (2009)
Salomon, D., Cormack, G.: Scannerless NSLR (1) parsing of programming languages. In: Proceedings of the SIGPLAN 1987 symposium on Interpreters and interpretive techniques, vol. 24(7), pp. 170–178 (1989)
Visser, E.: Scannerless Generalized-LR Parsing. Technical Report, Programming Research Group, University of Amsterdam, P9707 (July 1997)
van den Brand, M., Scheerder, J., Vinju, J., Visser, E.: Disambiguation Filters for Scannerless Generalized LR Parsers. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol. 2304, p. 143. Springer, Heidelberg (2002)
Clark, T., Sammut, P., Willans, J.: Applied Metamodelling a Foundation for Language Driven Development, 2nd edn. Ceteva (2008), http://www.ceteva.com/book.html
Winskel, G.: Formal Semantics of Programming Languages. MIT Press, Cambridge (1993)
Knuth, D.E.: Semantics of context-free languages. Mathematical Systems Theory 5(1) (1971)
Ekman, T., Hedin, G.: The JastAdd extensible Java compiler. SIGPLAN Not. 42(10) (2007)
Van Wyk, E., Krishnan, L., Bodin, D., Schwerdfeger, A.: Attribute Grammar-based Language Extensions for Java. In: Ernst, E. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 575–599. Springer, Heidelberg (2007)
Kastens, U., Waite, W.: Modularity and Reusability in Attribute Grammars. Acta Informatica 31(7), 601–627 (1994)
Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, A.: Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report CMU/SEI-90-TR-0211990, Software Engineering Institute (1990)
Object Management Group: UML 2.0 OCL specification. Object Management Group Available Specification, formal/06-05-01 (May 2006), http://www.omg.org/spec/OCL/2.0/PDF/
Akehurst, D., Zschaler, S., Howells, G.: OCL: Modularising the language. In: Ocl4All: Workshop at MoDELS 2007, Electronic Communications of the EASST, vol. 9 (2008)
Thieme, N.: Modulare Redefinition von OCL. Diplomarbeit, Technische Universität Dresden, Germany (2008) (in German)
Moreau, P., 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)
Krahn, H., Rumpe, B., Völkel, S.: MontiCore: Modular Development of Textual Domain Specific Languages. In: 46th International Conference on Objects, Models, Components, Patterns, TOOLS-Europe (2008)
Van Wyk, E., Schwerdfeger, A.C.: Context-aware scanning for parsing extensible languages. In: 6th International Conference on Generative Programming and Component Engineering (GPCE 2007), pp. 63–72. ACM, New York (2007)
Clark, C.: Newlines and Lexer States. SIGPLAN Notices 35(4), 18–24 (2000)
Bosch, J.: Delegating Compiler Objects: Modularity and Reusability in Language Engineering. Nordic J. of Computing 4(1), 66–92 (1997)
Ford, B.: Parsing Expression Grammars: A Recognition-based Syntactic Foundation. In: 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2004), pp. 111–122. ACM, New York (2004)
Grimm, R.: Better Extensibility through Modular Syntax. In: 2006 ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI 2006), pp. 38–51. ACM, New York (2006)
Lämmel, R., Riedewald, G.: Reconstruction of paradigm shifts, INRIA (1999) ISBN 2-7261-1138-6
Lämmel, R.: Declarative aspect-oriented programming, pp. 131–146 (1999)
Cazzola, W., Speziale, I.: Sectional Domain Specific Languages. In: Workshop on Domain-Specific Aspect Languages (DSAL 2009), co-located with AOSD 2009, pp. 11–14 (2009)
White, J., Schmidt, D.C., Mulligan, S.: The Generic Eclipse Modeling System. In: Model-Driven Development Tool Implementer’s Forum, TOOLS 2007 (2007)
Jetbrains: MPS - Meta Programming System. MPS Website (2009), http://www.jetbrains.com/mps/index.html
Atkinson, C., Kühne, T.: The Essence of Multilevel Metamodeling. In: Gogolla, M., Kobryn, C. (eds.) UML 2001. LNCS, vol. 2185, pp. 19–33. Springer, Heidelberg (2001)
Völter, M.: A Family of Languages for Architecture Description. In: Proceedings of the 8th Workshop on Domain-Specific Modeling (2008)
Rose, L.M., Paige, R.F., Kolovos, D.S., Polack, F.: The Epsilon Generation Language. In: Proceedings of the 4th European Conference on Model Driven Architecture - Foundations and Applications, pp. 1–16 (2008)
Wende, C., Heidenreich, F.: A Model-based Product-Line for Scalable Ontology Languages. In: Proceedings of the 1st International Workshop on Model-Driven Product Line Engineering (2009)
Zschaler, S., Kolovos, D., Drivalos, N., Paige, R., Rashid, A.: Domain-Specific Metamodelling Languages for Software Language Engineering. In: 2nd Int’l Conf. on Software Language Engineering, SLE (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Wende, C., Thieme, N., Zschaler, S. (2010). A Role-Based Approach towards Modular Language Engineering. In: van den Brand, M., Gašević, D., Gray, J. (eds) Software Language Engineering. SLE 2009. Lecture Notes in Computer Science, vol 5969. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-12107-4_19
Download citation
DOI: https://doi.org/10.1007/978-3-642-12107-4_19
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-12106-7
Online ISBN: 978-3-642-12107-4
eBook Packages: Computer ScienceComputer Science (R0)