publications: - title: "PIL: A Platform Independent Language for Retargetable DSLs" author: - name: "Zef Hemel" link: "http://zef.me" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-12107-4_17" abstract: "Intermediate languages are used in compiler construction to simplify retargeting compilers to multiple machine architectures. In the implementation of domain-specific languages (DSLs), compilers typically generate high-level source code, rather than low-level machine instructions. DSL compilers target a software platform, i.e. a programming language with a set of libraries, deployable on one or more operating systems. DSLs enable targeting multiple software platforms if its abstractions are platform independent. While transformations from DSL to each targeted platform are often conceptually very similar, there is little reuse between transformations due to syntactic and API differences of the target platforms, making supporting multiple platforms expensive. In this paper, we discuss the design and implementation of PIL, a Platform Independent Language, an intermediate language providing a layer of abstraction between DSL and target platform code, abstracting from syntactic and API differences between platforms, thereby removing the need for platform-specific transformations. We discuss the use of PIL in an implemementation of WebDSL, a DSL for building web applications." links: doi: "http://dx.doi.org/10.1007/978-3-642-12107-4_17" tags: - "DSL" researchr: "https://researchr.org/publication/HemelV09" cites: 0 citedby: 1 pages: "224-243" booktitle: "Software Language Engineering, Second International Conference, SLE 2009, Denver, CO, USA, October 5-6, 2009, Revised Selected Papers" editor: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Dragan Gasevic" link: "http://www.sfu.ca/~dgasevic/" - name: "Jeffrey G. Gray" link: "http://www.gray-area.org/" volume: "5969" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-12106-7" kind: "inproceedings" key: "HemelV09" - title: "A Domain-Specific Language for Internal Site Search" author: - name: "Elmer van Chastelet" link: "https://researchr.org/profile/elmervanchastelet/publications" year: "2013" abstract: "The importance of search facilities on a website grows with the size of the content being served. User expectations for internal site search are greatly influenced by global web search engines, requiring developers of web applications to go beyond basic search functionality. In this thesis, a domain-specific language (DSL) for internal site search is designed and integrated as a sublanguage of WebDSL (the base language). WebDSL is an existing DSL for web development. Through an exploration of the problem and solution space, the facets related to internal site search are explained. Furthermore, an iterative approach applied at the development of the DSL is presented. This approach is based on the use of existing base language constructs as core language. The core languages provide access to implemented search features. Linguistic abstractions are added on top of the core languages, constituting the eventual interface of the language. Evaluation by means of enriching two web applications with search features show that the DSL has substantial coverage of the internal site search domain." researchr: "https://researchr.org/publication/VanChastelet2013" cites: 0 citedby: 0 kind: "mastersthesis" key: "VanChastelet2013" - title: "WebWorkFlow: An Object-Oriented Workflow Modeling Language for Web Applications" author: - name: "Zef Hemel" link: "http://zef.me" - name: "Ruben Verhaaf" link: "http://www.linkedin.com/pub/ruben-verhaaf/3/a73/2ab" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-87875-9_8" abstract: "Workflow languages are designed for the high-level description of processes and are typically not suitable for the generation of complete applications. In this paper, we present WebWorkFlow, an object-oriented workflow modeling language for the high-level description of workflows in web applications. Workflow descriptions define procedures operating on domain objects. Procedures are composed using sequential and concurrent process combinators. WebWorkFlow is an embedded language, extending WebDSL, a domain-specific language for web application development, with workflow abstractions. The extension is implemented by means of model-to-model transformations. Rather than providing an exclusive workflow language, WebWorkFlow supports interaction with the underlying WebDSL language. WebWorkFlow supports most of the basic workflow control patterns. " links: doi: "http://dx.doi.org/10.1007/978-3-540-87875-9_8" "technical report (pdf)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-029.pdf" tags: - "workflow patterns" - "model-to-model transformation" - "interaction design" - "WebDSL" - "transformation engineering" - "completeness" - "pattern language" - "meta-model" - "modeling language" - "modeling" - "language engineering" - "transformation language" - "language modeling" - "web engineering" - "language design" - "model-driven development" - "source-to-source" - "model-driven engineering" - "object-role modeling" - "model transformation" - "web applications" - "DSL" - "abstraction" - "Meta-Environment" - "workflow" - "process modeling" - "WebWorkFlow" - "meta-objects" - "transformation" - "domain-specific language" researchr: "https://researchr.org/publication/HemelVV08" cites: 0 citedby: 6 pages: "113-127" booktitle: "Model Driven Engineering Languages and Systems, 11th International Conference, MoDELS 2008, Toulouse, France, September 28 - October 3, 2008. Proceedings" editor: - name: "Krzysztof Czarnecki" link: "http://www.swen.uwaterloo.ca/~kczarnec/" - name: "Ileana Ober" link: "https://researchr.org/alias/ileana-ober" - name: "Jean-Michel Bruel" link: "https://researchr.org/alias/jean-michel-bruel" - name: "Axel Uhl" link: "https://researchr.org/alias/axel-uhl" - name: "Markus Völter" link: "http://www.voelter.de/" volume: "5301" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-87874-2" kind: "inproceedings" key: "HemelVV08" - title: "Abstractions for Asynchronous User Interfaces in Web Applications" author: - name: "Michel Weststrate" link: "https://researchr.org/alias/michel-weststrate" year: "2009" doi: "http://swerl.tudelft.nl/twiki/pub/Main/PastAndCurrentMScProjects/Thesis_Michel_Weststrate.pdf" abstract: "The web has become a popular target platform for applications. The differences in user experience between browser based applications and desktop applications have become smaller due to the enriched user experience enabled by the Ajax technique. Nevertheless, developing Ajax based internet applications is a complex task and requires the developer to intertwine many standards and languages. This thesis presents the WebDSLx extension for the WebDSL compiler. The compiler and extension allows the developer to create rich internet applications in an intuitive way, since many details are taken care of by the abstractions provided in the model. WebDSLx allows to define a rich interaction pattern between user and application, based on the concepts of delta updates and reusable widgets. The abstractions provided are based on an analysis of proven successful abstractions in the development process of desktop applications. As a result, the WebDSLx extension provides a simple model based approach to a formerly tedious task." links: doi: "http://swerl.tudelft.nl/twiki/pub/Main/PastAndCurrentMScProjects/Thesis_Michel_Weststrate.pdf" tags: - "WebDSL" - "rule-based" - "pattern language" - "meta-model" - "modeling language" - "language modeling" - "AJAX" - "analysis" - "reuse" - "model-driven development" - "compiler" - "web applications" - "abstraction" - "Meta-Environment" - "model deltas" - "process modeling" - "systematic-approach" researchr: "https://researchr.org/publication/Weststrate2009" cites: 0 citedby: 0 school: "Delft University of Technology" advisor: - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Eelco Visser" link: "http://eelcovisser.org" kind: "mastersthesis" key: "Weststrate2009" - title: "Code generation by model transformation: a case study in transformation modularity" author: - name: "Zef Hemel" link: "http://zef.me" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2010" doi: "10.1007/s10270-009-0136-1" abstract: "The realization of model-driven software development requires effective techniques for implementing code generators for domain-specific languages. This paper identifies techniques for improving separation of concerns in the implementation of generators. The core technique is code generation by model transformation, that is, the generation of a structured representation (model) of the target program instead of plain text. This approach enables the transformation of code after generation, which in turn enables the extension of the target language with features that allow better modularity in code generation rules. The technique can also be applied to ‘internal code generation’ for the translation of high-level extensions of a DSL to lower-level constructs within the same DSL using model-to-model transformations. This paper refines our earlier description of code generation by model transformation with an improved architecture for the composition of model-to-model normalization rules, solving the problem of combining type analysis and transformation. Instead of coarse-grained stages that alternate between normalization and type analysis, we have developed a new style of type analysis that can be integrated with normalizing transformations in a fine-grained manner. The normalization strategy has a simple extension interface and integrates non-local, context-sensitive transformation rules. We have applied the techniques in a realistic case study of domain-specific language engineering, i.e. the code generator for WebDSL, using Stratego, a high-level transformation language that integrates model-to-model, model-to-code, and code-to-code transformations." links: dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/sosym/HemelKGV10" tags: - "model-to-model transformation" - "case study" - "meta-model" - "source-to-source" - "C++" - "code generation" - "model transformation" - "Meta-Environment" - "transformation" researchr: "https://researchr.org/publication/HemelKGV10" cites: 0 citedby: 0 journal: "Software and Systems Modeling" volume: "9" number: "3" pages: "375-402" kind: "article" key: "HemelKGV10" - title: "WebDSL: A Case Study in Domain-Specific Language Engineering" author: - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-88643-3_7" abstract: " The goal of domain-specific languages (DSLs) is to increase the productivity of software engineers by abstracting from low-level boil- erplate code. Introduction of DSLs in the software development process requires a smooth workflow for the production of DSLs themselves. This requires technology for designing and implementing DSLs, but also a methodology for using that technology. That is, a collection of guidelines, design patterns, and reusable DSL components that show developers how to tackle common language design and implementation issues. This paper presents a case study in domain-specific language engineering. It reports on a pro ject in which the author designed and built WebDSL, a DSL for web applications with a rich data model, using several DSLs for DSL engineering: SDF for syntax definition and Stratego/XT for code gener- ation. The paper follows the stages in the development of the DSL. The contributions of the paper are three-fold. (1) A tutorial in the application of the specific SDF and Stratego/XT technology for building DSLs. (2) A description of an incremental DSL development process. (3) A domain- specific language for web-applications with rich data models. The paper concludes with a survey of related approaches. " links: doi: "http://dx.doi.org/10.1007/978-3-540-88643-3_7" "technical report (pdf)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-023.pdf" "webdsl": "http://webdsl.org" "stratego/xt": "http://strategoxt.org" tags: - "WebDSL" - "reusable components" - "DSL engineering" - "web application development" - "data-flow language" - "pattern language" - "case study" - "software components" - "SDF" - "meta-model" - "abstract syntax" - "modeling language" - "Stratego/XT" - "language engineering" - "software language engineering" - "language modeling" - "software component" - "web engineering" - "language design" - "reuse" - "model-driven development" - "data-flow" - "survey" - "software engineering" - "model-driven engineering" - "web applications" - "DSL" - "Meta-Environment" - "incremental" - "design" - "process modeling" - "systematic-approach" - "ASF+SDF" - "language" - "Stratego" - "domain-specific language" researchr: "https://researchr.org/publication/Visser07" cites: 0 citedby: 9 pages: "291-373" booktitle: "Generative and Transformational Techniques in Software Engineering II, International Summer School, GTTSE 2007" editor: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "João Saraiva" link: "http://di.uminho.pt/~jas" volume: "5235" series: "Lecture Notes in Computer Science" address: "Braga, Portugal" publisher: "Springer" isbn: "978-3-540-88642-6" kind: "inproceedings" key: "Visser07" - title: "WebDSL: a domain-specific language for dynamic web applications" author: - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Zef Hemel" link: "http://zef.me" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://doi.acm.org/10.1145/1449814.1449858" abstract: "WebDSL is a domain-specific language for the implementation of dynamic web applications with a rich datamodel. It consists of a core language with constructs to define entities, pages and business logic. Higher-level abstractions, modeling access control and workflow, are defined in a modular fashion as extensions of the core language." links: doi: "http://doi.acm.org/10.1145/1449814.1449858" tags: - "WebDSL" - "meta-model" - "modeling language" - "modeling" - "language engineering" - "language modeling" - "web engineering" - "model-driven engineering" - "C++" - "web applications" - "DSL" - "logic" - "abstraction" - "Meta-Environment" - "access control" - "workflow" - "domain-specific language" researchr: "https://researchr.org/publication/GroenewegenHKV08" cites: 0 citedby: 0 pages: "779-780" booktitle: "Companion to the 23rd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2008, October 19-13, 2007, Nashville, TN, USA" editor: - name: "Gail E. Harris" link: "https://researchr.org/alias/gail-e.-harris" publisher: "ACM" isbn: "978-1-60558-220-7" kind: "inproceedings" key: "GroenewegenHKV08" - title: "IceDust: Incremental and Eventual Computation of Derived Values in Persistent Object Graphs" author: - name: "Daco Harkes" link: "http://nl.linkedin.com/in/dcharkes" - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2016" doi: "http://dx.doi.org/10.4230/LIPIcs.ECOOP.2016.11" abstract: "Derived values are values calculated from base values. They can be expressed in object-oriented languages by means of getters calculating the derived value, and in relational or logic databases by means of (materialized) views. However, switching to a different calculation strategy (for example caching) in object-oriented programming requires invasive code changes, and the databases limit expressiveness by disallowing recursive aggregation. In this paper, we present IceDust, a data modeling language for expressing derived attribute values without committing to a calculation strategy. IceDust provides three strategies for calculating derived values in persistent object graphs: Calculate-on-Read, Calculate-on-Write, and Calculate-Eventually. We have developed a path-based abstract interpretation that provides static dependency analysis to generate code for these strategies. Benchmarks show that different strategies perform better in different scenarios. In addition we have conducted a case study that suggests that derived value calculations of systems used in practice can be expressed in IceDust. " links: doi: "http://dx.doi.org/10.4230/LIPIcs.ECOOP.2016.11" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/ecoop/HarkesGV16" researchr: "https://researchr.org/publication/HarkesGV16" cites: 0 citedby: 0 booktitle: "30th European Conference on Object-Oriented Programming, ECOOP 2016, July 18-22, 2016, Rome, Italy" editor: - name: "Shriram Krishnamurthi" link: "https://researchr.org/alias/shriram-krishnamurthi" - name: "Benjamin S. Lerner" link: "https://researchr.org/alias/benjamin-s.-lerner" volume: "56" series: "LIPIcs" publisher: "Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik" isbn: "978-3-95977-014-9" kind: "inproceedings" key: "HarkesGV16" - title: "Static consistency checking of web applications with WebDSL" author: - name: "Zef Hemel" link: "http://zef.me" - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2011" doi: "https://doi.org/10.1016/j.jsc.2010.08.006" abstract: "Modern web application development frameworks provide web application developers with high-level abstractions to improve their productivity. However, their support for static verification of applications is limited. Inconsistencies in an application are often not detected statically, but appear as errors at run-time. The reports about these errors are often obscure and hard to trace back to the source of the inconsistency. A major part of this inadequate consistency checking can be traced back to the lack of linguistic integration of these frameworks. Parts of an application are defined with separate domain-specific languages, which are not checked for consistency with the rest of the application. Examples include regular expressions, query languages and XML-based languages for definition of user interfaces. We give an overview and analysis of typical problems arising in development with frameworks for web application development, with Ruby on Rails, Lift and Seam as representatives. To remedy these problems, in this paper, we argue that domain-specific languages should be designed from the ground up with static verification and cross-aspect consistency checking in mind, providing linguistic integration of domain-specific sub-languages. We show how this approach is applied in the design of WebDSL, a domain-specific language for web applications, by examining how its compiler detects inconsistencies not caught by web frameworks, providing accurate and clear error messages. Furthermore, we show how this consistency analysis can be expressed with a declarative rule-based approach using the Stratego transformation language." links: doi: "https://doi.org/10.1016/j.jsc.2010.08.006" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/jsc/HemelGKV11" "technical report ": "http://resolver.tudelft.nl/uuid:588b78a1-f8d8-45fc-855f-fd03699725cf" "jsc": "https://doi.org/10.1016/j.jsc.2010.08.006" tags: - "model-to-model transformation" - "WebDSL" - "rule-based" - "application framework" - "model checking" - "XML" - "XML Schema" - "transformation language" - "points-to analysis" - "domain analysis" - "analysis" - "language design" - "static analysis" - "model-driven development" - "source-to-source" - "rules" - "C++" - "compiler" - "model transformation" - "web applications" - "consistency" - "abstraction" - "design" - "systematic-approach" - "open-source" - "transformation" - "Ruby on Rails" - "Stratego" - "Ruby" - "query language" - "domain-specific language" researchr: "https://researchr.org/publication/HemelGKV11" cites: 0 citedby: 0 journal: "Journal of Symbolic Computation" volume: "46" number: "2" pages: "150-182" kind: "article" key: "HemelGKV11" - title: "Mobl: the new language of the mobile web" author: - name: "Zef Hemel" link: "http://zef.me" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2011" doi: "http://doi.acm.org/10.1145/2048147.2048159" abstract: "Mobl is a new language designed to declaratively construct mobile web applications. Mobl integrates languages for user interface design, styling, data modeling, querying and application logic into a single, unified language that is flexible, expressive, enables early detection of errors, and has good IDE support." links: doi: "http://doi.acm.org/10.1145/2048147.2048159" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/HemelV11a" researchr: "https://researchr.org/publication/HemelV11a" cites: 0 citedby: 0 pages: "23-24" booktitle: "Companion to the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2011, part of SPLASH 2011, Portland, OR, USA, October 22 - 27, 2011" editor: - name: "Cristina Videira Lopes" link: "https://researchr.org/alias/cristina-videira-lopes" - name: "Kathleen Fisher" link: "https://researchr.org/alias/kathleen-fisher" publisher: "ACM" isbn: "978-1-4503-0942-4" kind: "inproceedings" key: "HemelV11a" - title: "Integration of data validation and user interface concerns in a DSL for web applications" author: - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2013" doi: "http://dx.doi.org/10.1007/s10270-010-0173-9" abstract: "Data validation rules constitute the constraints that data input and processing must adhere to in addition to the structural constraints imposed by a data model. Web modeling tools do not make all types of data validation explicit in their models, hampering full code generation and model expressivity. Web application frameworks do not offer a consistent interface for data validation. In this paper, we present a solution for the integration of declarative data validation rules with user interface models in the domain of web applications, unifying syntax, mechanisms for error handling, and semantics of validation checks, and covering value well-formedness, data invariants, input assertions, and action assertions. We have implemented the approach in WebDSL, a domain-specific language for the definition of web applications." links: doi: "http://dx.doi.org/10.1007/s10270-010-0173-9" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/sosym/GroenewegenV13" tags: - "WebDSL" researchr: "https://researchr.org/publication/GroenewegenV13" cites: 0 citedby: 0 journal: "Software and Systems Modeling" volume: "12" number: "1" pages: "35-52" kind: "article" key: "GroenewegenV13" - title: "Weaving web applications with WebDSL: (demonstration)" author: - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2009" doi: "http://doi.acm.org/10.1145/1639950.1640020" abstract: "WebDSL is a domain-specific language for the development of web applications that integrates data-models, user-interface models, actions, validation, access control, and workflow. The compiler verifies the consistency of applications and generates complete implementations in Java or Python. We illustrate the key concepts of the language with a small web application." links: doi: "http://doi.acm.org/10.1145/1639950.1640020" tags: - "data validation" - "WebDSL" - "Java" - "completeness" - "data-flow language" - "meta-model" - "modeling language" - "modeling" - "language modeling" - "model-driven development" - "data-flow" - "weaving" - "compiler" - "web applications" - "consistency" - "Meta-Environment" - "access control" - "workflow" - "domain-specific language" researchr: "https://researchr.org/publication/GroenewegenV09-demo" cites: 0 citedby: 0 pages: "797-798" booktitle: "Companion to the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2009, October 25-29, 2009, Orlando, Florida, USA" editor: - name: "Shail Arora" link: "https://researchr.org/alias/shail-arora" - name: "Gary T. Leavens" link: "https://researchr.org/alias/gary-t.-leavens" publisher: "ACM" isbn: "978-1-60558-768-4" kind: "inproceedings" key: "GroenewegenV09-demo" - title: "IceDust 2: Derived Bidirectional Relations and Calculation Strategy Composition" author: - name: "Daco Harkes" link: "http://nl.linkedin.com/in/dcharkes" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2017" doi: "https://doi.org/10.4230/LIPIcs.ECOOP.2017.14" abstract: "Derived values are values calculated from base values. They can be expressed with views in relational databases, or with expressions in incremental or reactive programming. However, relational views do not provide multiplicity bounds, and incremental and reactive programming require significant boilerplate code in order to encode bidirectional derived values. Moreover, the composition of various strategies for calculating derived values is either disallowed, or not checked for producing derived values which will be consistent with the derived values they depend upon. In this paper we present IceDust2, an extension of the declarative data modeling language IceDust with derived bidirectional relations with multiplicity bounds and support for statically checked composition of calculation strategies. Derived bidirectional relations, multiplicity bounds, and calculation strategies all influence runtime behavior of changes to data, leading to hundreds of possible behavior definitions. IceDust2 uses a product-line based code generator to avoid explicitly defining all possible combinations, making it easier to reason about correctness. The type system allows only sound composition of strategies and guarantees multiplicity bounds. Finally, our case studies validate the usability of IceDust2 in applications. " links: doi: "https://doi.org/10.4230/LIPIcs.ECOOP.2017.14" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/ecoop/HarkesV17" researchr: "https://researchr.org/publication/HarkesV17" cites: 0 citedby: 0 booktitle: "31st European Conference on Object-Oriented Programming, ECOOP 2017, June 19-23, 2017, Barcelona, Spain" editor: - name: "Peter Müller" link: "https://researchr.org/alias/peter-m%C3%BCller" volume: "74" series: "LIPIcs" publisher: "Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik" isbn: "978-3-95977-035-4" kind: "inproceedings" key: "HarkesV17" - title: "researchr.org" author: - name: "Eelco Visser" link: "https://researchr.org/alias/eelco-visser" year: "2009" doi: "http://researchr.org" abstract: "Researchr is a web service for indexing, managing, and sharing bibliographic information of scientific publications for researchers by researchers." note: "Researchr is a web service for indexing, managing, and sharing bibliographic information of scientific publications for researchers by researchers." links: doi: "http://researchr.org" tags: - "bibliography" - "software" - "digital library" - "web service" - "web services" - "researchr" researchr: "https://researchr.org/publication/Visser%3A2009" cites: 0 citedby: 0 howpublished: "http://researchr.org" kind: "misc" key: "Visser:2009" - title: "Declarative Access Control for WebDSL: Combining Language Integration and Separation of Concerns" author: - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1109/ICWE.2008.15" abstract: "In this paper, we present the extension of WebDSL, a domain-specific language for web application development, with abstractions for declarative definition of access control. The extension supports the definition of a wide range of access control policies concisely and transparently as a separate concern. In addition to regulating the access to pages and actions, access control rules are used to infer navigation options not accessible to the current user, preventing the presentation of inaccessible links. The extension is an illustration of a general approach to the design of domain-specific languages for different technical domains to support separation of concerns in application development, while preserving linguistic integration. This approach is realized by means of a transformational semantics that weaves separately defined aspects into an integrated implementation. " links: doi: "http://dx.doi.org/10.1109/ICWE.2008.15" "webdsl": "http://webdsl.org" tags: - "WebDSL" - "semantics" - "rule-based" - "separation of concerns" - "transformation language" - " action semantics" - "language design" - "weaving" - "rules" - "web applications" - "DSL" - "abstraction" - "access control policies" - "access control" - "aspect weaving" - "design" - "role-based access control" - "systematic-approach" - "transformation" - "domain-specific language" researchr: "https://researchr.org/publication/GroenewegenV08" cites: 26 citedby: 7 pages: "175-188" booktitle: "Proceedings of the Eighth International Conference on Web Engineering, ICWE 2008, 14-18 July 2008, Yorktown Heights, New York, USA" editor: - name: "Daniel Schwabe" link: "https://researchr.org/alias/daniel-schwabe" - name: "Francisco Curbera" link: "https://researchr.org/alias/francisco-curbera" - name: "Paul Dantzig" link: "https://researchr.org/alias/paul-dantzig" publisher: "IEEE" isbn: "978-0-7695-3261-5" kind: "inproceedings" key: "GroenewegenV08" - title: "When Frameworks Let You Down. Platform-Imposed Constraints on the Design and Evolution of Domain-Specific Languages" author: - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Zef Hemel" link: "http://zef.me" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" month: "October" abstract: "Application frameworks encapsulate domain knowledge in a reusable library, providing abstractions for a particular domain. As such, they can form the basis for domain-specific languages, which may offer notational constructs, static analysis, and optimizations specific for the domain. Additional abstractions can be incrementally added on top of a domain-specific, following an inductive approach towards its design, evolving the language as new domain insights are acquired. A problem arises when such additions do not align well with the underlying framework. In this paper, we provide different examples of this problem and describe scenarios of dealing with it." links: "technical report": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-039.pdf" tags: - "framework" - "optimization" - "WebDSL" - "application framework" - "domain analysis" - "analysis" - "language design" - "static analysis" - "constraints" - "reuse" - "software evolution" - "C++" - "DSL" - "abstraction" - "incremental" - "design" - "systematic-approach" - "domain-specific language" researchr: "https://researchr.org/publication/GroenewegenHKV08-DSM" cites: 0 citedby: 2 booktitle: "Proceedings of the 8th OOPSLA Workshop on Domain Specific Modelling (DSM'08)" editor: - name: "Jeffrey G. Gray" link: "http://www.gray-area.org/" - name: "Jonathan Sprinkle" link: "https://researchr.org/alias/jonathan-sprinkle" - name: "Juha-Pekka Tolvanen" link: "http://www.metacase.com/jpt.html" - name: "Matti Rossi" link: "https://researchr.org/alias/matti-rossi" address: "Nashville, Tennessee, USA" kind: "inproceedings" key: "GroenewegenHKV08-DSM" - title: "PixieDust: Declarative Incremental User Interface Rendering Through Static Dependency Tracking" author: - name: "Nick ten Veen" link: "https://www.linkedin.com/in/nicktenveen/" - name: "Daco Harkes" link: "http://nl.linkedin.com/in/dcharkes" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2018" doi: "http://doi.acm.org/10.1145/3184558.3185978" abstract: " Modern web applications are interactive. Reactive programming languages and libraries are the state-of-the-art approach for declara- tively specifying these interactive applications. However, programs written with these approaches contain error-prone boilerplate code for e ciency reasons. In this paper we present PixieDust, a declarative user-interface language for browser-based applications. PixieDust uses static de- pendency analysis to incrementally update a browser-DOM at run- time, without boilerplate code. We demonstrate that applications in PixieDust contain less boilerplate code than state-of-the-art ap- proaches, while achieving on-par performance. " links: doi: "http://doi.acm.org/10.1145/3184558.3185978" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/www/VeenHV18" researchr: "https://researchr.org/publication/VeenHV18" cites: 0 citedby: 0 pages: "721-729" booktitle: "Companion of the The Web Conference 2018 on The Web Conference 2018, WWW 2018, Lyon , France, April 23-27, 2018" editor: - name: "Pierre-Antoine Champin" link: "https://researchr.org/alias/pierre-antoine-champin" - name: "Fabien L. Gandon" link: "https://researchr.org/alias/fabien-l.-gandon" - name: "Mounia Lalmas" link: "https://researchr.org/alias/mounia-lalmas" - name: "Panagiotis G. Ipeirotis" link: "https://researchr.org/alias/panagiotis-g.-ipeirotis" publisher: "ACM" kind: "inproceedings" key: "VeenHV18" - title: "Evolution of the WebDSL runtime: reliability engineering of the WebDSL web programming language" author: - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Elmer van Chastelet" link: "https://researchr.org/profile/elmervanchastelet/publications" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2020" doi: "https://doi.org/10.1145/3397537.3397553" abstract: "Web applications are ideal for implementing information systems; they can organize and persist the data in a database, do not require installation on client machines, and can be instantly updated everywhere. However, web programming is complex due to its heterogeneous nature, causing web frameworks to suffer from insufficient or leaky abstraction, weak static consistency checking, and security features that are not enforced. We developed the WebDSL web programming language, which supports direct expression of intent, strong static consistency checking, linguistic abstractions for web programming concerns, and automatically enforces security features for web applications. We have used WebDSL for over 10 years to create information systems for academic workflows with thousands of users. Based on our experiences with these applications, we improved the WebDSL compiler and runtime to increase robustness, performance, and security of applications. In this experience report, we reflect on the lessons learned and improvements made to the language runtime." links: doi: "https://doi.org/10.1145/3397537.3397553" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/programming/GroenewegenCV20" tags: - "WebDSL" researchr: "https://researchr.org/publication/GroenewegenCV20" cites: 0 citedby: 0 pages: "77-83" booktitle: "Programming'20: 4th International Conference on the Art, Science, and Engineering of Programming, Porto, Portugal, March 23-26, 2020" editor: - name: "Ademar Aguiar" link: "https://researchr.org/alias/ademar-aguiar" - name: "Shigeru Chiba" link: "https://researchr.org/alias/shigeru-chiba" - name: "Elisa Gonzalez Boix" link: "https://researchr.org/alias/elisa-gonzalez-boix" publisher: "ACM" isbn: "978-1-4503-7507-8" kind: "inproceedings" key: "GroenewegenCV20" - title: "Performing Systematic Literature Reviews with Researchr: Tool Demonstration" author: - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2010" month: "May" doi: "http://resolver.tudelft.nl/uuid:22b480a7-d09e-4ae6-abe7-9a5769e03c2b" abstract: "This paper describes the workflow for performing systematic literature reviews with the researchr digital library environment. " links: doi: "http://resolver.tudelft.nl/uuid:22b480a7-d09e-4ae6-abe7-9a5769e03c2b" tags: - "digital library" - "literature review" - "digital libraries" - "reviewing" - "Meta-Environment" - "workflow" - "systematic-approach" - "systematic review" researchr: "https://researchr.org/publication/Visser2010" cites: 11 citedby: 0 institution: "Software Engineering Research Group, Delft University of Technology" number: "TUD-SERG-2010-010" address: "Delft, The Netherlands" kind: "techreport" key: "Visser2010" - title: "Code Generation by Model Transformation" author: - name: "Zef Hemel" link: "http://zef.me" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-69927-9_13" abstract: "The realization of model-driven software development requires effective techniques for implementing code generators. In this paper, we present a case study of code generation by model transformation with Stratego, a high-level transformation language based on the paradigm of rewrite rules with programmable strategies that integrates model-to-model, model-to-code, and code-to-code transformations. The use of concrete object syntax guarantees syntactic correctness of code patterns, and enables the subsequent transformation of generated code. The composability of strategies supports two dimensions of transformation modularity. Vertical modularity is achieved by designing a generator as a pipeline of model-to-model transformations that gradually transforms a high-level input model to an implementation. Horizontal modularity is achieved by supporting the definition of plugins which implement all aspects of a language feature. We discuss the application of these techniques in the implementation of WebDSL, a domain-specific language for dynamic web applications with a rich data model. " links: doi: "http://dx.doi.org/10.1007/978-3-540-69927-9_13" successor: "https://researchr.org/publication/HemelKGV10" "technical report (pdf)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-012.pdf" tags: - "programming languages" - "model-to-model transformation" - "object-oriented programming" - "WebDSL" - "concrete object syntax" - "rule-based" - "transformation engineering" - "syntax definition" - "meta programming" - "data-flow language" - "pattern language" - "case study" - "graph transformation" - "meta-model" - "modeling language" - "modeling" - "language engineering" - "transformation language" - "software language engineering" - "language modeling" - "web engineering" - "data-flow programming" - "model-driven development" - "data-flow" - "source-to-source" - "graph-rewriting" - "software engineering" - "rules" - "model-driven engineering" - "C++" - "programming paradigms" - "code generation" - "object-role modeling" - "aspect oriented programming" - "model transformation" - "web applications" - "DSL" - "subject-oriented programming" - "Meta-Environment" - "rewriting" - "rewriting strategies" - "feature-oriented programming" - "concrete syntax" - "open-source" - "meta-objects" - "transformation" - "Stratego" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/HemelKV08" cites: 0 citedby: 3 pages: "183-198" booktitle: "Theory and Practice of Model Transformations, First International Conference, ICMT 2008, Zürich, Switzerland, July 1-2, 2008, Proceedings" editor: - name: "Antonio Vallecillo" link: "http://www.lcc.uma.es/~av/" - name: "Jeffrey G. Gray" link: "http://www.gray-area.org/" - name: "Alfonso Pierantonio" link: "http://www.di.univaq.it/alfonso" volume: "5063" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-69926-2" kind: "inproceedings" key: "HemelKV08" - title: "IceDust 2: Derived Bidirectional Relations and Calculation Strategy Composition (Artifact)" author: - name: "Daco Harkes" link: "http://nl.linkedin.com/in/dcharkes" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2017" doi: "https://doi.org/10.4230/DARTS.3.2.1" abstract: " This artifact is based on IceDust2, a data modeling language with derived values. The provided package is designed to support the claims of the companion paper: in particular, it allows users to compile and run IceDust2 specifications. Instructions for building the IceDust2 compiler from source in Spoofax are also provided. " links: doi: "https://doi.org/10.4230/DARTS.3.2.1" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/darts/HarkesV17" researchr: "https://researchr.org/publication/HarkesV17-ART" cites: 0 citedby: 0 journal: "DARTS" volume: "3" number: "2" kind: "article" key: "HarkesV17-ART" - title: "Programming the Mobile Web with Mobl" author: - name: "Zef Hemel" link: "http://zef.me" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2011" month: "January" abstract: "A new generation of mobile touch devices, such as the iPhone, Android and iPad, are equipped with powerful, modern browsers. However, regular websites are not optimized for the specific features and constraints of these devices, such as limited screen estate, unreliable Internet access, touch-based interaction patterns, and features such as GPS. While recent advances in web technology enable web developers to build web applications that take advantage of the unique properties of mobile devices, developing such applications is not a clean, well-integrated experience. Developers are required to use many loosely coupled languages with limited tool support and application code is often verbose and imperative. We introduce mobl, a new language designed to declaratively construct mobile web applications. Mobl integrates languages for user interface design, data modeling and querying, scripting and web services into a single, unified language that is flexible, expressive, enables early detection of errors, and has good IDE support. We illustrate the design of the language with the implementation of ConfPlan, an application for keeping track of the schedule of conference events." tags: - "programming languages" - "optimization" - "interaction design" - "rule-based" - "meta programming" - "data-flow language" - "pattern language" - "meta-model" - "modeling language" - "modeling" - "web service" - "language modeling" - "language design" - "constraints" - "data-flow programming" - "data-flow" - "mobile code" - "code generation" - "web services" - "web applications" - "programming" - "program optimization" - "Meta-Environment" - "design" - "mobile" - "query language" - "domain-specific language" researchr: "https://researchr.org/publication/HemelVisser2011A" cites: 0 citedby: 0 institution: "Delft University of Technology" number: "TUD-SERG-2011-01" kind: "techreport" key: "HemelVisser2011A" - title: "A Language Independent Task Engine for Incremental Name and Type Analysis" author: - name: "Guido Wachsmuth" link: "https://www.linkedin.com/in/guidowachsmuth/" - name: "Gabriël Konat" link: "http://nl.linkedin.com/in/gabrielkonat" - name: "Vlad A. Vergu" link: "http://www.linkedin.com/in/vladv" - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2013" doi: "http://dx.doi.org/10.1007/978-3-319-02654-1_15" abstract: "IDEs depend on incremental name and type analysis for responsive feedback for large projects. In this paper, we present a language-independent approach for incremental name and type analysis. Analysis consists of two phases. The first phase analyzes lexical scopes and binding instances and creates deferred analysis tasks. A task captures a single name resolution or type analysis step. Tasks might depend on other tasks and are evaluated in the second phase. Incrementality is supported on file and task level. When a file changes, only this file is recollected and only those tasks are reevaluated, which are affected by the changes in the collected data. The analysis does neither re-parse nor re-traverse unchanged files, even if they are affected by changes in other files. We implemented the approach as part of the Spoofax Language Workbench and evaluated it for the WebDSL web programming language. " links: doi: "http://dx.doi.org/10.1007/978-3-319-02654-1_15" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/WachsmuthKVGV13" technicalreport: "https://researchr.org/publication/TUD-SERG-2013-018" researchr: "https://researchr.org/publication/WachsmuthKVGV13" cites: 0 citedby: 0 pages: "260-280" booktitle: "Software Language Engineering - 6th International Conference, SLE 2013, Indianapolis, IN, USA, October 26-28, 2013. Proceedings" editor: - name: "Martin Erwig" link: "https://researchr.org/alias/martin-erwig" - name: "Richard F. Paige" link: "https://researchr.org/alias/richard-f.-paige" - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" volume: "8225" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-319-02653-4" kind: "inproceedings" key: "WachsmuthKVGV13" - title: "Unifying and Generalizing Relations in Role-Based Data Modeling and Navigation" author: - name: "Daco Harkes" link: "http://nl.linkedin.com/in/dcharkes" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2014" doi: "http://dx.doi.org/10.1007/978-3-319-11245-9_14" abstract: "Object-oriented programming languages support concise navigation of relations represented by references. However, relations are not first-class citizens and bidirectional navigation is not supported. The relational paradigm provides first-class relations, but with bidirectional navigation through verbose queries. We present a systematic analysis of approaches to modeling and navigating relations. By unifying and generalizing the features of these approaches, we developed the design of a data modeling language that features first-class relations, n-ary relations, native multiplicities, bidirectional relations and concise navigation." links: doi: "http://dx.doi.org/10.1007/978-3-319-11245-9_14" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sle/HarkesV14" "pdf": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2014-023.pdf" researchr: "https://researchr.org/publication/HarkesV14" cites: 0 citedby: 0 pages: "241-260" booktitle: "Software Language Engineering - 7th International Conference, SLE 2014, Västerås, Sweden, September 15-16, 2014. Proceedings" editor: - name: "Benoît Combemale" link: "https://researchr.org/alias/beno%C3%AEt-combemale" - name: "David J. Pearce" link: "https://researchr.org/alias/david-j.-pearce" - name: "Olivier Barais" link: "https://researchr.org/alias/olivier-barais" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" volume: "8706" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-319-11244-2" kind: "inproceedings" key: "HarkesV14" - title: "Declaratively programming the mobile web with Mobl" author: - name: "Zef Hemel" link: "http://zef.me" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2011" doi: "http://doi.acm.org/10.1145/2048066.2048121" abstract: "A new generation of mobile touch devices, such as the iPhone, iPad and Android devices, are equipped with powerful, modern browsers. However, regular websites are not optimized for the specific features and constraints of these devices, such as limited screen estate, unreliable Internet access, touch-based interaction patterns, and features such as GPS. While recent advances in web technology enable web developers to build web applications that take advantage of the unique properties of mobile devices, developing such applications exposes a number of problems, specifically: developers are required to use many loosely coupled languages with limited tool support and application code is often verbose and imperative. We introduce mobl, a new language designed to declaratively construct mobile web applications. Mobl integrates languages for user interface design, styling, data modeling, querying and application logic into a single, unified language that is flexible, expressive, enables early detection of errors, and has good IDE support." links: doi: "http://doi.acm.org/10.1145/2048066.2048121" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/oopsla/HemelV11" technicalreport: "https://researchr.org/publication/HemelVisser2011-TUD-SERG-2011-024" researchr: "https://researchr.org/publication/HemelV11" cites: 0 citedby: 0 pages: "695-712" booktitle: "Proceedings of the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2011, part of SPLASH 2011, Portland, OR, USA, October 22 - 27, 2011" editor: - name: "Cristina Videira Lopes" link: "https://researchr.org/alias/cristina-videira-lopes" - name: "Kathleen Fisher" link: "https://researchr.org/alias/kathleen-fisher" publisher: "ACM" isbn: "978-1-4503-0940-0" kind: "inproceedings" key: "HemelV11" - title: "Modernizing the WebDSL Front-End: A Case Study in SDF3 and Statix" author: - name: "Max Machiel de Krieger" link: "https://www.linkedin.com/in/max-de-krieger-35ba85114/" year: "2022" month: "December" abstract: "The front-end of a compiler reads the source program and performs analyses such as type checking. The goal of the front-end is to check for the presence of syntactic and semantic errors before the program is passed to the back-end of the compiler for tasks such as optimization and code generation. WebDSL is a domain-specific language for web programming that is being used for over 15 years. With WebDSL, many applications have been developed which have thousands of daily users. While the language has evolved over the years, the core of its implementation remains unchanged and is starting to show signs of a legacy system. The current WebDSL syntax is defined in SDF2 and all other parts of the compiler are implemented in Stratego. This thesis presents a modernized front-end of the WebDSL compiler, utilizing the meta-languages of the Spoofax language workbench. Specifically, we introduce a syntax definition of WebDSL in SDF3 that is implemented without the use of post-parse filters, and an executable declarative specification of the WebDSL static semantics in Statix. We use the modernized front-end as the largest case study to date for the meta-languages SDF3 and Statix, in order to evaluate their expressiveness, performance, and elegance when they are used to implement a real world language." links: researchr: "https://researchr.org/publication/DeKrieger2022" cites: 0 citedby: 0 howpublished: "http://resolver.tudelft.nl/uuid:564b8471-631f-4831-a049-58b187425aed" kind: "misc" key: "DeKrieger2022"