This special issue of the Journal of Computer Languages (COLA) includes extended and revised versions of selected papers from the technical program of the 17th edition of International Conference on Generative Programming: Concepts & Experience (GPCE2018) and the 11th edition the International Conference on Software Language Engineering (SLE2018). The editors of this special issue selected 1 paper from the 17 papers accepted at GPCE and 3 papers out of the 33 accepted to SLE2018.
International Conference on Generative Programming: Concepts & Experiences (GPCE). Generative, component-based approaches and domain-specific abstractions are revolutionizing software development just as automation and componentization revolutionized manufacturing. Raising the level of abstraction in software specification has been a fundamental goal of the computing community for several decades. The key technologies for automating program development and lifting the abstraction level closer to the problem domain are Generative Programming for program synthesis, Domain-Specific Languages (DSLs) for compact problem-oriented programming notations, and corresponding Implementation Technologies aiming at modularity, correctness, reuse, and evolution. As the field matures, Applications and Empirical Results are of increasing importance. The International Conference on Generative Programming: Concepts & Experiences (GPCE) is a venue for researchers and practitioners interested in techniques that use program generation, domain-specific languages, and component deployment to increase programmer productivity, improve software quality, and shorten the time-to-market of software products. In addition to exploring cutting-edge techniques of generative software, the goal is to foster further cross-fertilization between the software engineering and the programming languages research communities.
The International Conference on Software Language Engineering (SLE) is devoted to the application of systematic, disciplined, and measurable approaches to the developmentT2A, use, deploymentT2D, and maintenanceT2B of software languages. The term “software language” is used broadly, and includes: general-purpose programming languagesT3D; domain-specific languagesT3C (e.g. BPMN, SimulinkT4E, Modelica, SQL, Yacc); modeling and metamodeling languages (e.g. SysML and UML); data models and ontologiesT3E (e.g. XML-based and OWL-based languages and vocabularies). The SLE conference series is devoted to a wide range of topics related primarily to the use of computer languages in Software Engineering. SLE brings together several communities that have traditionally looked at software languages from different and yet complementary perspectives: programming languages, model driven engineering, domain specific languages, and semantic web. Furthermore, SLE crosses a number of different technological spaces, including: context-free grammars, object-oriented modeling frameworks, rich data, structured data, object-oriented programming, functional programming, logic programming, term-rewritingT4B, attribute grammars, algebraic specificationT5D, etc. Supporting these communities in learning from each otherT6D, and transferring knowledge is the guiding principle behind the organization of SLE.
This special issue of the Journal of Computer Languages (COLA) includes extended and revised versions of selected papers from the programs of GPCE2018 and SLE2018 which took place on 5th and 6th of November 2018, co-located with SPLASH and OOPSLA in Boston, USA. 46 papers were originally submitted to SLE2018, and from these submissions the SLE Program Committee selected 13 research papers, six tool papers and three new ideas/vision papers. For GPCE2018 57 papers were originally submitted, and from these the GPCE Program Committee selected 15 full research papers and two short papers. For both conferences, each submitted paper was reviewed by at least three PC members, and was discussed in detail. Careful consideration in terms of a balanced program was given, so that representative state-of-the-art research from different approaches to generative programming and software language engineering appeared on the respective programs. Each submitted paper was reviewed by at least three PC members and discussed in detail during the electronic discussion period. The editors of this special issue selected outstanding papers from the programs of the GPCE and SLE conferences, and invited the authors to submit a revised and extended version of their papers. All papers have been carefully reviewed by at least three reviewers, and followed the strict review process of the journal until the final decision of each paper was reached.
For GPCE2018, the paper “RT-Trust: Automated Refactoring for Different Trusted Execution Environments under Real-Time Constraint” by Liu et al. was accepted in the special issue. This paper presents novel program analyses and transformation techniques that automatically partition real-time systems to isolate critical functions i.e. for security to execute on the OP-TEE and SGX TEE implementations of trusted execution environment hardware.
For SLE2018, three papers were accepted in the special issue. Firstly, the paper “Morbig : A Static Parser for POSIX Shell” by Régis-Gianas et al. looks at the technical challenges encounteredT6A in parsing the POSIX shell language and describes an open source tool (Morbig) which uses advanced parsing techniques to overcome them. Second, the paper “Relational Reference Attribute Grammars: Improving Continuous Model Validation” by Mey et al. consider the use of Reference Attribute Grammars for efficient handling of both uni- and bidirectional non-containment relationsT4B, and demonstrates their suitability with a prototype implemented in JastAdd. Finally, the paper “Purely Functional GLL Parsing” by van Binsbergen et al. consider a purely functional approach to Generalized LL parsing offering a simpler description and new optimization opportunities, and confirm empirically that good performanceT5F can still be achieved.
With the high quality of the selected articles, we believe this special issue will extend the knowledge and capture the interest of readers across the GPCE and SLE communities. We would like to take the opportunity to thank Prof. Marjan Mernik and the publishing support staff of the Journal of Computer Languages for their support of this featured topic issue. Our thanks also go to the authors who submitted their papers for publication and the reviewers for reviewing the papers and providing helpful suggestions to the authors.