{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,9,15]],"date-time":"2024-09-15T17:59:29Z","timestamp":1726423169725},"reference-count":50,"publisher":"Elsevier BV","license":[{"start":{"date-parts":[[2021,11,1]],"date-time":"2021-11-01T00:00:00Z","timestamp":1635724800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"},{"start":{"date-parts":[[2021,11,1]],"date-time":"2021-11-01T00:00:00Z","timestamp":1635724800000},"content-version":"stm-asf","delay-in-days":0,"URL":"https:\/\/doi.org\/10.15223\/policy-017"},{"start":{"date-parts":[[2021,11,1]],"date-time":"2021-11-01T00:00:00Z","timestamp":1635724800000},"content-version":"stm-asf","delay-in-days":0,"URL":"https:\/\/doi.org\/10.15223\/policy-037"},{"start":{"date-parts":[[2021,11,1]],"date-time":"2021-11-01T00:00:00Z","timestamp":1635724800000},"content-version":"stm-asf","delay-in-days":0,"URL":"https:\/\/doi.org\/10.15223\/policy-012"},{"start":{"date-parts":[[2021,11,1]],"date-time":"2021-11-01T00:00:00Z","timestamp":1635724800000},"content-version":"stm-asf","delay-in-days":0,"URL":"https:\/\/doi.org\/10.15223\/policy-029"},{"start":{"date-parts":[[2021,11,1]],"date-time":"2021-11-01T00:00:00Z","timestamp":1635724800000},"content-version":"stm-asf","delay-in-days":0,"URL":"https:\/\/doi.org\/10.15223\/policy-004"}],"content-domain":{"domain":["elsevier.com","sciencedirect.com"],"crossmark-restriction":true},"short-container-title":["Science of Computer Programming"],"published-print":{"date-parts":[[2021,11]]},"DOI":"10.1016\/j.scico.2021.102703","type":"journal-article","created":{"date-parts":[[2021,7,21]],"date-time":"2021-07-21T17:55:19Z","timestamp":1626890119000},"page":"102703","update-policy":"http:\/\/dx.doi.org\/10.1016\/elsevier_cm_policy","source":"Crossref","is-referenced-by-count":0,"special_numbering":"C","title":["PAMOJA: A component framework for grammar-aware engineering"],"prefix":"10.1016","volume":"211","author":[{"ORCID":"http:\/\/orcid.org\/0000-0001-7733-3602","authenticated-orcid":false,"given":"Jackline","family":"Ssanyu","sequence":"first","affiliation":[]},{"ORCID":"http:\/\/orcid.org\/0000-0002-3304-4144","authenticated-orcid":false,"given":"Engineer","family":"Bainomugisha","sequence":"additional","affiliation":[]},{"ORCID":"http:\/\/orcid.org\/0000-0002-9056-3696","authenticated-orcid":false,"given":"Benjamin","family":"Kanagwa","sequence":"additional","affiliation":[]}],"member":"78","reference":[{"author":"Poll","key":"10.1016\/j.scico.2021.102703_br0010"},{"issue":"3","key":"10.1016\/j.scico.2021.102703_br0030","doi-asserted-by":"crossref","first-page":"331","DOI":"10.1145\/1072997.1073000","article-title":"Toward an engineering discipline for grammarware","volume":"14","author":"Klint","year":"2005","journal-title":"ACM Trans. Softw. Eng. Methodol."},{"year":"2002","series-title":"Component Software: Beyond Object-Oriented Programming","author":"Szyperski","key":"10.1016\/j.scico.2021.102703_br0040"},{"author":"Foundation","key":"10.1016\/j.scico.2021.102703_br0060"},{"author":"Brains","key":"10.1016\/j.scico.2021.102703_br0070"},{"author":"StatBeans","key":"10.1016\/j.scico.2021.102703_br0090"},{"issue":"5","key":"10.1016\/j.scico.2021.102703_br0100","doi-asserted-by":"crossref","first-page":"539","DOI":"10.1016\/S0167-739X(00)00038-8","article-title":"Concepts and architecture of a simulation framework based on the JavaBeans component model","volume":"17","author":"Praehofer","year":"2001","journal-title":"Future Gener. Comput. Syst."},{"key":"10.1016\/j.scico.2021.102703_br0110","series-title":"Proceedings of the 7th USENIX Security Symposium","first-page":"107","article-title":"A JavaBeans component architecture for cryptographic protocols","author":"Nikander","year":"1998"},{"key":"10.1016\/j.scico.2021.102703_br0120","series-title":"Proceedings of the 12th International Workshop on Computer Science and Information Technologies","article-title":"3D modeling by means of JavaBeans","author":"Grinkrug","year":"2010"},{"issue":"1","key":"10.1016\/j.scico.2021.102703_br0130","first-page":"16","article-title":"Component-based LR parsing","volume":"36","author":"Wu","year":"2010","journal-title":"Comput. Lang. Syst. Struct."},{"key":"10.1016\/j.scico.2021.102703_br0140","first-page":"1","article-title":"Neverlang: a framework for feature-oriented language development","volume":"43","author":"Vacchi","year":"2015","journal-title":"Comput. Lang. Syst. Struct."},{"key":"10.1016\/j.scico.2021.102703_br0150","series-title":"Generative Programming and Component Engineering","first-page":"245","article-title":"Component-based DSL development","author":"Cleenewerck","year":"2003"},{"key":"10.1016\/j.scico.2021.102703_br0160","doi-asserted-by":"crossref","first-page":"50","DOI":"10.1016\/j.jss.2019.02.026","article-title":"Systematic composition of independent language features","volume":"152","author":"Butting","year":"2019","journal-title":"J. Syst. Softw."},{"key":"10.1016\/j.scico.2021.102703_br0170","doi-asserted-by":"crossref","first-page":"184","DOI":"10.1016\/j.jlamp.2018.12.004","article-title":"Executable component-based semantics","volume":"103","author":"Van Binsbergen","year":"2019","journal-title":"J. Log. Algebraic Methods Program."},{"author":"L\u00f6berbauer","key":"10.1016\/j.scico.2021.102703_br0200"},{"issue":"1\u20132","key":"10.1016\/j.scico.2021.102703_br0210","doi-asserted-by":"crossref","first-page":"39","DOI":"10.1016\/j.scico.2009.07.004","article-title":"An extensible Attribute Grammar system","volume":"75","author":"Van Wyk","year":"2010","journal-title":"Sci. Comput. Program."},{"key":"10.1016\/j.scico.2021.102703_br0220","series-title":"Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications","first-page":"444","article-title":"The Spoofax Language Workbench: rules for declarative specification of languages and IDEs","volume":"vol. 45","author":"Kats","year":"2010"},{"key":"10.1016\/j.scico.2021.102703_br0230","doi-asserted-by":"crossref","first-page":"7","DOI":"10.1016\/j.scico.2015.11.003","article-title":"Modular language implementation in Rascal \u2014 experience report","volume":"114","author":"Basten","year":"2015","journal-title":"Sci. Comput. Program."},{"year":"2016","series-title":"Implementing Domain-Specific Languages with Xtext and Xtend","author":"Bettini","key":"10.1016\/j.scico.2021.102703_br0240"},{"author":"Wirth","key":"10.1016\/j.scico.2021.102703_br0250"},{"key":"10.1016\/j.scico.2021.102703_br0260","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1016\/j.scico.2015.10.015","article-title":"Introduction to the LDTA tool challenge","volume":"114","author":"van den Brand","year":"2015","journal-title":"Sci. Comput. Program."},{"year":"1992","series-title":"Lex & Yacc","author":"Levine","key":"10.1016\/j.scico.2021.102703_br0270"},{"issue":"2","key":"10.1016\/j.scico.2021.102703_br0290","doi-asserted-by":"crossref","first-page":"54","DOI":"10.1049\/ip-sen:20041317","article-title":"Automatic generation of language-based tools using the LISA system","volume":"152","author":"Henriques","year":"2005","journal-title":"IEE Proc., Softw."},{"issue":"2","key":"10.1016\/j.scico.2021.102703_br0300","doi-asserted-by":"crossref","first-page":"3","DOI":"10.1016\/S1571-0661(04)80917-4","article-title":"The ASF+SDF meta-environment: a component-based language development environment","volume":"44","author":"van den Brand","year":"2001","journal-title":"Electron. Notes Theor. Comput. Sci."},{"key":"10.1016\/j.scico.2021.102703_br0310","series-title":"Coordination Languages and Models","first-page":"75","article-title":"The ToolBus coordination architecture","author":"Bergstra","year":"1996"},{"issue":"2","key":"10.1016\/j.scico.2021.102703_br0320","doi-asserted-by":"crossref","first-page":"176","DOI":"10.1145\/151257.151260","article-title":"A meta-environment for generating programming environments","volume":"2","author":"Klint","year":"1993","journal-title":"ACM Trans. Softw. Eng. Methodol."},{"year":"1995","series-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"Gamma","key":"10.1016\/j.scico.2021.102703_br0330"},{"key":"10.1016\/j.scico.2021.102703_br0340","series-title":"Generative and Transformational Techniques in Software Engineering III: International Summer School","first-page":"408","article-title":"Lightweight language processing in Kiama","author":"Sloane","year":"2011"},{"key":"10.1016\/j.scico.2021.102703_br0350","doi-asserted-by":"crossref","first-page":"20","DOI":"10.1016\/j.scico.2015.10.010","article-title":"Oberon-0 in Kiama","volume":"114","author":"Sloane","year":"2015","journal-title":"Sci. Comput. Program."},{"key":"10.1016\/j.scico.2021.102703_br0360","series-title":"Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications","first-page":"1","article-title":"Building semantic editors using JastAdd: tool demonstration","author":"S\u00f6derberg","year":"2011"},{"key":"10.1016\/j.scico.2021.102703_br0370","series-title":"Generative and Transformational Techniques in Software Engineering III: International Summer School","first-page":"166","article-title":"An introductory tutorial on JastAdd Attribute Grammars","author":"Hedin","year":"2011"},{"key":"10.1016\/j.scico.2021.102703_br0380","doi-asserted-by":"crossref","first-page":"74","DOI":"10.1016\/j.scico.2015.02.002","article-title":"A JastAdd implementation of Oberon-0","volume":"114","author":"Fors","year":"2015","journal-title":"Sci. Comput. Program."},{"key":"10.1016\/j.scico.2021.102703_br0390","series-title":"Proceedings of the Twenty-Second IEEE\/ACM International Conference on Automated Software Engineering","first-page":"485","article-title":"IMP: a meta-tooling platform for creating language-specific IDEs in Eclipse","author":"Charles","year":"2007"},{"issue":"10","key":"10.1016\/j.scico.2021.102703_br0400","doi-asserted-by":"crossref","first-page":"191","DOI":"10.1145\/1639949.1640104","article-title":"Accelerating the creation of customized, language-specific IDEs in Eclipse","volume":"44","author":"Charles","year":"2009","journal-title":"ACM SIGPLAN Not."},{"author":"MetaBorg Revision","key":"10.1016\/j.scico.2021.102703_br0410"},{"author":"Centrum Wiskunde and Informatica (CWI)","key":"10.1016\/j.scico.2021.102703_br0420"},{"author":"Eclipse Foundation","key":"10.1016\/j.scico.2021.102703_br0430"},{"article-title":"Compiler Construction: An Advanced Course","year":"1977","author":"Bauer","key":"10.1016\/j.scico.2021.102703_br0440"},{"year":"2006","series-title":"Compilers: Principles, Techniques and Tools","author":"Aho","key":"10.1016\/j.scico.2021.102703_br0450"},{"year":"2013","series-title":"Compiler Design","author":"Wilhelm","key":"10.1016\/j.scico.2021.102703_br0460"},{"issue":"1","key":"10.1016\/j.scico.2021.102703_br0470","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/226155.226156","article-title":"Generation of formatters for context-free languages","volume":"5","author":"van den Brand","year":"1996","journal-title":"ACM Trans. Softw. Eng. Methodol."},{"key":"10.1016\/j.scico.2021.102703_br0480","series-title":"Proceedings of the 2nd International Symposium on Constructing Software Engineering Tools","first-page":"68","article-title":"A pretty-printer for every occasion","volume":"vol. 5","author":"de Jonge","year":"2000"},{"year":"1991","series-title":"Generalized LR Parsing","author":"Tomita","key":"10.1016\/j.scico.2021.102703_br0490"},{"key":"10.1016\/j.scico.2021.102703_br0500","doi-asserted-by":"crossref","DOI":"10.1016\/j.cola.2020.100945","article-title":"Purely functional GLL parsing","author":"van Binsbergen","year":"2020","journal-title":"J. Comput. Lang."},{"issue":"2","key":"10.1016\/j.scico.2021.102703_br0510","doi-asserted-by":"crossref","first-page":"70","DOI":"10.1049\/ip-sen:20041181","article-title":"A generator of efficient strongly typed abstract syntax trees in Java","volume":"152","author":"Van den Brand","year":"2005","journal-title":"IEE Proc., Softw."},{"issue":"2","key":"10.1016\/j.scico.2021.102703_br0520","doi-asserted-by":"crossref","first-page":"59","DOI":"10.1016\/S1571-0661(04)80920-4","article-title":"JastAdd: a Java-based system for implementing front-ends","volume":"44","author":"Hedin","year":"2001","journal-title":"Electron. Notes Theor. Comput. Sci."},{"key":"10.1016\/j.scico.2021.102703_br0530","series-title":"International Conference on Evaluation of Novel Approaches to Software Engineering","first-page":"82","article-title":"Structure editors: old hat or future vision?","author":"Gomolka","year":"2011"},{"author":"Sun","key":"10.1016\/j.scico.2021.102703_br0540"},{"issue":"8","key":"10.1016\/j.scico.2021.102703_br0550","doi-asserted-by":"crossref","first-page":"453","DOI":"10.1145\/360933.360975","article-title":"Guarded commands, nondeterminacy and formal derivation of programs","volume":"18","author":"Dijkstra","year":"1975","journal-title":"Commun. ACM"},{"year":"2021","series-title":"PAMOJA grammar-aware component toolkit","author":"Ssanyu","key":"10.1016\/j.scico.2021.102703_br0560"}],"container-title":["Science of Computer Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0167642321000964?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0167642321000964?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2024,4,1]],"date-time":"2024-04-01T10:50:41Z","timestamp":1711968641000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S0167642321000964"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,11]]},"references-count":50,"alternative-id":["S0167642321000964"],"URL":"https:\/\/doi.org\/10.1016\/j.scico.2021.102703","relation":{},"ISSN":["0167-6423"],"issn-type":[{"type":"print","value":"0167-6423"}],"subject":[],"published":{"date-parts":[[2021,11]]},"assertion":[{"value":"Elsevier","name":"publisher","label":"This article is maintained by"},{"value":"PAMOJA: A component framework for grammar-aware engineering","name":"articletitle","label":"Article Title"},{"value":"Science of Computer Programming","name":"journaltitle","label":"Journal Title"},{"value":"https:\/\/doi.org\/10.1016\/j.scico.2021.102703","name":"articlelink","label":"CrossRef DOI link to publisher maintained version"},{"value":"article","name":"content_type","label":"Content Type"},{"value":"\u00a9 2021 Elsevier B.V. All rights reserved.","name":"copyright","label":"Copyright"}],"article-number":"102703"}}