{
  "name": "web-dev",
  "publications": [
    {
      "type": "inproceedings",
      "conference": "sle",
      "conferenceYear": "",
      "booktitle": "Software Language Engineering, Second International Conference, SLE 2009, Denver, CO, USA, October 5-6, 2009, Revised Selected Papers",
      "volume": "5969",
      "number": "",
      "series": "Lecture Notes in Computer Science",
      "address": "",
      "organization": "",
      "publisher": "Springer",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/mark-van-den-brand",
            "id": "ec0da5fa-6834-4952-9fff-9c4fecce7cb7",
            "key": "mark-van-den-brand",
            "name": "Mark van den Brand"
          },
          "person": {
            "url": "https://researchr.org/profile/markgjvandenbrand",
            "id": "97855301-a569-413e-8e19-c2c376c50842",
            "key": "markgjvandenbrand",
            "fullname": "Mark G. J. van den Brand"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/dragan-gasevic",
            "id": "4e952583-7834-4817-8b6e-04feaa97fad9",
            "key": "dragan-gasevic",
            "name": "Dragan Gasevic"
          },
          "person": {
            "url": "https://researchr.org/profile/dragangasevic",
            "id": "892937c7-d9f9-49a8-89e6-734b1fb47253",
            "key": "dragangasevic",
            "fullname": "Dragan Gasevic"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/jeff-gray",
            "id": "fefac3e9-8142-40df-9285-12943249e210",
            "key": "jeff-gray",
            "name": "Jeff Gray"
          },
          "person": {
            "url": "https://researchr.org/profile/jeffgray",
            "id": "474ab36e-49c3-4f85-aa00-417d49005952",
            "key": "jeffgray",
            "fullname": "Jeffrey G. Gray"
          }
        }
      ],
      "firstpage": 224,
      "lastpage": 243,
      "id": "0e398fc9-9416-4e73-8782-33f2e8c242ad",
      "key": "HemelV09",
      "title": "PIL: A Platform Independent Language for Retargetable DSLs",
      "month": "",
      "year": "2009",
      "doi": "http://dx.doi.org/10.1007/978-3-642-12107-4_17",
      "note": "",
      "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.",
      "url": "https://researchr.org/publication/HemelV09",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/zef-hemel",
            "id": "7816809a-e2e6-42c6-8c44-481a821fb0bd",
            "key": "zef-hemel",
            "name": "Zef Hemel"
          },
          "person": {
            "url": "https://researchr.org/profile/zefhemel",
            "id": "947901fa-e910-454b-8546-c514c5a191be",
            "key": "zefhemel",
            "fullname": "Zef  Hemel"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "ht",
      "conferenceYear": "",
      "booktitle": "HYPERTEXT 2006, Proceedings of the 17th ACM Conference on Hypertext and Hypermedia, August 22-25, 2006, Odense, Denmark",
      "volume": "",
      "number": "",
      "series": "",
      "address": "",
      "organization": "",
      "publisher": "ACM",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/uffe-kock-wiil",
            "id": "426f6949-d2e9-4bfc-96da-6dd327c8434a",
            "key": "uffe-kock-wiil",
            "name": "Uffe Kock Wiil"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/peter-j.-n%C3%BCrnberg",
            "id": "edb12b71-633c-46a1-b3db-6760596d927b",
            "key": "peter-j.-nürnberg",
            "name": "Peter J. Nürnberg"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/jessica-rubart",
            "id": "79075949-6df9-44a8-8245-e97d6c0b9860",
            "key": "jessica-rubart",
            "name": "Jessica Rubart"
          }
        }
      ],
      "firstpage": 31,
      "lastpage": 40,
      "id": "100c3f6c-3456-4c77-868c-98cf67f2cc39",
      "key": "MarlowNBD06",
      "title": "HT06, tagging paper, taxonomy, Flickr, academic article, to read",
      "month": "",
      "year": "2006",
      "doi": "http://doi.acm.org/10.1145/1149941.1149949",
      "note": "",
      "abstract": "",
      "url": "https://researchr.org/publication/MarlowNBD06",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/cameron-marlow",
            "id": "59e2a170-1527-46b4-8920-9381e3db9a40",
            "key": "cameron-marlow",
            "name": "Cameron Marlow"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/mor-naaman",
            "id": "c4f1ec6b-8732-4b63-b507-7020d66d0886",
            "key": "mor-naaman",
            "name": "Mor Naaman"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/danah-boyd",
            "id": "7ddeff94-17cc-476f-a82e-a82e890339a4",
            "key": "danah-boyd",
            "name": "Danah Boyd"
          },
          "person": {
            "url": "https://researchr.org/profile/danahboyd",
            "id": "d04e6396-b63f-43a5-bed3-2887aa2fb65d",
            "key": "danahboyd",
            "fullname": "Danah Boyd"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/marc-davis",
            "id": "34b8a1bf-ad03-48a1-8cc1-33f4a304e969",
            "key": "marc-davis",
            "name": "Marc Davis"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "icwe",
      "conferenceYear": "",
      "booktitle": "Web Engineering, 9th International Conference, ICWE 2009, San Sebastián, Spain, June 24-26, 2009, Proceedings",
      "volume": "5648",
      "number": "",
      "series": "Lecture Notes in Computer Science",
      "address": "",
      "organization": "",
      "publisher": "Springer",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/martin-gaedke",
            "id": "b56d5879-c8d1-40cf-8784-5a471c01286a",
            "key": "martin-gaedke",
            "name": "Martin Gaedke"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/michael-grossniklaus",
            "id": "e95e55b8-7c43-4546-80a8-e35abf59642f",
            "key": "michael-grossniklaus",
            "name": "Michael Grossniklaus"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/oscar-d%C3%ADaz",
            "id": "f4847a25-3257-4a82-963b-078fc77379a6",
            "key": "oscar-díaz",
            "name": "Oscar Díaz"
          }
        }
      ],
      "firstpage": 275,
      "lastpage": 282,
      "id": "11f424df-bf73-4411-b29f-f2b3277a9755",
      "key": "BookBGH09",
      "title": "A Conceptual Framework for User Input Evaluation in Rich Internet Applications",
      "month": "",
      "year": "2009",
      "doi": "http://dx.doi.org/10.1007/978-3-642-02818-2_22",
      "note": "",
      "abstract": "",
      "url": "https://researchr.org/publication/BookBGH09",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/matthias-book",
            "id": "c2c1582f-b87f-49a1-b6e8-58966289ab6c",
            "key": "matthias-book",
            "name": "Matthias Book"
          },
          "person": {
            "url": "https://researchr.org/profile/matthiasbook",
            "id": "3e862b48-c060-486a-98f4-c977312f46b5",
            "key": "matthiasbook",
            "fullname": "Matthias Book"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/tobias-br%C3%BCckmann",
            "id": "888fc4d1-ac0e-414c-9518-dd0193a47c3d",
            "key": "tobias-brückmann",
            "name": "Tobias Brückmann"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/volker-gruhn",
            "id": "593eb422-52fe-45c3-8b1a-9ff38b61db51",
            "key": "volker-gruhn",
            "name": "Volker Gruhn"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/malte-h%C3%BClder",
            "id": "18aa0d67-9688-482e-8292-344b649648a7",
            "key": "malte-hülder",
            "name": "Malte Hülder"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "sac",
      "conferenceYear": "",
      "booktitle": "Proceedings of the 2006 ACM Symposium on Applied Computing (SAC), Dijon, France, April 23-27, 2006",
      "volume": "",
      "number": "",
      "series": "",
      "address": "",
      "organization": "",
      "publisher": "ACM",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/hisham-haddad",
            "id": "9992e324-eaf0-47c2-b376-36b40fbfb794",
            "key": "hisham-haddad",
            "name": "Hisham Haddad"
          }
        }
      ],
      "firstpage": 1256,
      "lastpage": 1261,
      "id": "19eafb8c-8f37-4954-8f07-b43d03b4674e",
      "key": "CicchettiRP06",
      "title": "Weaving concerns in model based development of data-intensive web applications",
      "month": "",
      "year": "2006",
      "doi": "http://doi.acm.org/10.1145/1141277.1141571",
      "note": "",
      "abstract": "",
      "url": "https://researchr.org/publication/CicchettiRP06",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/antonio-cicchetti",
            "id": "289429fb-5ad3-472a-9617-3eea7ce1dbb6",
            "key": "antonio-cicchetti",
            "name": "Antonio Cicchetti"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/davide-di-ruscio",
            "id": "8c833841-06a2-41b0-a07e-b7157540e19d",
            "key": "davide-di-ruscio",
            "name": "Davide Di Ruscio"
          },
          "person": {
            "url": "https://researchr.org/profile/davidediruscio",
            "id": "686fef69-d225-49b8-a88a-3df8ca43b3f9",
            "key": "davidediruscio",
            "fullname": "Davide Di Ruscio"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/alfonso-pierantonio",
            "id": "6bdb8120-94a2-4358-a8ff-970aeb5a607f",
            "key": "alfonso-pierantonio",
            "name": "Alfonso Pierantonio"
          },
          "person": {
            "url": "https://researchr.org/profile/alfonsopierantonio",
            "id": "b3878a28-8c5a-4748-8d0d-392889211b46",
            "key": "alfonsopierantonio",
            "fullname": "Alfonso Pierantonio"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "models",
      "conferenceYear": "",
      "booktitle": "Model Driven Engineering Languages and Systems, 11th International Conference, MoDELS 2008, Toulouse, France, September 28 - October 3, 2008. Proceedings",
      "volume": "5301",
      "number": "",
      "series": "Lecture Notes in Computer Science",
      "address": "",
      "organization": "",
      "publisher": "Springer",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/krzysztof-czarnecki",
            "id": "59b12c15-22de-472e-9b7a-453385164e3b",
            "key": "krzysztof-czarnecki",
            "name": "Krzysztof Czarnecki"
          },
          "person": {
            "url": "https://researchr.org/profile/krzysztofczarnecki",
            "id": "f8475ad2-6a3b-4cd6-9986-5a1ede62a0ae",
            "key": "krzysztofczarnecki",
            "fullname": "Krzysztof Czarnecki"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/ileana-ober",
            "id": "97d0ba88-fa64-4d21-9b99-6be14f7df22b",
            "key": "ileana-ober",
            "name": "Ileana Ober"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/jean-michel-bruel",
            "id": "085d761f-a34a-4f06-b51f-8a2807e6a5dd",
            "key": "jean-michel-bruel",
            "name": "Jean-Michel Bruel"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/axel-uhl",
            "id": "7b20a7a8-8513-48de-8345-c8c66c6c4cd7",
            "key": "axel-uhl",
            "name": "Axel Uhl"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/markus-v%C3%B6lter",
            "id": "ab591369-2e2d-42ef-a605-52de9dba9aab",
            "key": "markus-völter",
            "name": "Markus Völter"
          },
          "person": {
            "url": "https://researchr.org/profile/markusvoelter",
            "id": "d0507709-858d-4c99-9af3-97f51623b905",
            "key": "markusvoelter",
            "fullname": "Markus Völter"
          }
        }
      ],
      "firstpage": 113,
      "lastpage": 127,
      "id": "1f88b13a-f07c-4968-b8f6-ff56b9271487",
      "key": "HemelVV08",
      "title": "WebWorkFlow: An Object-Oriented Workflow Modeling Language for Web Applications",
      "month": "",
      "year": "2008",
      "doi": "http://dx.doi.org/10.1007/978-3-540-87875-9_8",
      "note": "",
      "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. ",
      "url": "https://researchr.org/publication/HemelVV08",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/zef-hemel",
            "id": "7816809a-e2e6-42c6-8c44-481a821fb0bd",
            "key": "zef-hemel",
            "name": "Zef Hemel"
          },
          "person": {
            "url": "https://researchr.org/profile/zefhemel",
            "id": "947901fa-e910-454b-8546-c514c5a191be",
            "key": "zefhemel",
            "fullname": "Zef  Hemel"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/ruben-verhaaf",
            "id": "b9250f8d-3dc2-464c-a154-f540d5c5f0b1",
            "key": "ruben-verhaaf",
            "name": "Ruben Verhaaf"
          },
          "person": {
            "url": "https://researchr.org/profile/rubenverhaaf",
            "id": "870e57e4-0504-4d53-bce2-79c0715d4085",
            "key": "rubenverhaaf",
            "fullname": "Ruben  Verhaaf"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "id": "2017da96-63c6-44ca-ab41-c358853a8c2b",
      "key": "Weststrate2009",
      "title": "Abstractions for Asynchronous User Interfaces in Web Applications",
      "month": "",
      "year": "2009",
      "doi": "http://swerl.tudelft.nl/twiki/pub/Main/PastAndCurrentMScProjects/Thesis_Michel_Weststrate.pdf",
      "note": "",
      "abstract": "The web has become a popular target platform for applications. The\r\ndifferences in user experience between browser based applications and\r\ndesktop applications have become smaller due to the enriched user\r\nexperience enabled by the Ajax technique. Nevertheless, developing Ajax\r\nbased internet applications is a complex task and requires the developer to\r\nintertwine many standards and languages. This thesis presents the\r\nWebDSLx extension for the WebDSL compiler. The compiler and\r\nextension allows the developer to create rich internet applications in an\r\nintuitive way, since many details are taken care of by the abstractions\r\nprovided in the model. WebDSLx allows to define a rich interaction\r\npattern between user and application, based on the concepts of delta\r\nupdates and reusable widgets. The abstractions provided are based on an\r\nanalysis of proven successful abstractions in the development process of\r\ndesktop applications. As a result, the WebDSLx extension provides a\r\nsimple model based approach to a formerly tedious task.",
      "url": "https://researchr.org/publication/Weststrate2009",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/michel-weststrate",
            "id": "ded22e97-32b3-4ca6-baa8-d90831a738ec",
            "key": "michel-weststrate",
            "name": "Michel Weststrate"
          }
        }
      ]
    },
    {
      "type": "article",
      "journal": "Journal of Symbolic Computation",
      "volumenumber": "46",
      "issuenumber": "2",
      "firstpage": 0,
      "lastpage": 0,
      "id": "2861607e-cb6a-4eff-ac5e-74ea4cbf7d2f",
      "key": "HemelGKV2011",
      "title": "Static Consistency Checking of Web Applications with WebDSL",
      "month": "February",
      "year": "2011",
      "doi": "http://dx.doi.org/10.1016/j.jsc.2010.08.006",
      "note": "",
      "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 applications 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.\r\n\r\nTo 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.",
      "url": "https://researchr.org/publication/HemelGKV2011",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/zef-hemel",
            "id": "7816809a-e2e6-42c6-8c44-481a821fb0bd",
            "key": "zef-hemel",
            "name": "Zef Hemel"
          },
          "person": {
            "url": "https://researchr.org/profile/zefhemel",
            "id": "947901fa-e910-454b-8546-c514c5a191be",
            "key": "zefhemel",
            "fullname": "Zef  Hemel"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/danny-groenewegen",
            "id": "79a481d2-fb45-404b-9192-8e9b286f9338",
            "key": "danny-groenewegen",
            "name": "Danny Groenewegen"
          },
          "person": {
            "url": "https://researchr.org/profile/dannymgroenewegen",
            "id": "f50a3666-08fe-4b30-9734-181aed455bb1",
            "key": "dannymgroenewegen",
            "fullname": "Danny M.  Groenewegen"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/lennart-c.-l.-kats",
            "id": "f6b6789b-a32a-417c-a90e-c37a12f25728",
            "key": "lennart-c.-l.-kats",
            "name": "Lennart C. L. Kats"
          },
          "person": {
            "url": "https://researchr.org/profile/lennartclkats",
            "id": "6e29bb96-28c9-4c76-915d-160ef1947602",
            "key": "lennartclkats",
            "fullname": "Lennart C. L. Kats"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "gttse",
      "conferenceYear": "",
      "booktitle": "Generative and Transformational Techniques in Software Engineering II, International Summer School, GTTSE 2007",
      "volume": "5235",
      "number": "",
      "series": "Lecture Notes in Computer Science",
      "address": "Braga, Portugal",
      "organization": "",
      "publisher": "Springer",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/ralf-l%C3%A4mmel",
            "id": "1cd5b8f9-4e0d-4121-a444-1a1c3466e59c",
            "key": "ralf-lämmel",
            "name": "Ralf Lämmel"
          },
          "person": {
            "url": "https://researchr.org/profile/ralflaemmel",
            "id": "1605f420-86fe-4521-9126-c8999c59b3ed",
            "key": "ralflaemmel",
            "fullname": "Ralf Lämmel"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/joost-visser",
            "id": "a2685a71-4f48-405f-8d9b-0c4757bcef35",
            "key": "joost-visser",
            "name": "Joost Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/joostvisser",
            "id": "96380068-84b9-436b-ab9b-40d90a566d94",
            "key": "joostvisser",
            "fullname": "Joost Visser"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/jo%C3%A3o-saraiva",
            "id": "55af31cd-7a9b-4070-894f-8497836f6610",
            "key": "joão-saraiva",
            "name": "João Saraiva"
          },
          "person": {
            "url": "https://researchr.org/profile/joosaraiva",
            "id": "5c5d9adc-5293-437a-80e2-bf1044dc8837",
            "key": "joosaraiva",
            "fullname": "João Saraiva"
          }
        }
      ],
      "firstpage": 291,
      "lastpage": 373,
      "id": "29f153a5-8b61-4bf9-96f8-33d1b849c1c3",
      "key": "Visser07",
      "title": "WebDSL: A Case Study in Domain-Specific Language Engineering",
      "month": "",
      "year": "2007",
      "doi": "http://dx.doi.org/10.1007/978-3-540-88643-3_7",
      "note": "",
      "abstract": " The goal of domain-speciﬁc languages (DSLs) is to increase \r\nthe productivity of software engineers by abstracting from low-level boil- \r\nerplate code. Introduction of DSLs in the software development process \r\nrequires a smooth workﬂow for the production of DSLs themselves. This \r\nrequires technology for designing and implementing DSLs, but also a \r\nmethodology for using that technology. That is, a collection of guidelines, \r\ndesign patterns, and reusable DSL components that show developers how \r\nto tackle common language design and implementation issues. This paper \r\npresents a case study in domain-speciﬁc language engineering. It reports \r\non a pro ject in which the author designed and built WebDSL, a DSL \r\nfor web applications with a rich data model, using several DSLs for DSL \r\nengineering: SDF for syntax deﬁnition and Stratego/XT for code gener- \r\nation. The paper follows the stages in the development of the DSL. The \r\ncontributions of the paper are three-fold. (1) A tutorial in the application \r\nof the speciﬁc SDF and Stratego/XT technology for building DSLs. (2) A \r\ndescription of an incremental DSL development process. (3) A domain- \r\nspeciﬁc language for web-applications with rich data models. The paper \r\nconcludes with a survey of related approaches. \r\n",
      "url": "https://researchr.org/publication/Visser07",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "type": "article",
      "journal": "IEEE Software",
      "volumenumber": "27",
      "issuenumber": "5",
      "firstpage": 31,
      "lastpage": 37,
      "id": "2ca8b403-51a1-488a-9aba-6a7652f6c283",
      "key": "GroenewegenHV10",
      "title": "Separation of Concerns and Linguistic Integration in WebDSL",
      "month": "",
      "year": "2010",
      "doi": "http://dx.doi.org/10.1109/MS.2010.92",
      "note": "",
      "abstract": "WebDSL is a domain-specific language for Web information systems that maintains separation of concerns while integrating its sublanguages, enabling consistency checking and reusing common language concepts.",
      "url": "https://researchr.org/publication/GroenewegenHV10",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/danny-m.-groenewegen",
            "id": "46cf4818-8ce7-4644-9ee1-414e4c4960e7",
            "key": "danny-m.-groenewegen",
            "name": "Danny M. Groenewegen"
          },
          "person": {
            "url": "https://researchr.org/profile/dannymgroenewegen",
            "id": "f50a3666-08fe-4b30-9734-181aed455bb1",
            "key": "dannymgroenewegen",
            "fullname": "Danny M.  Groenewegen"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/zef-hemel",
            "id": "7816809a-e2e6-42c6-8c44-481a821fb0bd",
            "key": "zef-hemel",
            "name": "Zef Hemel"
          },
          "person": {
            "url": "https://researchr.org/profile/zefhemel",
            "id": "947901fa-e910-454b-8546-c514c5a191be",
            "key": "zefhemel",
            "fullname": "Zef  Hemel"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "oopsla",
      "conferenceYear": "",
      "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",
      "volume": "",
      "number": "",
      "series": "",
      "address": "",
      "organization": "",
      "publisher": "ACM",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/gail-e.-harris",
            "id": "af52a55a-04f9-476c-a946-013c96a7023e",
            "key": "gail-e.-harris",
            "name": "Gail E. Harris"
          }
        }
      ],
      "firstpage": 779,
      "lastpage": 780,
      "id": "32577b4a-6586-41f6-bb9e-ed0aeb8b74e4",
      "key": "GroenewegenHKV08",
      "title": "WebDSL: a domain-specific language for dynamic web applications",
      "month": "",
      "year": "2008",
      "doi": "http://doi.acm.org/10.1145/1449814.1449858",
      "note": "",
      "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.",
      "url": "https://researchr.org/publication/GroenewegenHKV08",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/danny-m.-groenewegen",
            "id": "46cf4818-8ce7-4644-9ee1-414e4c4960e7",
            "key": "danny-m.-groenewegen",
            "name": "Danny M. Groenewegen"
          },
          "person": {
            "url": "https://researchr.org/profile/dannymgroenewegen",
            "id": "f50a3666-08fe-4b30-9734-181aed455bb1",
            "key": "dannymgroenewegen",
            "fullname": "Danny M.  Groenewegen"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/zef-hemel",
            "id": "7816809a-e2e6-42c6-8c44-481a821fb0bd",
            "key": "zef-hemel",
            "name": "Zef Hemel"
          },
          "person": {
            "url": "https://researchr.org/profile/zefhemel",
            "id": "947901fa-e910-454b-8546-c514c5a191be",
            "key": "zefhemel",
            "fullname": "Zef  Hemel"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/lennart-c.-l.-kats",
            "id": "f6b6789b-a32a-417c-a90e-c37a12f25728",
            "key": "lennart-c.-l.-kats",
            "name": "Lennart C. L. Kats"
          },
          "person": {
            "url": "https://researchr.org/profile/lennartclkats",
            "id": "6e29bb96-28c9-4c76-915d-160ef1947602",
            "key": "lennartclkats",
            "fullname": "Lennart C. L. Kats"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "id": "34be3b69-948b-4f2b-9f57-64cc38515a74",
      "key": "dagstuhl:2007P7051",
      "title": "Programming Paradigms for the Web: Web Programming and Web Services, 28.01. - 02.02.2007",
      "month": "",
      "year": "2007",
      "doi": "",
      "note": "",
      "abstract": "",
      "url": "https://researchr.org/publication/dagstuhl%3A2007P7051",
      "authors": []
    },
    {
      "type": "inproceedings",
      "conference": "SLE",
      "conferenceYear": "2009",
      "booktitle": "Software Language Engineering, Second International Conference, SLE 2009, Denver, CO, USA, October 5-6, 2009, Revised Selected Papers",
      "volume": "",
      "number": "",
      "series": "Lecture Notes in Computer Science",
      "address": "",
      "organization": "",
      "publisher": "Springer",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/mark-van-den-brand",
            "id": "ec0da5fa-6834-4952-9fff-9c4fecce7cb7",
            "key": "mark-van-den-brand",
            "name": "Mark van den Brand"
          },
          "person": {
            "url": "https://researchr.org/profile/markgjvandenbrand",
            "id": "97855301-a569-413e-8e19-c2c376c50842",
            "key": "markgjvandenbrand",
            "fullname": "Mark G. J. van den Brand"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/dragan-gasevic",
            "id": "4e952583-7834-4817-8b6e-04feaa97fad9",
            "key": "dragan-gasevic",
            "name": "Dragan Gasevic"
          },
          "person": {
            "url": "https://researchr.org/profile/dragangasevic",
            "id": "892937c7-d9f9-49a8-89e6-734b1fb47253",
            "key": "dragangasevic",
            "fullname": "Dragan Gasevic"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/jeff-gray",
            "id": "fefac3e9-8142-40df-9285-12943249e210",
            "key": "jeff-gray",
            "name": "Jeff Gray"
          },
          "person": {
            "url": "https://researchr.org/profile/jeffgray",
            "id": "474ab36e-49c3-4f85-aa00-417d49005952",
            "key": "jeffgray",
            "fullname": "Jeffrey G. Gray"
          }
        }
      ],
      "firstpage": 0,
      "lastpage": 0,
      "id": "3cbb4cf5-3a01-4ad3-a434-e10a45844b7c",
      "key": "GroenewegenV09-SLE",
      "title": "Integration of Data Validation and User Interface Concerns in a DSL for Web Applications",
      "month": "",
      "year": "2010",
      "doi": "https://doi.org/10.1007/978-3-642-12107-4_13",
      "note": "",
      "abstract": "Data validation rules constitute the constraints that data input and pro-\r\ncessing must adhere to in addition to the structural constraints imposed by a data\r\nmodel. Web modeling tools do not address data validation concerns explicitly,\r\nhampering full code generation and model expressivity. Web application frame-\r\nworks do not offer a consistent interface for data validation. In this paper, we\r\npresent a solution for the integration of declarative data validation rules with\r\nuser interface models in the domain of web applications, unifying syntax, mecha-\r\nnisms for error handling, and semantics of validation checks, and covering value\r\nwell-formedness, data invariants, input assertions, and action assertions. We have\r\nimplemented the approach in WebDSL, a domain-specific language for the defi-\r\nnition of web applications.\r\n",
      "url": "https://researchr.org/publication/GroenewegenV09-SLE",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/danny-m.-groenewegen",
            "id": "46cf4818-8ce7-4644-9ee1-414e4c4960e7",
            "key": "danny-m.-groenewegen",
            "name": "Danny M. Groenewegen"
          },
          "person": {
            "url": "https://researchr.org/profile/dannymgroenewegen",
            "id": "f50a3666-08fe-4b30-9734-181aed455bb1",
            "key": "dannymgroenewegen",
            "fullname": "Danny M.  Groenewegen"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "type": "article",
      "journal": "J. Symb. Comput.",
      "volumenumber": "46",
      "issuenumber": "2",
      "firstpage": 150,
      "lastpage": 182,
      "id": "400b1f51-6715-4889-b92a-3325a437ee76",
      "key": "HemelGKV11",
      "title": "Static consistency checking of web applications with WebDSL",
      "month": "",
      "year": "2011",
      "doi": "https://doi.org/10.1016/j.jsc.2010.08.006",
      "note": "",
      "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.\r\n\r\nTo 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.",
      "url": "https://researchr.org/publication/HemelGKV11",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/zef-hemel",
            "id": "7816809a-e2e6-42c6-8c44-481a821fb0bd",
            "key": "zef-hemel",
            "name": "Zef Hemel"
          },
          "person": {
            "url": "https://researchr.org/profile/zefhemel",
            "id": "947901fa-e910-454b-8546-c514c5a191be",
            "key": "zefhemel",
            "fullname": "Zef  Hemel"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/danny-m.-groenewegen",
            "id": "46cf4818-8ce7-4644-9ee1-414e4c4960e7",
            "key": "danny-m.-groenewegen",
            "name": "Danny M. Groenewegen"
          },
          "person": {
            "url": "https://researchr.org/profile/dannymgroenewegen",
            "id": "f50a3666-08fe-4b30-9734-181aed455bb1",
            "key": "dannymgroenewegen",
            "fullname": "Danny M.  Groenewegen"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/lennart-c.-l.-kats",
            "id": "f6b6789b-a32a-417c-a90e-c37a12f25728",
            "key": "lennart-c.-l.-kats",
            "name": "Lennart C. L. Kats"
          },
          "person": {
            "url": "https://researchr.org/profile/lennartclkats",
            "id": "6e29bb96-28c9-4c76-915d-160ef1947602",
            "key": "lennartclkats",
            "fullname": "Lennart C. L. Kats"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "dagstuhl",
      "conferenceYear": "",
      "booktitle": "Programming Paradigms for the Web: Web Programming and Web Services, 28.01. - 02.02.2007",
      "volume": "07051",
      "number": "",
      "series": "Dagstuhl Seminar Proceedings",
      "address": "",
      "organization": "",
      "publisher": "Internationales Begegnungs- und Forschungszentrum fuer Informatik (IBFI), Schloss Dagstuhl, Germany",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/richard-hull",
            "id": "c85d41e2-b10f-4aab-a8b8-551c2529a7f8",
            "key": "richard-hull",
            "name": "Richard Hull"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/peter-thiemann",
            "id": "8c630c88-f069-456c-95b8-95f0884af64b",
            "key": "peter-thiemann",
            "name": "Peter Thiemann"
          },
          "person": {
            "url": "https://researchr.org/profile/peterthiemann",
            "id": "43266198-6fe7-469e-9451-93d569b07cb1",
            "key": "peterthiemann",
            "fullname": "Peter Thiemann"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/philip-wadler",
            "id": "f8c4f726-caec-4bcf-889d-86917caa1ede",
            "key": "philip-wadler",
            "name": "Philip Wadler"
          },
          "person": {
            "url": "https://researchr.org/profile/philipwadler",
            "id": "682828ae-306b-49ea-b847-6eda8680b7d9",
            "key": "philipwadler",
            "fullname": "Philip Wadler"
          }
        }
      ],
      "firstpage": 0,
      "lastpage": 0,
      "id": "5cc26b87-a0fe-4b3c-b51a-2df1eed6702d",
      "key": "HullTW07",
      "title": "07051 Executive Summary -- Programming Paradigms for the Web: Web Programming and Web Services",
      "month": "",
      "year": "2007",
      "doi": "http://drops.dagstuhl.de/opus/volltexte/2007/1125",
      "note": "",
      "abstract": "The world-wide web raises a variety of new programming challenges. To name a few: programming at the level of the web browser, data-centric approaches, and attempts to automatically discover and compose web services. This seminar brought together researchers from the web programming and web services communities and strove to engage them in communication with each other. The seminar was held in an unusual style, in a mixture of short presentations and in-depth discussion sessions in small groups. This style enabled the participants to identify and discuss burning questions in small birds-of-a-feather sessions as well as in large plenary sessions. It required active participation of all attendees.",
      "url": "https://researchr.org/publication/HullTW07",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/richard-hull",
            "id": "c85d41e2-b10f-4aab-a8b8-551c2529a7f8",
            "key": "richard-hull",
            "name": "Richard Hull"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/peter-thiemann",
            "id": "8c630c88-f069-456c-95b8-95f0884af64b",
            "key": "peter-thiemann",
            "name": "Peter Thiemann"
          },
          "person": {
            "url": "https://researchr.org/profile/peterthiemann",
            "id": "43266198-6fe7-469e-9451-93d569b07cb1",
            "key": "peterthiemann",
            "fullname": "Peter Thiemann"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/philip-wadler",
            "id": "f8c4f726-caec-4bcf-889d-86917caa1ede",
            "key": "philip-wadler",
            "name": "Philip Wadler"
          },
          "person": {
            "url": "https://researchr.org/profile/philipwadler",
            "id": "682828ae-306b-49ea-b847-6eda8680b7d9",
            "key": "philipwadler",
            "fullname": "Philip Wadler"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "SLE",
      "conferenceYear": "2009",
      "booktitle": "Software Language Engineering, Second International Conference, SLE 2009, Denver, CO, USA, October 5-6, 2009, Revised Selected Papers",
      "volume": "",
      "number": "",
      "series": "Lecture Notes in Computer Science",
      "address": "",
      "organization": "",
      "publisher": "Springer",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/mark-van-den-brand",
            "id": "ec0da5fa-6834-4952-9fff-9c4fecce7cb7",
            "key": "mark-van-den-brand",
            "name": "Mark van den Brand"
          },
          "person": {
            "url": "https://researchr.org/profile/markgjvandenbrand",
            "id": "97855301-a569-413e-8e19-c2c376c50842",
            "key": "markgjvandenbrand",
            "fullname": "Mark G. J. van den Brand"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/dragan-gasevic",
            "id": "4e952583-7834-4817-8b6e-04feaa97fad9",
            "key": "dragan-gasevic",
            "name": "Dragan Gasevic"
          },
          "person": {
            "url": "https://researchr.org/profile/dragangasevic",
            "id": "892937c7-d9f9-49a8-89e6-734b1fb47253",
            "key": "dragangasevic",
            "fullname": "Dragan Gasevic"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/jeff-gray",
            "id": "fefac3e9-8142-40df-9285-12943249e210",
            "key": "jeff-gray",
            "name": "Jeff Gray"
          },
          "person": {
            "url": "https://researchr.org/profile/jeffgray",
            "id": "474ab36e-49c3-4f85-aa00-417d49005952",
            "key": "jeffgray",
            "fullname": "Jeffrey G. Gray"
          }
        }
      ],
      "firstpage": 0,
      "lastpage": 0,
      "id": "5db285e2-5af3-4731-b0d1-3bd585251ed1",
      "key": "HemelVisser:2009",
      "title": "PIL: A Platform Independent Language for Retargetable DSLs",
      "month": "",
      "year": "2010",
      "doi": "",
      "note": "",
      "abstract": "Intermediate languages are used in compiler construction to simplify\r\nretargeting compilers to multiple machine architectures. In the\r\nimplementation of \\emph{domain-specific languages} (DSLs), compilers\r\ntypically generate high-level source code, rather than low-level\r\nmachine instructions.  DSL compilers target a software platform, i.e.\r\na programming language with a set of libraries, deployable on one or\r\nmore operating systems.  DSLs enable targeting \\emph{multiple}\r\nsoftware platforms if its abstractions are platform independent. While\r\ntransformations from DSL to each targeted platform are often\r\nconceptually very similar, there is little reuse between\r\ntransformations due to syntactic and API differences of the target\r\nplatforms, making supporting multiple platforms expensive. In this\r\npaper, we discuss the design and implementation of PIL, a Platform\r\nIndependent Language, an intermediate language providing a layer of\r\nabstraction between DSL and target platform code, abstracting from\r\nsyntactic and API differences between platforms, thereby removing the\r\nneed for platform-specific transformations. We discuss the use of PIL\r\nin an implemementation of WebDSL, a DSL for building web applications.\r\n",
      "url": "https://researchr.org/publication/HemelVisser%3A2009",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/zef-hemel",
            "id": "7816809a-e2e6-42c6-8c44-481a821fb0bd",
            "key": "zef-hemel",
            "name": "Zef Hemel"
          },
          "person": {
            "url": "https://researchr.org/profile/zefhemel",
            "id": "947901fa-e910-454b-8546-c514c5a191be",
            "key": "zefhemel",
            "fullname": "Zef  Hemel"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "icwe",
      "conferenceYear": "",
      "booktitle": "Web Engineering, 7th International Conference, ICWE 2007, Como, Italy, July 16-20, 2007, Proceedings",
      "volume": "4607",
      "number": "",
      "series": "Lecture Notes in Computer Science",
      "address": "",
      "organization": "",
      "publisher": "Springer",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/luciano-baresi",
            "id": "4278163f-7c36-41e5-99bd-f63aa89317b0",
            "key": "luciano-baresi",
            "name": "Luciano Baresi"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/piero-fraternali",
            "id": "250a1638-2267-48d4-9061-e9a9531f6922",
            "key": "piero-fraternali",
            "name": "Piero Fraternali"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/geert-jan-houben",
            "id": "1b1230f8-e885-4039-baf9-4017f7b9eafe",
            "key": "geert-jan-houben",
            "name": "Geert-Jan Houben"
          },
          "person": {
            "url": "https://researchr.org/profile/geertjanhouben",
            "id": "ff8d55cf-ca7c-4d3f-9abb-70afdc6584f3",
            "key": "geertjanhouben",
            "fullname": "Geert-Jan Houben"
          }
        }
      ],
      "firstpage": 152,
      "lastpage": 166,
      "id": "69402b89-920e-41a0-a8a5-f6de7de5b88c",
      "key": "GinzburgRUD07",
      "title": "Transparent Interface Composition in Web Applications",
      "month": "",
      "year": "2007",
      "doi": "http://dx.doi.org/10.1007/978-3-540-73597-7_12",
      "note": "",
      "abstract": "In this paper we present an approach for oblivious composition of Web user interfaces, particularly for volatile functionality. Our approach, which is inspired on well-known techniques for advanced separation of concerns such as aspect-oriented software design, allows to clearly separate the design of the core’s interface from the one corresponding to more volatile services, i.e. those that are offered for short periods of time. Both interfaces are oblivious from each other and can be seamlessly composed using a transformation language. We show that in this way we simplify the application’s evolution by preventing intrusive edition of the interface code. Using some illustrative examples we focus both on design and implementation issues, presenting an extension of the OOHDM design model which supports modular design of volatile functionality.\r\n",
      "url": "https://researchr.org/publication/GinzburgRUD07",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/jeronimo-ginzburg",
            "id": "7b0d4100-f3b6-4883-ac82-4932b444d608",
            "key": "jeronimo-ginzburg",
            "name": "Jeronimo Ginzburg"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/gustavo-rossi",
            "id": "c515128f-8767-4721-a703-0d0ce3f13db9",
            "key": "gustavo-rossi",
            "name": "Gustavo Rossi"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/matias-urbieta",
            "id": "ddf9c6b9-9a1b-4cdb-8e8a-79414ba3a229",
            "key": "matias-urbieta",
            "name": "Matias Urbieta"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/damiano-distante",
            "id": "5da5a75f-f8fb-4196-bb14-df95b11549d1",
            "key": "damiano-distante",
            "name": "Damiano Distante"
          }
        }
      ]
    },
    {
      "type": "article",
      "journal": "ERCIM News",
      "volumenumber": "72",
      "issuenumber": "",
      "firstpage": 0,
      "lastpage": 0,
      "id": "7b80012d-241f-473a-82c3-249a727f7c79",
      "key": "Berg08a",
      "title": "Seaside -- Advanced Composition and Control Flow for Dynamic Web Applications",
      "month": "jan",
      "year": "2008",
      "doi": "",
      "note": "",
      "abstract": "Page-centric Web application frameworks fail to offer adequate solutions to model composition and control flow. Seaside allows Web applications to be developed in the same way as desktop applications. Control flow is modelled as a continuous piece of code, and components may be composed, configured and nested as one would expect from traditional user interface frameworks.",
      "url": "https://researchr.org/publication/Berg08a",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/alexandre-bergel",
            "id": "f40004d4-4945-48df-aaa4-ae4ad8b3323e",
            "key": "alexandre-bergel",
            "name": "Alexandre Bergel"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/st%C3%A9phane-ducasse",
            "id": "a8402331-b262-46d9-98ca-42dcf95f91f8",
            "key": "stéphane-ducasse",
            "name": "Stéphane Ducasse"
          },
          "person": {
            "url": "https://researchr.org/profile/stphaneducasse",
            "id": "76be4438-8518-4862-88eb-0cef5add5a04",
            "key": "stphaneducasse",
            "fullname": "Stéphane Ducasse"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/lukas-renggli",
            "id": "b338b19a-9b0f-4b2b-93c1-18d4054e39d4",
            "key": "lukas-renggli",
            "name": "Lukas Renggli"
          },
          "person": {
            "url": "https://researchr.org/profile/lukasrenggli",
            "id": "74291a95-e47e-4edd-972a-1198b9345b24",
            "key": "lukasrenggli",
            "fullname": "Lukas Renggli"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "icwe",
      "conferenceYear": "",
      "booktitle": "Web Engineering, 9th International Conference, ICWE 2009, San Sebastián, Spain, June 24-26, 2009, Proceedings",
      "volume": "5648",
      "number": "",
      "series": "Lecture Notes in Computer Science",
      "address": "",
      "organization": "",
      "publisher": "Springer",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/martin-gaedke",
            "id": "b56d5879-c8d1-40cf-8784-5a471c01286a",
            "key": "martin-gaedke",
            "name": "Martin Gaedke"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/michael-grossniklaus",
            "id": "e95e55b8-7c43-4546-80a8-e35abf59642f",
            "key": "michael-grossniklaus",
            "name": "Michael Grossniklaus"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/oscar-d%C3%ADaz",
            "id": "f4847a25-3257-4a82-963b-078fc77379a6",
            "key": "oscar-díaz",
            "name": "Oscar Díaz"
          }
        }
      ],
      "firstpage": 518,
      "lastpage": 522,
      "id": "7c1dab08-1cda-4141-98b5-ee29278b3fff",
      "key": "CicchettiREMP09",
      "title": "beContent: A Model-Driven Platform for Designing and Maintaining Web Applications",
      "month": "",
      "year": "2009",
      "doi": "http://dx.doi.org/10.1007/978-3-642-02818-2_52",
      "note": "",
      "abstract": "",
      "url": "https://researchr.org/publication/CicchettiREMP09",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/antonio-cicchetti",
            "id": "289429fb-5ad3-472a-9617-3eea7ce1dbb6",
            "key": "antonio-cicchetti",
            "name": "Antonio Cicchetti"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/davide-di-ruscio",
            "id": "8c833841-06a2-41b0-a07e-b7157540e19d",
            "key": "davide-di-ruscio",
            "name": "Davide Di Ruscio"
          },
          "person": {
            "url": "https://researchr.org/profile/davidediruscio",
            "id": "686fef69-d225-49b8-a88a-3df8ca43b3f9",
            "key": "davidediruscio",
            "fullname": "Davide Di Ruscio"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/romina-eramo",
            "id": "e38b69b1-4516-44ac-b9ed-f8b45d47c2fc",
            "key": "romina-eramo",
            "name": "Romina Eramo"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/francesco-maccarrone",
            "id": "5b3aa31c-9fe6-429e-8df9-a81cf26d95a9",
            "key": "francesco-maccarrone",
            "name": "Francesco Maccarrone"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/alfonso-pierantonio",
            "id": "6bdb8120-94a2-4358-a8ff-970aeb5a607f",
            "key": "alfonso-pierantonio",
            "name": "Alfonso Pierantonio"
          },
          "person": {
            "url": "https://researchr.org/profile/alfonsopierantonio",
            "id": "b3878a28-8c5a-4748-8d0d-392889211b46",
            "key": "alfonsopierantonio",
            "fullname": "Alfonso Pierantonio"
          }
        }
      ]
    },
    {
      "type": "article",
      "journal": "sosym",
      "volumenumber": "12",
      "issuenumber": "1",
      "firstpage": 35,
      "lastpage": 52,
      "id": "7f489c91-d67c-4ecf-a8fd-1fa6b55e6f62",
      "key": "GroenewegenVisser2013",
      "title": "Integration of Data Validation and User Interface Concerns in a DSL for Web Applications",
      "month": "February",
      "year": "2013",
      "doi": "http://dx.doi.org/10.1007/s10270-010-0173-9",
      "note": "",
      "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.",
      "url": "https://researchr.org/publication/GroenewegenVisser2013",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/danny-groenewegen",
            "id": "79a481d2-fb45-404b-9192-8e9b286f9338",
            "key": "danny-groenewegen",
            "name": "Danny Groenewegen"
          },
          "person": {
            "url": "https://researchr.org/profile/dannymgroenewegen",
            "id": "f50a3666-08fe-4b30-9734-181aed455bb1",
            "key": "dannymgroenewegen",
            "fullname": "Danny M.  Groenewegen"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "oopsla",
      "conferenceYear": "",
      "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",
      "volume": "",
      "number": "",
      "series": "",
      "address": "",
      "organization": "",
      "publisher": "ACM",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/shail-arora",
            "id": "0c07716a-6765-46eb-adf2-127d0d707917",
            "key": "shail-arora",
            "name": "Shail Arora"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/gary-t.-leavens",
            "id": "1a42cab0-1af8-42b8-b90d-096a5ec5440d",
            "key": "gary-t.-leavens",
            "name": "Gary T. Leavens"
          }
        }
      ],
      "firstpage": 797,
      "lastpage": 798,
      "id": "8096ad25-8bf7-4954-9332-84e850384286",
      "key": "GroenewegenV09-demo",
      "title": "Weaving web applications with WebDSL: (demonstration)",
      "month": "",
      "year": "2009",
      "doi": "http://doi.acm.org/10.1145/1639950.1640020",
      "note": "",
      "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.",
      "url": "https://researchr.org/publication/GroenewegenV09-demo",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/danny-m.-groenewegen",
            "id": "46cf4818-8ce7-4644-9ee1-414e4c4960e7",
            "key": "danny-m.-groenewegen",
            "name": "Danny M. Groenewegen"
          },
          "person": {
            "url": "https://researchr.org/profile/dannymgroenewegen",
            "id": "f50a3666-08fe-4b30-9734-181aed455bb1",
            "key": "dannymgroenewegen",
            "fullname": "Danny M.  Groenewegen"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "id": "88397e33-5bf8-4c8b-92eb-3ba509337faf",
      "key": "Visser:2009",
      "title": "researchr.org",
      "month": "",
      "year": "2009",
      "doi": "http://researchr.org",
      "note": "Researchr is a web service for indexing, managing, and sharing bibliographic information of scientific publications for researchers by researchers.",
      "abstract": "Researchr is a web service for indexing, managing, and sharing bibliographic information of scientific publications for researchers by researchers.",
      "url": "https://researchr.org/publication/Visser%3A2009",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "icwe",
      "conferenceYear": "",
      "booktitle": "Proceedings of the Eighth International Conference on Web Engineering, ICWE 2008, 14-18 July 2008, Yorktown Heights, New York, USA",
      "volume": "",
      "number": "",
      "series": "",
      "address": "",
      "organization": "",
      "publisher": "IEEE",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/daniel-schwabe",
            "id": "2d04b4d6-1f36-42d7-9ed5-cf3eb57476ab",
            "key": "daniel-schwabe",
            "name": "Daniel Schwabe"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/francisco-curbera",
            "id": "0de9c4c8-6721-462d-bd06-379db775070f",
            "key": "francisco-curbera",
            "name": "Francisco Curbera"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/paul-dantzig",
            "id": "e6f58540-1442-46a5-bcd0-1142327d1f5f",
            "key": "paul-dantzig",
            "name": "Paul Dantzig"
          }
        }
      ],
      "firstpage": 175,
      "lastpage": 188,
      "id": "8e9937b6-ec04-40f1-ae0b-0658da576d24",
      "key": "GroenewegenV08",
      "title": "Declarative Access Control for WebDSL: Combining Language Integration and Separation of Concerns",
      "month": "",
      "year": "2008",
      "doi": "http://dx.doi.org/10.1109/ICWE.2008.15",
      "note": "",
      "abstract": "In this paper, we present the extension of WebDSL, a domain-specific\r\nlanguage for web application development, with abstractions for\r\ndeclarative definition of access control.  The extension supports the\r\ndefinition of a wide range of access control policies concisely and\r\ntransparently as a separate concern.  In addition to regulating the\r\naccess to pages and actions, access control rules are used to infer\r\nnavigation options not accessible to the current user, preventing the\r\npresentation of inaccessible links.  The extension is an illustration\r\nof a general approach to the design of domain-specific languages for\r\ndifferent technical domains to support separation of concerns in\r\napplication development, while preserving linguistic integration. This\r\napproach is realized by means of a transformational semantics that\r\nweaves separately defined aspects into an integrated implementation.\r\n",
      "url": "https://researchr.org/publication/GroenewegenV08",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/danny-m.-groenewegen",
            "id": "46cf4818-8ce7-4644-9ee1-414e4c4960e7",
            "key": "danny-m.-groenewegen",
            "name": "Danny M. Groenewegen"
          },
          "person": {
            "url": "https://researchr.org/profile/dannymgroenewegen",
            "id": "f50a3666-08fe-4b30-9734-181aed455bb1",
            "key": "dannymgroenewegen",
            "fullname": "Danny M.  Groenewegen"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "DSM",
      "conferenceYear": "",
      "booktitle": "Proceedings of the 8th OOPSLA Workshop on Domain Specific Modelling (DSM\u002708)",
      "volume": "",
      "number": "",
      "series": "",
      "address": "Nashville, Tennessee, USA",
      "organization": "",
      "publisher": "",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/jeff-gray",
            "id": "fefac3e9-8142-40df-9285-12943249e210",
            "key": "jeff-gray",
            "name": "Jeff Gray"
          },
          "person": {
            "url": "https://researchr.org/profile/jeffgray",
            "id": "474ab36e-49c3-4f85-aa00-417d49005952",
            "key": "jeffgray",
            "fullname": "Jeffrey G. Gray"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/jonathan-sprinkle",
            "id": "16e79076-7883-45fe-90fc-0c3977c3d347",
            "key": "jonathan-sprinkle",
            "name": "Jonathan Sprinkle"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/juha-pekka-tolvanen",
            "id": "b80a1d8a-78dc-416b-94f1-8f8a509c89d1",
            "key": "juha-pekka-tolvanen",
            "name": "Juha-Pekka Tolvanen"
          },
          "person": {
            "url": "https://researchr.org/profile/juhapekkatolvanen",
            "id": "6db1c895-c1d2-4236-8222-8a3a2f75a3fa",
            "key": "juhapekkatolvanen",
            "fullname": "Juha-Pekka Tolvanen"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/matti-rossi",
            "id": "742d5829-d5fa-4b91-9401-13da2172a210",
            "key": "matti-rossi",
            "name": "Matti Rossi"
          }
        }
      ],
      "firstpage": 0,
      "lastpage": 0,
      "id": "905a355c-2b70-4656-b9db-f4dd7c2eaa19",
      "key": "GroenewegenHKV08-DSM",
      "title": "When Frameworks Let You Down. Platform-Imposed Constraints on the Design and Evolution of Domain-Specific Languages",
      "month": "October",
      "year": "2008",
      "doi": "",
      "note": "",
      "abstract": "Application frameworks encapsulate domain knowledge in a reusable\r\nlibrary, providing abstractions for a particular domain. As such, they\r\ncan form the basis for domain-specific languages, which may offer\r\nnotational constructs, static analysis, and optimizations specific for\r\nthe domain. Additional abstractions can be incrementally added on top\r\nof a domain-specific, following an inductive approach towards its\r\ndesign, evolving the language as new domain insights are acquired. A\r\nproblem arises when such additions do not align well with the\r\nunderlying framework. In this paper, we provide different examples of\r\nthis problem and describe scenarios of dealing with it.",
      "url": "https://researchr.org/publication/GroenewegenHKV08-DSM",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/danny-m.-groenewegen",
            "id": "46cf4818-8ce7-4644-9ee1-414e4c4960e7",
            "key": "danny-m.-groenewegen",
            "name": "Danny M. Groenewegen"
          },
          "person": {
            "url": "https://researchr.org/profile/dannymgroenewegen",
            "id": "f50a3666-08fe-4b30-9734-181aed455bb1",
            "key": "dannymgroenewegen",
            "fullname": "Danny M.  Groenewegen"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/zef-hemel",
            "id": "7816809a-e2e6-42c6-8c44-481a821fb0bd",
            "key": "zef-hemel",
            "name": "Zef Hemel"
          },
          "person": {
            "url": "https://researchr.org/profile/zefhemel",
            "id": "947901fa-e910-454b-8546-c514c5a191be",
            "key": "zefhemel",
            "fullname": "Zef  Hemel"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/lennart-c.-l.-kats",
            "id": "f6b6789b-a32a-417c-a90e-c37a12f25728",
            "key": "lennart-c.-l.-kats",
            "name": "Lennart C. L. Kats"
          },
          "person": {
            "url": "https://researchr.org/profile/lennartclkats",
            "id": "6e29bb96-28c9-4c76-915d-160ef1947602",
            "key": "lennartclkats",
            "fullname": "Lennart C. L. Kats"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "pldi",
      "conferenceYear": "",
      "booktitle": "Proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2010, Toronto, Ontario, Canada, June 5-10, 2010",
      "volume": "",
      "number": "",
      "series": "",
      "address": "",
      "organization": "",
      "publisher": "ACM",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/benjamin-g.-zorn",
            "id": "956cf56d-c3dc-4eec-b4ab-864210c4066c",
            "key": "benjamin-g.-zorn",
            "name": "Benjamin G. Zorn"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/alexander-aiken",
            "id": "f14b77d6-e0c1-4f7c-87d6-645935c63b91",
            "key": "alexander-aiken",
            "name": "Alexander Aiken"
          }
        }
      ],
      "firstpage": 122,
      "lastpage": 133,
      "id": "9e77043a-c126-4313-84e2-ca2beb8c7141",
      "key": "Chlipala10-0",
      "title": "Ur: statically-typed metaprogramming with type-level record computation",
      "month": "",
      "year": "2010",
      "doi": "http://doi.acm.org/10.1145/1806596.1806612",
      "note": "",
      "abstract": "",
      "url": "https://researchr.org/publication/Chlipala10-0",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/adam-j.-chlipala",
            "id": "825cb3d8-b94d-4352-9226-71d82ec1557c",
            "key": "adam-j.-chlipala",
            "name": "Adam J. Chlipala"
          },
          "person": {
            "url": "https://researchr.org/profile/adamjchlipala",
            "id": "091e71d9-7a32-413f-8831-0aae15022bd0",
            "key": "adamjchlipala",
            "fullname": "Adam J. Chlipala"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "www",
      "conferenceYear": "",
      "booktitle": "Proceedings of the 18th International Conference on World Wide Web, WWW 2009, Madrid, Spain, April 20-24, 2009",
      "volume": "",
      "number": "",
      "series": "",
      "address": "",
      "organization": "",
      "publisher": "ACM",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/juan-quemada",
            "id": "3cb0d608-91da-4b20-9ca9-8be034fdac48",
            "key": "juan-quemada",
            "name": "Juan Quemada"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/gonzalo-le%C3%B3n",
            "id": "89afd0b4-29b4-4a84-9c8b-0d192e8bd0bb",
            "key": "gonzalo-león",
            "name": "Gonzalo León"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/yo%C3%ABlle-s.-maarek",
            "id": "2f0876e9-c611-4c39-8fb8-e7d11613fcc8",
            "key": "yoëlle-s.-maarek",
            "name": "Yoëlle S. Maarek"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/wolfgang-nejdl",
            "id": "34267d7b-2595-42c9-a137-8f9bc24fd644",
            "key": "wolfgang-nejdl",
            "name": "Wolfgang Nejdl"
          }
        }
      ],
      "firstpage": 951,
      "lastpage": 960,
      "id": "9fbff820-0e56-4f2f-904d-150abdcc6159",
      "key": "TatsuboriS09",
      "title": "HTML templates that fly: a template engine approach to automated offloading from server to client",
      "month": "",
      "year": "2009",
      "doi": "http://doi.acm.org/10.1145/1526709.1526837",
      "note": "",
      "abstract": "Web applications often use HTML templates to separate the webpage presentation from its underlying business logic and objects. This is now the de facto standard programming model for Web application development. This paper proposes a novel implementation for existing server-side template engines, FlyingTemplate, for (a) reduced bandwidth consumption in Web application servers, and (b) off-loading HTML generation tasks to Web clients. Instead of producing a fully-generated HTML page, the proposed template engine produces a skeletal script which includes only the dynamic values of the template parameters and the bootstrap code that runs on a Web browser at the client side. It retrieves a client-side template engine and the payload templates separately. With the goals of efficiency, implementation transparency, security, and standards compliance in mind, we developed FlyingTemplate with two design principles: effective browser cache usage, and reasonable compromises which restrict the template usage patterns and relax the security policies slightly but in a controllable way. This approach allows typical template-based Web applications to run effectively with FlyingTemplate. As an experiment, we tested the SPECweb2005 banking application using FlyingTemplate without any other modifications and saw throughput improvements from 1.6x to 2.0x in its best mode. In addition, FlyingTemplate can enforce compliance with a simple security policy, thus addressing the security problems of client-server partitioning in the Web environment.",
      "url": "https://researchr.org/publication/TatsuboriS09",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/michiaki-tatsubori",
            "id": "60e79743-5b98-49d9-96c1-e3e78a4fb502",
            "key": "michiaki-tatsubori",
            "name": "Michiaki Tatsubori"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/toyotaro-suzumura",
            "id": "e11b7fd8-8c1e-4fde-ac79-842dc65b376e",
            "key": "toyotaro-suzumura",
            "name": "Toyotaro Suzumura"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "oopsla",
      "conferenceYear": "",
      "booktitle": "Companion to the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006, October 22-26, 2006, Portland, Oregon, USA",
      "volume": "",
      "number": "",
      "series": "",
      "address": "",
      "organization": "",
      "publisher": "ACM",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/peri-l.-tarr",
            "id": "29315c14-1e61-4cc7-a003-ed5241a34aee",
            "key": "peri-l.-tarr",
            "name": "Peri L. Tarr"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/william-r.-cook",
            "id": "9a3ff127-3980-45d1-8b6b-baa769285bbc",
            "key": "william-r.-cook",
            "name": "William R. Cook"
          },
          "person": {
            "url": "https://researchr.org/profile/williamrcook",
            "id": "7f55f747-1ff4-4fa3-85ea-b40e083546b5",
            "key": "williamrcook",
            "fullname": "William R. Cook"
          }
        }
      ],
      "firstpage": 975,
      "lastpage": 985,
      "id": "a18e3f52-6d78-4712-a181-bbe37a810507",
      "key": "SerranoGL06",
      "title": "Hop: a language for programming the web 2.0",
      "month": "",
      "year": "2006",
      "doi": "http://doi.acm.org/10.1145/1176617.1176756",
      "note": "",
      "abstract": "",
      "url": "https://researchr.org/publication/SerranoGL06",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/manuel-serrano",
            "id": "7e4d0450-e6bd-4e5a-b6fc-d83a1d472bea",
            "key": "manuel-serrano",
            "name": "Manuel Serrano"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/erick-gallesio",
            "id": "91351b2b-e08c-462e-817a-4fda0c911894",
            "key": "erick-gallesio",
            "name": "Erick Gallesio"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/florian-loitsch",
            "id": "f56fd1b3-df9b-4008-9892-c217f91064c9",
            "key": "florian-loitsch",
            "name": "Florian Loitsch"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "icwe",
      "conferenceYear": "",
      "booktitle": "Web Engineering, 9th International Conference, ICWE 2009, San Sebastián, Spain, June 24-26, 2009, Proceedings",
      "volume": "5648",
      "number": "",
      "series": "Lecture Notes in Computer Science",
      "address": "",
      "organization": "",
      "publisher": "Springer",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/martin-gaedke",
            "id": "b56d5879-c8d1-40cf-8784-5a471c01286a",
            "key": "martin-gaedke",
            "name": "Martin Gaedke"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/michael-grossniklaus",
            "id": "e95e55b8-7c43-4546-80a8-e35abf59642f",
            "key": "michael-grossniklaus",
            "name": "Michael Grossniklaus"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/oscar-d%C3%ADaz",
            "id": "f4847a25-3257-4a82-963b-078fc77379a6",
            "key": "oscar-díaz",
            "name": "Oscar Díaz"
          }
        }
      ],
      "firstpage": 473,
      "lastpage": 476,
      "id": "a62d30f1-f4da-4fb2-af9b-a36e8a356524",
      "key": "PietschmannVRM09",
      "title": "CRUISe: Composition of Rich User Interface Services",
      "month": "",
      "year": "2009",
      "doi": "http://dx.doi.org/10.1007/978-3-642-02818-2_41",
      "note": "",
      "abstract": "As reuse and technology-independence are key issues of both software and web engineering, web services have gained momentum and are heavily used in modern web-based applications. However, they are only expedient for the business logic layer, while the Web lacks uniform models for the encapsulation and reuse of UI components. Thus, web UIs are usually hand-crafted and static, which complicates both development as well as maintenance and upgrade. We address these issues with a novel approach facilitating dynamic, service-oriented composition of user interfaces for web applications. UI parts therein are provided as reusable services and can therefore be selected, customized and exchanged dynamically with respect to a particular context\r\n",
      "url": "https://researchr.org/publication/PietschmannVRM09",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/stefan-pietschmann",
            "id": "5b54d080-f606-4d45-8214-f6a8350ab5f8",
            "key": "stefan-pietschmann",
            "name": "Stefan Pietschmann"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/martin-voigt",
            "id": "170e5b7b-9a71-4f95-995d-91e79f0889c6",
            "key": "martin-voigt",
            "name": "Martin Voigt"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/andreas-r%C3%BCmpel",
            "id": "ee95e285-a42b-4e6a-9e88-fc82eacdfa67",
            "key": "andreas-rümpel",
            "name": "Andreas Rümpel"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/klaus-mei%C3%9Fner",
            "id": "e10ab179-1520-4cce-aeff-e94932cf66ed",
            "key": "klaus-meißner",
            "name": "Klaus Meißner"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "OOPSLA",
      "conferenceYear": "",
      "booktitle": "Companion to the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2009, October 25-29, 2009, Orlanda, FL, USA",
      "volume": "",
      "number": "",
      "series": "",
      "address": "New York, NY, USA",
      "organization": "",
      "publisher": "ACM",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/gary-t.-leavens",
            "id": "1a42cab0-1af8-42b8-b90d-096a5ec5440d",
            "key": "gary-t.-leavens",
            "name": "Gary T. Leavens"
          },
          "person": {
            "url": "https://researchr.org/profile/garytleavens",
            "id": "23d10985-7265-476b-a44b-c0cb06bad686",
            "key": "garytleavens",
            "fullname": "Gary T.  Leavens"
          }
        }
      ],
      "firstpage": 0,
      "lastpage": 0,
      "id": "a97fdcf7-3a0d-4d53-9140-46f7c8c5e26c",
      "key": "GroenewegenV:OOPSLA:2009",
      "title": "Weaving Web Applications with WebDSL (Demonstration)",
      "month": "",
      "year": "2009",
      "doi": "http://doi.acm.org/10.1145/1639950.1640020",
      "note": "",
      "abstract": "WebDSL is a domain-specific language for the development\r\nof web applications that integrates data-models, userinterface\r\nmodels, actions, validation, access control, and\r\nworkflow. The compiler verifies the consistency of applications\r\nand generates complete implementations in Java or\r\nPython. We illustrate the key concepts of the language with\r\na small web application.",
      "url": "https://researchr.org/publication/GroenewegenV%3AOOPSLA%3A2009",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/danny-m.-groenewegen",
            "id": "46cf4818-8ce7-4644-9ee1-414e4c4960e7",
            "key": "danny-m.-groenewegen",
            "name": "Danny M. Groenewegen"
          },
          "person": {
            "url": "https://researchr.org/profile/dannymgroenewegen",
            "id": "f50a3666-08fe-4b30-9734-181aed455bb1",
            "key": "dannymgroenewegen",
            "fullname": "Danny M.  Groenewegen"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "Proceedings of The Ninth Workshop on Language Descriptions, Tools, and Applications (LDTA 2009)",
      "conferenceYear": "2009",
      "booktitle": "Proceedings of The Ninth Workshop on Language Descriptions, Tools, and Applications (LDTA 2009)",
      "volume": "253",
      "number": "7",
      "series": "ENTCS",
      "address": "",
      "organization": "",
      "publisher": "Elsevier",
      "firstpage": 0,
      "lastpage": 0,
      "id": "ade5f17d-32d6-41f9-90df-1236774fb7e5",
      "key": "KKV09",
      "title": "Domain-Specific Languages for Composable Editor Plugins",
      "month": "sept",
      "year": "2010",
      "doi": "http://dx.doi.org/10.1016/j.entcs.2010.08.038",
      "note": "",
      "abstract": "Modern IDEs increase developer productivity by incorporating many different kinds of editor services. These can be purely syntactic, such as syntax highlighting, code folding, and an outline for navigation; or they can be based on the language semantics, such as in-line type error reporting and resolving identifier declarations. Building all these services from scratch requires both the extensive knowledge of the sometimes complicated and highly interdependent APIs and extension mechanisms of an IDE framework, and an in-depth understanding of the structure and semantics of the targeted language. This paper describes Spoofax/IMP, a meta-tooling suite that provides high-level domain-specific languages for describing editor services, relieving editor developers from much of the framework-specific programming. Editor services are defined as composable modules of rules coupled to a modular SDF grammar. The composability provided by the SGLR parser and the declaratively defined services allows embedded languages and language extensions to be easily formulated as additional rules extending an existing language definition. The service definitions are used to generate Eclipse editor plugins. We discuss two examples: an editor plugin for WebDSL, a domain-specific language for web applications, and the embedding of WebDSL in Stratego, used for expressing the (static) semantic rules of WebDSL. ",
      "url": "https://researchr.org/publication/KKV09",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/lennart-c.-l.-kats",
            "id": "f6b6789b-a32a-417c-a90e-c37a12f25728",
            "key": "lennart-c.-l.-kats",
            "name": "Lennart C. L. Kats"
          },
          "person": {
            "url": "https://researchr.org/profile/lennartclkats",
            "id": "6e29bb96-28c9-4c76-915d-160ef1947602",
            "key": "lennartclkats",
            "fullname": "Lennart C. L. Kats"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/karl-trygve-kalleberg",
            "id": "3ee71cd9-6b84-45a5-ab19-8f8783c8dba3",
            "key": "karl-trygve-kalleberg",
            "name": "Karl Trygve Kalleberg"
          },
          "person": {
            "url": "https://researchr.org/profile/karltk",
            "id": "d774aeed-7606-4770-8a56-2cf4990644b4",
            "key": "karltk",
            "fullname": "Karl Trygve Kalleberg"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "type": "article",
      "journal": "CoRR",
      "volumenumber": "abs/0801.2618",
      "issuenumber": "",
      "firstpage": 0,
      "lastpage": 0,
      "id": "b56b5d47-9204-4499-8150-a553e857f5e8",
      "key": "abs-0801-2618",
      "title": "Survey of Technologies for Web Application Development",
      "month": "",
      "year": "2008",
      "doi": "http://arxiv.org/abs/0801.2618",
      "note": "informal publication",
      "abstract": "",
      "url": "https://researchr.org/publication/abs-0801-2618",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/barry-doyle",
            "id": "c6ddceb1-068c-4c8f-ba2a-a18537173c50",
            "key": "barry-doyle",
            "name": "Barry Doyle"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/cristina-videira-lopes",
            "id": "7e59d9ab-6822-40bf-8bc6-7a614a58ef35",
            "key": "cristina-videira-lopes",
            "name": "Cristina Videira Lopes"
          },
          "person": {
            "url": "https://researchr.org/profile/cristinavideiralopes",
            "id": "59a2d3a5-8c38-4bee-a335-d0518f11800f",
            "key": "cristinavideiralopes",
            "fullname": "Cristina Videira  Lopes"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "sosp",
      "conferenceYear": "",
      "booktitle": "Proceedings of the 21st ACM Symposium on Operating Systems Principles 2007, SOSP 2007, Stevenson, Washington, USA, October 14-17, 2007",
      "volume": "",
      "number": "",
      "series": "",
      "address": "",
      "organization": "",
      "publisher": "ACM",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/thomas-c.-bressoud",
            "id": "ef084f87-07e2-4eba-a254-8abc3993dd72",
            "key": "thomas-c.-bressoud",
            "name": "Thomas C. Bressoud"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/m.-frans-kaashoek",
            "id": "bbcb8ef0-13f1-4443-a3b6-da2e1149f558",
            "key": "m.-frans-kaashoek",
            "name": "M. Frans Kaashoek"
          }
        }
      ],
      "firstpage": 31,
      "lastpage": 44,
      "id": "b9860ebb-285f-4147-8b70-be68163eff49",
      "key": "ChongLMQVZZ07",
      "title": "Secure web application via automatic partitioning",
      "month": "",
      "year": "2007",
      "doi": "http://doi.acm.org/10.1145/1294261.1294265",
      "note": "",
      "abstract": "Swift is a new, principled approach to building web applications that are secure by construction. In modern web applications, some application functionality is usually implemented as client-side code written in JavaScript. Moving code and data to the client can create security vulnerabilities, but currently there are no good methods for deciding when it is secure to do so. Swift automatically partitions application code while providing assurance that the resulting placement is secure and efficient. Application code is written as Java-like code annotated with information flow policies that specify the confidentiality and integrity of web application information. The compiler uses these policies to automatically partition the program into JavaScript code running in the browser, and Java code running on the server. To improve interactive performance, code and data are placed on the client side. However, security-critical code and data are always placed on the server. Code and data can also be replicated across the client and server, to obtain both security and performance. A max-flow algorithm is used to place code and data in a way that minimizes client-server communication.\r\n",
      "url": "https://researchr.org/publication/ChongLMQVZZ07",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/stephen-chong",
            "id": "23a427f9-ef74-41e0-8984-061c35e62768",
            "key": "stephen-chong",
            "name": "Stephen Chong"
          },
          "person": {
            "url": "https://researchr.org/profile/stephenchong",
            "id": "233c91d2-8986-42c1-aac8-d14180782d09",
            "key": "stephenchong",
            "fullname": "Stephen Chong"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/jed-liu",
            "id": "65bcf7aa-b9e8-46a9-81a8-fc4e7df50b54",
            "key": "jed-liu",
            "name": "Jed Liu"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/andrew-c.-myers",
            "id": "cc010262-b999-4a5c-a385-ce2f157ac438",
            "key": "andrew-c.-myers",
            "name": "Andrew C. Myers"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/xin-qi",
            "id": "62f6f710-0ec5-440b-b749-9a76d36831b3",
            "key": "xin-qi",
            "name": "Xin Qi"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/k.-vikram",
            "id": "5bccfeab-b40b-4cd8-8716-72c48889804e",
            "key": "k.-vikram",
            "name": "K. Vikram"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/lantian-zheng",
            "id": "c699b776-9913-4e5f-9c9f-7053c33f4aba",
            "key": "lantian-zheng",
            "name": "Lantian Zheng"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/xin-zheng",
            "id": "c0c92e93-ab9c-453d-a6dd-715781b7e1c3",
            "key": "xin-zheng",
            "name": "Xin Zheng"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "wise",
      "conferenceYear": "",
      "booktitle": "Web Information Systems Engineering - WISE 2008, 9th International Conference, Auckland, New Zealand, September 1-3, 2008. Proceedings",
      "volume": "5175",
      "number": "",
      "series": "Lecture Notes in Computer Science",
      "address": "",
      "organization": "",
      "publisher": "Springer",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/james-bailey",
            "id": "585b618e-61d5-4b81-9ece-8d65bb50f60b",
            "key": "james-bailey",
            "name": "James Bailey"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/david-maier",
            "id": "aa1215db-3e48-4586-8fd6-09067f8f83c3",
            "key": "david-maier",
            "name": "David Maier"
          },
          "person": {
            "url": "https://researchr.org/profile/davidmaier",
            "id": "539df90a-a07f-4959-b4ea-ec410f0044b8",
            "key": "davidmaier",
            "fullname": "David  Maier"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/klaus-dieter-schewe",
            "id": "0f480342-c699-4655-90bf-c92208c8f02e",
            "key": "klaus-dieter-schewe",
            "name": "Klaus-Dieter Schewe"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/bernhard-thalheim",
            "id": "67a3d320-0ced-415e-955f-a06be6d37330",
            "key": "bernhard-thalheim",
            "name": "Bernhard Thalheim"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/xiaoyang-sean-wang",
            "id": "2eeb71c8-dd22-403f-96ee-39d3614b1fcc",
            "key": "xiaoyang-sean-wang",
            "name": "Xiaoyang Sean Wang"
          }
        }
      ],
      "firstpage": 106,
      "lastpage": 119,
      "id": "b9d6b3b8-9199-442e-8642-14180a040fac",
      "key": "WrightD08",
      "title": "Requirements for Rich Internet Application Design Methodologies",
      "month": "",
      "year": "2008",
      "doi": "http://dx.doi.org/10.1007/978-3-540-85481-4_10",
      "note": "",
      "abstract": "",
      "url": "https://researchr.org/publication/WrightD08",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/jevon-m.-wright",
            "id": "b36da75c-a50a-4050-8a2f-83239d9f366b",
            "key": "jevon-m.-wright",
            "name": "Jevon M. Wright"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/jens-dietrich",
            "id": "07105910-54d3-40f1-a30b-0ad0b8ff7b8f",
            "key": "jens-dietrich",
            "name": "Jens Dietrich"
          }
        }
      ]
    },
    {
      "id": "c2d8829c-c2cc-4d17-ac2d-3dbe91ed789e",
      "key": "Visser2010",
      "title": "Performing Systematic Literature Reviews with Researchr: Tool Demonstration",
      "month": "May",
      "year": "2010",
      "doi": "http://resolver.tudelft.nl/uuid:22b480a7-d09e-4ae6-abe7-9a5769e03c2b",
      "note": "",
      "abstract": "This paper describes the workflow for performing systematic literature\r\nreviews with the researchr digital library environment.\r\n",
      "url": "https://researchr.org/publication/Visser2010",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "type": "article",
      "journal": "sosym",
      "volumenumber": "9",
      "issuenumber": "3",
      "firstpage": 375,
      "lastpage": 402,
      "id": "c6ab7ca9-2764-4354-964b-ba8c3244bd88",
      "key": "HemelKGV-2010",
      "title": "Code generation by model transformation: a case study in transformation modularity",
      "month": "June",
      "year": "2010",
      "doi": "http://dx.doi.org/10.1007/s10270-009-0136-1",
      "note": "",
      "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. ",
      "url": "https://researchr.org/publication/HemelKGV-2010",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/zef-hemel",
            "id": "7816809a-e2e6-42c6-8c44-481a821fb0bd",
            "key": "zef-hemel",
            "name": "Zef Hemel"
          },
          "person": {
            "url": "https://researchr.org/profile/zefhemel",
            "id": "947901fa-e910-454b-8546-c514c5a191be",
            "key": "zefhemel",
            "fullname": "Zef  Hemel"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/lennart-c.-l.-kats",
            "id": "f6b6789b-a32a-417c-a90e-c37a12f25728",
            "key": "lennart-c.-l.-kats",
            "name": "Lennart C. L. Kats"
          },
          "person": {
            "url": "https://researchr.org/profile/lennartclkats",
            "id": "6e29bb96-28c9-4c76-915d-160ef1947602",
            "key": "lennartclkats",
            "fullname": "Lennart C. L. Kats"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/danny-m.-groenewegen",
            "id": "46cf4818-8ce7-4644-9ee1-414e4c4960e7",
            "key": "danny-m.-groenewegen",
            "name": "Danny M. Groenewegen"
          },
          "person": {
            "url": "https://researchr.org/profile/dannymgroenewegen",
            "id": "f50a3666-08fe-4b30-9734-181aed455bb1",
            "key": "dannymgroenewegen",
            "fullname": "Danny M.  Groenewegen"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "id": "c9856222-7ed6-4aef-9151-6a841ec5e7df",
      "key": "RichardsonRuby-2007",
      "title": "RESTful Web Services",
      "month": "May",
      "year": "2007",
      "doi": "http://oreilly.com/catalog/9780596529260",
      "note": "",
      "abstract": "You\u0027ve built web sites that can be used by humans. But can you also build web sites that are usable by machines? That\u0027s where the future lies, and that\u0027s what this book shows you how to do. Today\u0027s web service technologies have lost sight of the simplicity that made the Web successful. This book explains how to put the \"Web\" back into web services with REST, the architectural style that drives the Web.",
      "url": "https://researchr.org/publication/RichardsonRuby-2007",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/leonard-richardson",
            "id": "9e50f231-8864-44b7-82e1-889a0fd4e15b",
            "key": "leonard-richardson",
            "name": "Leonard Richardson"
          },
          "person": {
            "url": "https://researchr.org/profile/leonardrichardson",
            "id": "563f18ae-0388-47af-900d-8a264730644a",
            "key": "leonardrichardson",
            "fullname": "Leonard Richardson"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/sam-ruby",
            "id": "6f95a3a3-3577-4948-b386-8039ad6c9903",
            "key": "sam-ruby",
            "name": "Sam Ruby"
          },
          "person": {
            "url": "https://researchr.org/profile/samruby",
            "id": "9e7d5fb0-306f-4b98-ad17-532a10b3323d",
            "key": "samruby",
            "fullname": "Sam Ruby"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "icmt",
      "conferenceYear": "",
      "booktitle": "Theory and Practice of Model Transformations, First International Conference, ICMT 2008, Zürich, Switzerland, July 1-2, 2008, Proceedings",
      "volume": "5063",
      "number": "",
      "series": "Lecture Notes in Computer Science",
      "address": "",
      "organization": "",
      "publisher": "Springer",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/antonio-vallecillo",
            "id": "ea43e3ee-9d5c-44a9-ae63-3a0991587df7",
            "key": "antonio-vallecillo",
            "name": "Antonio Vallecillo"
          },
          "person": {
            "url": "https://researchr.org/profile/antoniovallecillo",
            "id": "fcd91adb-afc8-49ea-8462-8ea7e21fcd02",
            "key": "antoniovallecillo",
            "fullname": "Antonio Vallecillo"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/jeff-gray",
            "id": "fefac3e9-8142-40df-9285-12943249e210",
            "key": "jeff-gray",
            "name": "Jeff Gray"
          },
          "person": {
            "url": "https://researchr.org/profile/jeffgray",
            "id": "474ab36e-49c3-4f85-aa00-417d49005952",
            "key": "jeffgray",
            "fullname": "Jeffrey G. Gray"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/alfonso-pierantonio",
            "id": "6bdb8120-94a2-4358-a8ff-970aeb5a607f",
            "key": "alfonso-pierantonio",
            "name": "Alfonso Pierantonio"
          },
          "person": {
            "url": "https://researchr.org/profile/alfonsopierantonio",
            "id": "b3878a28-8c5a-4748-8d0d-392889211b46",
            "key": "alfonsopierantonio",
            "fullname": "Alfonso Pierantonio"
          }
        }
      ],
      "firstpage": 183,
      "lastpage": 198,
      "id": "c9b49596-d81d-483c-b093-ee6d3b6ab486",
      "key": "HemelKV08",
      "title": "Code Generation by Model Transformation",
      "month": "",
      "year": "2008",
      "doi": "http://dx.doi.org/10.1007/978-3-540-69927-9_13",
      "note": "",
      "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. ",
      "url": "https://researchr.org/publication/HemelKV08",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/zef-hemel",
            "id": "7816809a-e2e6-42c6-8c44-481a821fb0bd",
            "key": "zef-hemel",
            "name": "Zef Hemel"
          },
          "person": {
            "url": "https://researchr.org/profile/zefhemel",
            "id": "947901fa-e910-454b-8546-c514c5a191be",
            "key": "zefhemel",
            "fullname": "Zef  Hemel"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/lennart-c.-l.-kats",
            "id": "f6b6789b-a32a-417c-a90e-c37a12f25728",
            "key": "lennart-c.-l.-kats",
            "name": "Lennart C. L. Kats"
          },
          "person": {
            "url": "https://researchr.org/profile/lennartclkats",
            "id": "6e29bb96-28c9-4c76-915d-160ef1947602",
            "key": "lennartclkats",
            "fullname": "Lennart C. L. Kats"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/eelco-visser",
            "id": "f68ba0ee-899e-4c4c-9d8a-6fed5092830a",
            "key": "eelco-visser",
            "name": "Eelco Visser"
          },
          "person": {
            "url": "https://researchr.org/profile/eelcovisser",
            "id": "f0fbf7c0-9729-4ec8-b3c9-5f30dbd9614b",
            "key": "eelcovisser",
            "fullname": "Eelco Visser"
          }
        }
      ]
    },
    {
      "type": "article",
      "journal": "ACM Trans. Internet Techn.",
      "volumenumber": "2",
      "issuenumber": "2",
      "firstpage": 79,
      "lastpage": 114,
      "id": "cf581b2b-283b-43ba-89d5-5bdf6c4870b0",
      "key": "BrabrandMS02",
      "title": "The \u003cbigwig\u003e project",
      "month": "",
      "year": "2002",
      "doi": "http://doi.acm.org/10.1145/514183.514184",
      "note": "",
      "abstract": "",
      "url": "https://researchr.org/publication/BrabrandMS02",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/claus-brabrand",
            "id": "8e157343-b517-442e-884c-c4cae3f99da8",
            "key": "claus-brabrand",
            "name": "Claus Brabrand"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/anders-m%C3%B8ller",
            "id": "202a50af-6364-40a7-b749-dc27ff18b3cc",
            "key": "anders-møller",
            "name": "Anders Møller"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/michael-i.-schwartzbach",
            "id": "55b2c00c-f58d-4303-b161-0f5fbede2eb8",
            "key": "michael-i.-schwartzbach",
            "name": "Michael I. Schwartzbach"
          },
          "person": {
            "url": "https://researchr.org/profile/michaelischwartzbach",
            "id": "506c63b4-7861-4301-8905-29b7620b6473",
            "key": "michaelischwartzbach",
            "fullname": "Michael I. Schwartzbach"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "aplas",
      "conferenceYear": "",
      "booktitle": "Programming Languages and Systems, 6th Asian Symposium, APLAS 2008, Bangalore, India, December 9-11, 2008. Proceedings",
      "volume": "5356",
      "number": "",
      "series": "Lecture Notes in Computer Science",
      "address": "",
      "organization": "",
      "publisher": "Springer",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/g.-ramalingam",
            "id": "c804191a-322a-4e96-b82d-ef5b8a985c12",
            "key": "g.-ramalingam",
            "name": "G. Ramalingam"
          },
          "person": {
            "url": "https://researchr.org/profile/gramalingam",
            "id": "e2bf0b18-2846-4f9a-a4ba-66b6db6f86d5",
            "key": "gramalingam",
            "fullname": "Ganesan Ramalingam"
          }
        }
      ],
      "firstpage": 205,
      "lastpage": 220,
      "id": "e0aca60a-743d-468b-b50f-aec715e5d9fc",
      "key": "CooperLWY08",
      "title": "The Essence of Form Abstraction",
      "month": "",
      "year": "2008",
      "doi": "http://dx.doi.org/10.1007/978-3-540-89330-1_15",
      "note": "",
      "abstract": "",
      "url": "https://researchr.org/publication/CooperLWY08",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/ezra-cooper",
            "id": "5193eda0-3956-463e-9f8f-959f1313854b",
            "key": "ezra-cooper",
            "name": "Ezra Cooper"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/sam-lindley",
            "id": "8fa295fb-688e-4229-ae62-e8a5b120f6e2",
            "key": "sam-lindley",
            "name": "Sam Lindley"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/philip-wadler",
            "id": "f8c4f726-caec-4bcf-889d-86917caa1ede",
            "key": "philip-wadler",
            "name": "Philip Wadler"
          },
          "person": {
            "url": "https://researchr.org/profile/philipwadler",
            "id": "682828ae-306b-49ea-b847-6eda8680b7d9",
            "key": "philipwadler",
            "fullname": "Philip Wadler"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/jeremy-yallop",
            "id": "f1d756d5-7813-4e0f-949f-b39810638e7a",
            "key": "jeremy-yallop",
            "name": "Jeremy Yallop"
          }
        }
      ]
    },
    {
      "type": "inproceedings",
      "conference": "fmco",
      "conferenceYear": "",
      "booktitle": "Formal Methods for Components and Objects, 5th International Symposium, FMCO 2006, Amsterdam, The Netherlands, November 7-10, 2006, Revised Lectures",
      "volume": "4709",
      "number": "",
      "series": "Lecture Notes in Computer Science",
      "address": "",
      "organization": "",
      "publisher": "Springer",
      "editors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/frank-s.-de-boer",
            "id": "c5fc516f-50ec-4782-aa39-e83bef432fe5",
            "key": "frank-s.-de-boer",
            "name": "Frank S. de Boer"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/marcello-m.-bonsangue",
            "id": "df3e8df7-f3cc-4897-825e-4c5cb94237d1",
            "key": "marcello-m.-bonsangue",
            "name": "Marcello M. Bonsangue"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/susanne-graf",
            "id": "ccc5dc25-e9a7-442b-ae95-6d9e85681165",
            "key": "susanne-graf",
            "name": "Susanne Graf"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/willem-p.-de-roever",
            "id": "0febf72f-ecd1-4516-a3b4-d3332179bc9b",
            "key": "willem-p.-de-roever",
            "name": "Willem P. de Roever"
          }
        }
      ],
      "firstpage": 266,
      "lastpage": 296,
      "id": "f9a86ab3-1f47-4ec8-be71-5242acc8e632",
      "key": "CooperLWY06",
      "title": "Links: Web Programming Without Tiers",
      "month": "",
      "year": "2006",
      "doi": "http://dx.doi.org/10.1007/978-3-540-74792-5_12",
      "note": "",
      "abstract": "Links is a programming language for web applications that generates code for all three tiers of a web application from a single source, compiling into JavaScript to run on the client and into SQL to run on the database. Links supports rich clients running in what has been dubbed ‘Ajax’ style, and supports concurrent processes with statically-typed message passing. Links is scalable in the sense that session state is preserved in the client rather than the server, in contrast to other approaches such as Java Servlets or PLT Scheme. Client-side concurrency in JavaScript and transfer of computation between client and server are both supported by translation into continuation-passing style.\r\n",
      "url": "https://researchr.org/publication/CooperLWY06",
      "authors": [
        {
          "alias": {
            "url": "https://researchr.org/alias/ezra-cooper",
            "id": "5193eda0-3956-463e-9f8f-959f1313854b",
            "key": "ezra-cooper",
            "name": "Ezra Cooper"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/sam-lindley",
            "id": "8fa295fb-688e-4229-ae62-e8a5b120f6e2",
            "key": "sam-lindley",
            "name": "Sam Lindley"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/philip-wadler",
            "id": "f8c4f726-caec-4bcf-889d-86917caa1ede",
            "key": "philip-wadler",
            "name": "Philip Wadler"
          },
          "person": {
            "url": "https://researchr.org/profile/philipwadler",
            "id": "682828ae-306b-49ea-b847-6eda8680b7d9",
            "key": "philipwadler",
            "fullname": "Philip Wadler"
          }
        },
        {
          "alias": {
            "url": "https://researchr.org/alias/jeremy-yallop",
            "id": "f1d756d5-7813-4e0f-949f-b39810638e7a",
            "key": "jeremy-yallop",
            "name": "Jeremy Yallop"
          }
        }
      ]
    }
  ]
}