publications: - title: "PIL: A Platform Independent Language for Retargetable DSLs" author: - name: "Zef Hemel" link: "http://zef.me" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-12107-4_17" abstract: "Intermediate languages are used in compiler construction to simplify retargeting compilers to multiple machine architectures. In the implementation of domain-specific languages (DSLs), compilers typically generate high-level source code, rather than low-level machine instructions. DSL compilers target a software platform, i.e. a programming language with a set of libraries, deployable on one or more operating systems. DSLs enable targeting multiple software platforms if its abstractions are platform independent. While transformations from DSL to each targeted platform are often conceptually very similar, there is little reuse between transformations due to syntactic and API differences of the target platforms, making supporting multiple platforms expensive. In this paper, we discuss the design and implementation of PIL, a Platform Independent Language, an intermediate language providing a layer of abstraction between DSL and target platform code, abstracting from syntactic and API differences between platforms, thereby removing the need for platform-specific transformations. We discuss the use of PIL in an implemementation of WebDSL, a DSL for building web applications." links: doi: "http://dx.doi.org/10.1007/978-3-642-12107-4_17" tags: - "DSL" researchr: "https://researchr.org/publication/HemelV09" cites: 0 citedby: 1 pages: "224-243" booktitle: "SLE" kind: "inproceedings" key: "HemelV09" - title: "HT06, tagging paper, taxonomy, Flickr, academic article, to read" author: - name: "Cameron Marlow" link: "https://researchr.org/alias/cameron-marlow" - name: "Mor Naaman" link: "https://researchr.org/alias/mor-naaman" - name: "Danah Boyd" link: "http://www.danah.org/" - name: "Marc Davis" link: "https://researchr.org/alias/marc-davis" year: "2006" doi: "http://doi.acm.org/10.1145/1149941.1149949" links: doi: "http://doi.acm.org/10.1145/1149941.1149949" tags: - "tagging" - "flickr" - "taxonomy" researchr: "https://researchr.org/publication/MarlowNBD06" cites: 0 citedby: 0 pages: "31-40" booktitle: "ht" kind: "inproceedings" key: "MarlowNBD06" - title: "A Conceptual Framework for User Input Evaluation in Rich Internet Applications" author: - name: "Matthias Book" link: "http://www.matthiasbook.de/" - name: "Tobias Brückmann" link: "https://researchr.org/alias/tobias-br%C3%BCckmann" - name: "Volker Gruhn" link: "https://researchr.org/alias/volker-gruhn" - name: "Malte Hülder" link: "https://researchr.org/alias/malte-h%C3%BClder" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-02818-2_22" links: doi: "http://dx.doi.org/10.1007/978-3-642-02818-2_22" tags: - "application framework" researchr: "https://researchr.org/publication/BookBGH09" cites: 0 citedby: 0 pages: "275-282" booktitle: "ICWE" kind: "inproceedings" key: "BookBGH09" - title: "Weaving concerns in model based development of data-intensive web applications" author: - name: "Antonio Cicchetti" link: "https://researchr.org/alias/antonio-cicchetti" - name: "Davide Di Ruscio" link: "http://www.di.univaq.it/diruscio" - name: "Alfonso Pierantonio" link: "http://www.di.univaq.it/alfonso" year: "2006" doi: "http://doi.acm.org/10.1145/1141277.1141571" links: doi: "http://doi.acm.org/10.1145/1141277.1141571" tags: - "rule-based" - "meta-model" - "model-driven development" - "weaving" - "web applications" - "Meta-Environment" researchr: "https://researchr.org/publication/CicchettiRP06" cites: 0 citedby: 0 pages: "1256-1261" booktitle: "SAC" kind: "inproceedings" key: "CicchettiRP06" - title: "WebWorkFlow: An Object-Oriented Workflow Modeling Language for Web Applications" author: - name: "Zef Hemel" link: "http://zef.me" - name: "Ruben Verhaaf" link: "http://www.linkedin.com/pub/ruben-verhaaf/3/a73/2ab" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-87875-9_8" abstract: "Workflow languages are designed for the high-level description of processes and are typically not suitable for the generation of complete applications. In this paper, we present WebWorkFlow, an object-oriented workflow modeling language for the high-level description of workflows in web applications. Workflow descriptions define procedures operating on domain objects. Procedures are composed using sequential and concurrent process combinators. WebWorkFlow is an embedded language, extending WebDSL, a domain-specific language for web application development, with workflow abstractions. The extension is implemented by means of model-to-model transformations. Rather than providing an exclusive workflow language, WebWorkFlow supports interaction with the underlying WebDSL language. WebWorkFlow supports most of the basic workflow control patterns. " links: doi: "http://dx.doi.org/10.1007/978-3-540-87875-9_8" "technical report (pdf)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-029.pdf" tags: - "workflow patterns" - "model-to-model transformation" - "interaction design" - "WebDSL" - "transformation engineering" - "completeness" - "pattern language" - "meta-model" - "modeling language" - "modeling" - "language engineering" - "transformation language" - "language modeling" - "web engineering" - "language design" - "model-driven development" - "source-to-source" - "model-driven engineering" - "object-role modeling" - "model transformation" - "web applications" - "DSL" - "abstraction" - "Meta-Environment" - "workflow" - "process modeling" - "WebWorkFlow" - "meta-objects" - "transformation" - "domain-specific language" researchr: "https://researchr.org/publication/HemelVV08" cites: 0 citedby: 6 pages: "113-127" booktitle: "MoDELS" kind: "inproceedings" key: "HemelVV08" - title: "Abstractions for Asynchronous User Interfaces in Web Applications" author: - name: "Michel Weststrate" link: "https://researchr.org/alias/michel-weststrate" year: "2009" doi: "http://swerl.tudelft.nl/twiki/pub/Main/PastAndCurrentMScProjects/Thesis_Michel_Weststrate.pdf" abstract: "The web has become a popular target platform for applications. The differences in user experience between browser based applications and desktop applications have become smaller due to the enriched user experience enabled by the Ajax technique. Nevertheless, developing Ajax based internet applications is a complex task and requires the developer to intertwine many standards and languages. This thesis presents the WebDSLx extension for the WebDSL compiler. The compiler and extension allows the developer to create rich internet applications in an intuitive way, since many details are taken care of by the abstractions provided in the model. WebDSLx allows to define a rich interaction pattern between user and application, based on the concepts of delta updates and reusable widgets. The abstractions provided are based on an analysis of proven successful abstractions in the development process of desktop applications. As a result, the WebDSLx extension provides a simple model based approach to a formerly tedious task." links: doi: "http://swerl.tudelft.nl/twiki/pub/Main/PastAndCurrentMScProjects/Thesis_Michel_Weststrate.pdf" tags: - "WebDSL" - "rule-based" - "pattern language" - "meta-model" - "modeling language" - "language modeling" - "AJAX" - "analysis" - "reuse" - "model-driven development" - "compiler" - "web applications" - "abstraction" - "Meta-Environment" - "model deltas" - "process modeling" - "systematic-approach" researchr: "https://researchr.org/publication/Weststrate2009" cites: 0 citedby: 0 school: "Delft University of Technology" advisor: - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Eelco Visser" link: "http://eelcovisser.org" kind: "mastersthesis" key: "Weststrate2009" - title: "WebDSL: A Case Study in Domain-Specific Language Engineering" author: - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-88643-3_7" abstract: " The goal of domain-specific languages (DSLs) is to increase the productivity of software engineers by abstracting from low-level boil- erplate code. Introduction of DSLs in the software development process requires a smooth workflow for the production of DSLs themselves. This requires technology for designing and implementing DSLs, but also a methodology for using that technology. That is, a collection of guidelines, design patterns, and reusable DSL components that show developers how to tackle common language design and implementation issues. This paper presents a case study in domain-specific language engineering. It reports on a pro ject in which the author designed and built WebDSL, a DSL for web applications with a rich data model, using several DSLs for DSL engineering: SDF for syntax definition and Stratego/XT for code gener- ation. The paper follows the stages in the development of the DSL. The contributions of the paper are three-fold. (1) A tutorial in the application of the specific SDF and Stratego/XT technology for building DSLs. (2) A description of an incremental DSL development process. (3) A domain- specific language for web-applications with rich data models. The paper concludes with a survey of related approaches. " links: doi: "http://dx.doi.org/10.1007/978-3-540-88643-3_7" "technical report (pdf)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-023.pdf" "webdsl": "http://webdsl.org" "stratego/xt": "http://strategoxt.org" tags: - "WebDSL" - "reusable components" - "DSL engineering" - "web application development" - "data-flow language" - "pattern language" - "case study" - "software components" - "SDF" - "meta-model" - "abstract syntax" - "modeling language" - "Stratego/XT" - "language engineering" - "software language engineering" - "language modeling" - "software component" - "web engineering" - "language design" - "reuse" - "model-driven development" - "data-flow" - "survey" - "software engineering" - "model-driven engineering" - "web applications" - "DSL" - "Meta-Environment" - "incremental" - "design" - "process modeling" - "systematic-approach" - "ASF+SDF" - "language" - "Stratego" - "domain-specific language" researchr: "https://researchr.org/publication/Visser07" cites: 0 citedby: 9 pages: "291-373" booktitle: "GTTSE" kind: "inproceedings" key: "Visser07" - title: "Separation of Concerns and Linguistic Integration in WebDSL" author: - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Zef Hemel" link: "http://zef.me" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2010" doi: "http://dx.doi.org/10.1109/MS.2010.92" 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." links: doi: "http://dx.doi.org/10.1109/MS.2010.92" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/software/GroenewegenHV10" tags: - "WebDSL" - "separation of concerns" researchr: "https://researchr.org/publication/GroenewegenHV10" cites: 0 citedby: 0 journal: "IEEE Software" volume: "27" number: "5" pages: "31-37" kind: "article" key: "GroenewegenHV10" - title: "WebDSL: a domain-specific language for dynamic web applications" author: - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Zef Hemel" link: "http://zef.me" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://doi.acm.org/10.1145/1449814.1449858" abstract: "WebDSL is a domain-specific language for the implementation of dynamic web applications with a rich datamodel. It consists of a core language with constructs to define entities, pages and business logic. Higher-level abstractions, modeling access control and workflow, are defined in a modular fashion as extensions of the core language." links: doi: "http://doi.acm.org/10.1145/1449814.1449858" tags: - "WebDSL" - "meta-model" - "modeling language" - "modeling" - "language engineering" - "language modeling" - "web engineering" - "model-driven engineering" - "C++" - "web applications" - "DSL" - "logic" - "abstraction" - "Meta-Environment" - "access control" - "workflow" - "domain-specific language" researchr: "https://researchr.org/publication/GroenewegenHKV08" cites: 0 citedby: 0 pages: "779-780" booktitle: "OOPSLA" kind: "inproceedings" key: "GroenewegenHKV08" - title: "Programming Paradigms for the Web: Web Programming and Web Services, 28.01. - 02.02.2007" year: "2007" tags: - "web service" - "programming paradigms" - "web services" - "programming" researchr: "https://researchr.org/publication/dagstuhl%3A2007P7051" cites: 0 citedby: 0 booktitle: "Programming Paradigms for the Web: Web Programming and Web Services, 28.01. - 02.02.2007" conference: "Dagstuhl" editor: - name: "Richard Hull" link: "https://researchr.org/alias/richard-hull" - name: "Peter Thiemann" link: "http://www.informatik.uni-freiburg.de/~thiemann/" - name: "Philip Wadler" link: "http://homepages.inf.ed.ac.uk/wadler/" volume: "07051" series: "Dagstuhl Seminar Proceedings" publisher: "Internationales Begegnungs- und Forschungszentrum fuer Informatik (IBFI), Schloss Dagstuhl, Germany" kind: "proceedings" key: "dagstuhl:2007P7051" - title: "Static consistency checking of web applications with WebDSL" author: - name: "Zef Hemel" link: "http://zef.me" - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2011" doi: "https://doi.org/10.1016/j.jsc.2010.08.006" abstract: "Modern web application development frameworks provide web application developers with high-level abstractions to improve their productivity. However, their support for static verification of applications is limited. Inconsistencies in an application are often not detected statically, but appear as errors at run-time. The reports about these errors are often obscure and hard to trace back to the source of the inconsistency. A major part of this inadequate consistency checking can be traced back to the lack of linguistic integration of these frameworks. Parts of an application are defined with separate domain-specific languages, which are not checked for consistency with the rest of the application. Examples include regular expressions, query languages and XML-based languages for definition of user interfaces. We give an overview and analysis of typical problems arising in development with frameworks for web application development, with Ruby on Rails, Lift and Seam as representatives. To remedy these problems, in this paper, we argue that domain-specific languages should be designed from the ground up with static verification and cross-aspect consistency checking in mind, providing linguistic integration of domain-specific sub-languages. We show how this approach is applied in the design of WebDSL, a domain-specific language for web applications, by examining how its compiler detects inconsistencies not caught by web frameworks, providing accurate and clear error messages. Furthermore, we show how this consistency analysis can be expressed with a declarative rule-based approach using the Stratego transformation language." links: doi: "https://doi.org/10.1016/j.jsc.2010.08.006" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/jsc/HemelGKV11" "technical report ": "http://resolver.tudelft.nl/uuid:588b78a1-f8d8-45fc-855f-fd03699725cf" "jsc": "https://doi.org/10.1016/j.jsc.2010.08.006" tags: - "model-to-model transformation" - "WebDSL" - "rule-based" - "application framework" - "model checking" - "XML" - "XML Schema" - "transformation language" - "points-to analysis" - "domain analysis" - "analysis" - "language design" - "static analysis" - "model-driven development" - "source-to-source" - "rules" - "C++" - "compiler" - "model transformation" - "web applications" - "consistency" - "abstraction" - "design" - "systematic-approach" - "open-source" - "transformation" - "Ruby on Rails" - "Stratego" - "Ruby" - "query language" - "domain-specific language" researchr: "https://researchr.org/publication/HemelGKV11" cites: 0 citedby: 0 journal: "JSC" volume: "46" number: "2" pages: "150-182" kind: "article" key: "HemelGKV11" - title: "07051 Executive Summary -- Programming Paradigms for the Web: Web Programming and Web Services" author: - name: "Richard Hull" link: "https://researchr.org/alias/richard-hull" - name: "Peter Thiemann" link: "http://www.informatik.uni-freiburg.de/~thiemann/" - name: "Philip Wadler" link: "http://homepages.inf.ed.ac.uk/wadler/" year: "2007" doi: "http://drops.dagstuhl.de/opus/volltexte/2007/1125" 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." links: doi: "http://drops.dagstuhl.de/opus/volltexte/2007/1125" tags: - "web programming" - "web service" - "data-flow programming" - "data-flow" - "programming paradigms" - "web services" - "programming" - "systematic-approach" researchr: "https://researchr.org/publication/HullTW07" cites: 0 citedby: 0 booktitle: "Dagstuhl" kind: "inproceedings" key: "HullTW07" - title: "Transparent Interface Composition in Web Applications" author: - name: "Jeronimo Ginzburg" link: "https://researchr.org/alias/jeronimo-ginzburg" - name: "Gustavo Rossi" link: "https://researchr.org/alias/gustavo-rossi" - name: "Matias Urbieta" link: "https://researchr.org/alias/matias-urbieta" - name: "Damiano Distante" link: "https://researchr.org/alias/damiano-distante" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-73597-7_12" 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. " links: doi: "http://dx.doi.org/10.1007/978-3-540-73597-7_12" tags: - "model-to-model transformation" - "meta-model" - "modeling language" - "separation of concerns" - "transformation language" - "web service" - "language modeling" - "composition" - "interface composition" - "language design" - "software evolution" - "source-to-source" - "web services" - "model transformation" - "web applications" - "Meta-Environment" - "design" - "systematic-approach" - "transformation" researchr: "https://researchr.org/publication/GinzburgRUD07" cites: 0 citedby: 0 pages: "152-166" booktitle: "ICWE" kind: "inproceedings" key: "GinzburgRUD07" - title: "Seaside -- Advanced Composition and Control Flow for Dynamic Web Applications" author: - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" year: "2008" month: "jan" 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." links: "url": "http://ercim-news.ercim.org/content/view/325/536/" tags: - "web application development" - "application framework" - "meta-model" - "composition" - "model-driven development" - "data-flow" - "Seaside" - "web applications" - "Meta-Environment" - "user interface composition" researchr: "https://researchr.org/publication/Berg08a" cites: 0 citedby: 0 journal: "ERCIM News" volume: "72" kind: "article" key: "Berg08a" - title: "beContent: A Model-Driven Platform for Designing and Maintaining Web Applications" author: - name: "Antonio Cicchetti" link: "https://researchr.org/alias/antonio-cicchetti" - name: "Davide Di Ruscio" link: "http://www.di.univaq.it/diruscio" - name: "Romina Eramo" link: "https://researchr.org/alias/romina-eramo" - name: "Francesco Maccarrone" link: "https://researchr.org/alias/francesco-maccarrone" - name: "Alfonso Pierantonio" link: "http://www.di.univaq.it/alfonso" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-02818-2_52" links: doi: "http://dx.doi.org/10.1007/978-3-642-02818-2_52" tags: - "web applications" researchr: "https://researchr.org/publication/CicchettiREMP09" cites: 0 citedby: 0 pages: "518-522" booktitle: "ICWE" kind: "inproceedings" key: "CicchettiREMP09" - title: "Weaving web applications with WebDSL: (demonstration)" author: - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2009" doi: "http://doi.acm.org/10.1145/1639950.1640020" abstract: "WebDSL is a domain-specific language for the development of web applications that integrates data-models, user-interface models, actions, validation, access control, and workflow. The compiler verifies the consistency of applications and generates complete implementations in Java or Python. We illustrate the key concepts of the language with a small web application." links: doi: "http://doi.acm.org/10.1145/1639950.1640020" tags: - "data validation" - "WebDSL" - "Java" - "completeness" - "data-flow language" - "meta-model" - "modeling language" - "modeling" - "language modeling" - "model-driven development" - "data-flow" - "weaving" - "compiler" - "web applications" - "consistency" - "Meta-Environment" - "access control" - "workflow" - "domain-specific language" researchr: "https://researchr.org/publication/GroenewegenV09-demo" cites: 0 citedby: 0 pages: "797-798" booktitle: "OOPSLA" kind: "inproceedings" key: "GroenewegenV09-demo" - title: "researchr.org" author: - name: "Eelco Visser" link: "https://researchr.org/alias/eelco-visser" year: "2009" doi: "http://researchr.org" abstract: "Researchr is a web service for indexing, managing, and sharing bibliographic information of scientific publications for researchers by researchers." links: doi: "http://researchr.org" tags: - "bibliography" - "software" - "digital library" - "web service" - "web services" - "researchr" researchr: "https://researchr.org/publication/Visser%3A2009" cites: 0 citedby: 0 howpublished: "http://researchr.org" kind: "misc" key: "Visser:2009" - title: "Declarative Access Control for WebDSL: Combining Language Integration and Separation of Concerns" author: - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1109/ICWE.2008.15" abstract: "In this paper, we present the extension of WebDSL, a domain-specific language for web application development, with abstractions for declarative definition of access control. The extension supports the definition of a wide range of access control policies concisely and transparently as a separate concern. In addition to regulating the access to pages and actions, access control rules are used to infer navigation options not accessible to the current user, preventing the presentation of inaccessible links. The extension is an illustration of a general approach to the design of domain-specific languages for different technical domains to support separation of concerns in application development, while preserving linguistic integration. This approach is realized by means of a transformational semantics that weaves separately defined aspects into an integrated implementation. " links: doi: "http://dx.doi.org/10.1109/ICWE.2008.15" "webdsl": "http://webdsl.org" tags: - "WebDSL" - "semantics" - "rule-based" - "separation of concerns" - "transformation language" - " action semantics" - "language design" - "weaving" - "rules" - "web applications" - "DSL" - "abstraction" - "access control policies" - "access control" - "aspect weaving" - "design" - "role-based access control" - "systematic-approach" - "transformation" - "domain-specific language" researchr: "https://researchr.org/publication/GroenewegenV08" cites: 26 citedby: 7 pages: "175-188" booktitle: "ICWE" kind: "inproceedings" key: "GroenewegenV08" - title: "When Frameworks Let You Down. Platform-Imposed Constraints on the Design and Evolution of Domain-Specific Languages" author: - name: "Danny M. Groenewegen" link: "https://www.linkedin.com/in/dannygroenewegen/" - name: "Zef Hemel" link: "http://zef.me" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" month: "October" abstract: "Application frameworks encapsulate domain knowledge in a reusable library, providing abstractions for a particular domain. As such, they can form the basis for domain-specific languages, which may offer notational constructs, static analysis, and optimizations specific for the domain. Additional abstractions can be incrementally added on top of a domain-specific, following an inductive approach towards its design, evolving the language as new domain insights are acquired. A problem arises when such additions do not align well with the underlying framework. In this paper, we provide different examples of this problem and describe scenarios of dealing with it." links: "technical report": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-039.pdf" tags: - "framework" - "optimization" - "WebDSL" - "application framework" - "domain analysis" - "analysis" - "language design" - "static analysis" - "constraints" - "reuse" - "software evolution" - "C++" - "DSL" - "abstraction" - "incremental" - "design" - "systematic-approach" - "domain-specific language" researchr: "https://researchr.org/publication/GroenewegenHKV08-DSM" cites: 0 citedby: 2 booktitle: "DSM" kind: "inproceedings" key: "GroenewegenHKV08-DSM" - title: "Ur: statically-typed metaprogramming with type-level record computation" author: - name: "Adam J. Chlipala" link: "http://adam.chlipala.net/" year: "2010" doi: "http://doi.acm.org/10.1145/1806596.1806612" links: doi: "http://doi.acm.org/10.1145/1806596.1806612" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/pldi/Chlipala10" researchr: "https://researchr.org/publication/Chlipala10-0" cites: 0 citedby: 1 pages: "122-133" booktitle: "PLDI" kind: "inproceedings" key: "Chlipala10-0" - title: "HTML templates that fly: a template engine approach to automated offloading from server to client" author: - name: "Michiaki Tatsubori" link: "https://researchr.org/alias/michiaki-tatsubori" - name: "Toyotaro Suzumura" link: "https://researchr.org/alias/toyotaro-suzumura" year: "2009" doi: "http://doi.acm.org/10.1145/1526709.1526837" 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." links: doi: "http://doi.acm.org/10.1145/1526709.1526837" tags: - "program partitioning" - "object-oriented programming" - "rule-based" - "meta programming" - "caching" - "meta-model" - "template engine" - "testing" - "principles" - "model-driven development" - "code generation" - "object-role modeling" - "security" - "logic programming" - "web applications" - "programming" - "subject-oriented programming" - "logic" - "Meta-Environment" - "web caching" - "partitioning" - "design" - "systematic-approach" - "feature-oriented programming" - "meta-objects" researchr: "https://researchr.org/publication/TatsuboriS09" cites: 0 citedby: 0 pages: "951-960" booktitle: "WWW" kind: "inproceedings" key: "TatsuboriS09" - title: "Hop: a language for programming the web 2.0" author: - name: "Manuel Serrano" link: "https://researchr.org/alias/manuel-serrano" - name: "Erick Gallesio" link: "https://researchr.org/alias/erick-gallesio" - name: "Florian Loitsch" link: "https://researchr.org/alias/florian-loitsch" year: "2006" doi: "http://doi.acm.org/10.1145/1176617.1176756" links: doi: "http://doi.acm.org/10.1145/1176617.1176756" tags: - "programming languages" - "programming" researchr: "https://researchr.org/publication/SerranoGL06" cites: 0 citedby: 0 pages: "975-985" booktitle: "OOPSLA" kind: "inproceedings" key: "SerranoGL06" - title: "CRUISe: Composition of Rich User Interface Services" author: - name: "Stefan Pietschmann" link: "https://researchr.org/alias/stefan-pietschmann" - name: "Martin Voigt" link: "https://researchr.org/alias/martin-voigt" - name: "Andreas Rümpel" link: "https://researchr.org/alias/andreas-r%C3%BCmpel" - name: "Klaus Meißner" link: "https://researchr.org/alias/klaus-mei%C3%9Fner" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-02818-2_41" 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 " links: doi: "http://dx.doi.org/10.1007/978-3-642-02818-2_41" tags: - "reusable components" - "rule-based" - "software components" - "meta-model" - "web service" - "composition" - "software component" - "web engineering" - "reuse" - "model-driven development" - "maintenance" - "software engineering" - "model-driven engineering" - "web services" - "web applications" - "context-aware" - "logic" - "Meta-Environment" - "user interface composition" - "systematic-approach" researchr: "https://researchr.org/publication/PietschmannVRM09" cites: 0 citedby: 0 pages: "473-476" booktitle: "ICWE" kind: "inproceedings" key: "PietschmannVRM09" - title: "Survey of Technologies for Web Application Development" author: - name: "Barry Doyle" link: "https://researchr.org/alias/barry-doyle" - name: "Cristina Videira Lopes" link: "http://www.ics.uci.edu/~lopes/" year: "2008" doi: "http://arxiv.org/abs/0801.2618" links: doi: "http://arxiv.org/abs/0801.2618" tags: - "survey" - "web applications" researchr: "https://researchr.org/publication/abs-0801-2618" cites: 0 citedby: 0 journal: "corr" volume: "abs/0801.2618" kind: "article" key: "abs-0801-2618" - title: "Secure web application via automatic partitioning" author: - name: "Stephen Chong" link: "http://people.seas.harvard.edu/~chong/" - name: "Jed Liu" link: "https://researchr.org/alias/jed-liu" - name: "Andrew C. Myers" link: "https://researchr.org/alias/andrew-c.-myers" - name: "Xin Qi" link: "https://researchr.org/alias/xin-qi" - name: "K. Vikram" link: "https://researchr.org/alias/k.-vikram" - name: "Lantian Zheng" link: "https://researchr.org/alias/lantian-zheng" - name: "Xin Zheng" link: "https://researchr.org/alias/xin-zheng" year: "2007" doi: "http://doi.acm.org/10.1145/1294261.1294265" 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. " links: doi: "http://doi.acm.org/10.1145/1294261.1294265" tags: - "program partitioning" - "JavaScript" - "Java" - "functional programming" - "data-flow programming" - "data-flow" - "C++" - "security" - "compiler" - "web applications" - "partitioning" - "systematic-approach" researchr: "https://researchr.org/publication/ChongLMQVZZ07" cites: 33 citedby: 0 pages: "31-44" booktitle: "sosp" kind: "inproceedings" key: "ChongLMQVZZ07" - title: "Requirements for Rich Internet Application Design Methodologies" author: - name: "Jevon M. Wright" link: "https://researchr.org/alias/jevon-m.-wright" - name: "Jens Dietrich" link: "https://researchr.org/alias/jens-dietrich" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-85481-4_10" links: doi: "http://dx.doi.org/10.1007/978-3-540-85481-4_10" tags: - "AJAX" - "rich internet application" - "design" researchr: "https://researchr.org/publication/WrightD08" cites: 0 citedby: 0 pages: "106-119" booktitle: "wise" kind: "inproceedings" key: "WrightD08" - title: "Performing Systematic Literature Reviews with Researchr: Tool Demonstration" author: - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2010" month: "May" doi: "http://resolver.tudelft.nl/uuid:22b480a7-d09e-4ae6-abe7-9a5769e03c2b" abstract: "This paper describes the workflow for performing systematic literature reviews with the researchr digital library environment. " links: doi: "http://resolver.tudelft.nl/uuid:22b480a7-d09e-4ae6-abe7-9a5769e03c2b" tags: - "digital library" - "literature review" - "digital libraries" - "reviewing" - "Meta-Environment" - "workflow" - "systematic-approach" - "systematic review" researchr: "https://researchr.org/publication/Visser2010" cites: 11 citedby: 0 institution: "Software Engineering Research Group, Delft University of Technology" number: "TUD-SERG-2010-010" address: "Delft, The Netherlands" kind: "techreport" key: "Visser2010" - title: "RESTful Web Services" author: - name: "Leonard Richardson" link: "http://www.crummy.com/" - name: "Sam Ruby" link: "http://intertwingly.net/blog/" year: "2007" month: "May" doi: "http://oreilly.com/catalog/9780596529260" abstract: "You've built web sites that can be used by humans. But can you also build web sites that are usable by machines? That's where the future lies, and that's what this book shows you how to do. Today's 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." links: doi: "http://oreilly.com/catalog/9780596529260" tags: - "web service" - "architecture" - "REST" - "web services" - "Ruby" researchr: "https://researchr.org/publication/RichardsonRuby-2007" cites: 0 citedby: 0 publisher: "O'Reilly" kind: "book" key: "RichardsonRuby-2007" - title: "Code Generation by Model Transformation" author: - name: "Zef Hemel" link: "http://zef.me" - name: "Lennart C. L. Kats" link: "http://www.lclnet.nl/" - name: "Eelco Visser" link: "http://eelcovisser.org" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-69927-9_13" abstract: "The realization of model-driven software development requires effective techniques for implementing code generators. In this paper, we present a case study of code generation by model transformation with Stratego, a high-level transformation language based on the paradigm of rewrite rules with programmable strategies that integrates model-to-model, model-to-code, and code-to-code transformations. The use of concrete object syntax guarantees syntactic correctness of code patterns, and enables the subsequent transformation of generated code. The composability of strategies supports two dimensions of transformation modularity. Vertical modularity is achieved by designing a generator as a pipeline of model-to-model transformations that gradually transforms a high-level input model to an implementation. Horizontal modularity is achieved by supporting the definition of plugins which implement all aspects of a language feature. We discuss the application of these techniques in the implementation of WebDSL, a domain-specific language for dynamic web applications with a rich data model. " links: doi: "http://dx.doi.org/10.1007/978-3-540-69927-9_13" successor: "https://researchr.org/publication/HemelKGV10" "technical report (pdf)": "http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2008-012.pdf" tags: - "programming languages" - "model-to-model transformation" - "object-oriented programming" - "WebDSL" - "concrete object syntax" - "rule-based" - "transformation engineering" - "syntax definition" - "meta programming" - "data-flow language" - "pattern language" - "case study" - "graph transformation" - "meta-model" - "modeling language" - "modeling" - "language engineering" - "transformation language" - "software language engineering" - "language modeling" - "web engineering" - "data-flow programming" - "model-driven development" - "data-flow" - "source-to-source" - "graph-rewriting" - "software engineering" - "rules" - "model-driven engineering" - "C++" - "programming paradigms" - "code generation" - "object-role modeling" - "aspect oriented programming" - "model transformation" - "web applications" - "DSL" - "subject-oriented programming" - "Meta-Environment" - "rewriting" - "rewriting strategies" - "feature-oriented programming" - "concrete syntax" - "open-source" - "meta-objects" - "transformation" - "Stratego" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/HemelKV08" cites: 0 citedby: 3 pages: "183-198" booktitle: "ICMT" kind: "inproceedings" key: "HemelKV08" - title: "The project" author: - name: "Claus Brabrand" link: "https://researchr.org/alias/claus-brabrand" - name: "Anders Møller" link: "https://researchr.org/alias/anders-m%C3%B8ller" - name: "Michael I. Schwartzbach" link: "http://www.brics.dk/~mis/" year: "2002" doi: "http://doi.acm.org/10.1145/514183.514184" links: doi: "http://doi.acm.org/10.1145/514183.514184" researchr: "https://researchr.org/publication/BrabrandMS02" cites: 0 citedby: 1 journal: "ACM Trans. Internet Techn." volume: "2" number: "2" pages: "79-114" kind: "article" key: "BrabrandMS02" - title: "The Essence of Form Abstraction" author: - name: "Ezra Cooper" link: "https://researchr.org/alias/ezra-cooper" - name: "Sam Lindley" link: "https://researchr.org/alias/sam-lindley" - name: "Philip Wadler" link: "http://homepages.inf.ed.ac.uk/wadler/" - name: "Jeremy Yallop" link: "https://researchr.org/alias/jeremy-yallop" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-89330-1_15" links: doi: "http://dx.doi.org/10.1007/978-3-540-89330-1_15" tags: - "abstraction" researchr: "https://researchr.org/publication/CooperLWY08" cites: 0 citedby: 0 pages: "205-220" booktitle: "aplas" kind: "inproceedings" key: "CooperLWY08" - title: "Links: Web Programming Without Tiers" author: - name: "Ezra Cooper" link: "https://researchr.org/alias/ezra-cooper" - name: "Sam Lindley" link: "https://researchr.org/alias/sam-lindley" - name: "Philip Wadler" link: "http://homepages.inf.ed.ac.uk/wadler/" - name: "Jeremy Yallop" link: "https://researchr.org/alias/jeremy-yallop" year: "2006" doi: "http://dx.doi.org/10.1007/978-3-540-74792-5_12" 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. " links: doi: "http://dx.doi.org/10.1007/978-3-540-74792-5_12" tags: - "programming languages" - "web programming" - "JavaScript" - "Java" - "translation" - "SQL" - "AJAX" - "source-to-source" - "compiler" - "web applications" - "programming" - "database" - "systematic-approach" - "open-source" researchr: "https://researchr.org/publication/CooperLWY06" cites: 0 citedby: 1 pages: "266-296" booktitle: "FMCO" kind: "inproceedings" key: "CooperLWY06"