Selected

Could No-Code Be Code? Toward a No-Code Programming Language for Citizen Developers

By 2030 for each filled position in Software Engineering, two positions would remain unfilled. This already apparent loss of productivity has the software industry scrambling to fill the missing positions with citizen developers—technical peo- ple …

Language Oriented Modularity: From Theory to Practice

Language-oriented modularity (LOM) is a methodology that complements language-oriented programming (LOP) in providing on-demand language abstraction solutions during software development. It involves the implementation and immediate utilization of …

Application Embedding: A Language Approach to Declarative Web Programming

Since the early days of the Web, web application developers have aspired to develop much of their applications declaratively. However, one aspect of the application, namely its business-logic is constantly left imperative. In this work we present …

Separation of Powers in the Cloud: Where Applications and Users Become Peers

We challenge the widely accepted practice that web applications must be trusted with user data. We present an alternative model based on logic programming, where users and applications are equal peers in a shared cloud environment. User data is …

Versionable, Branchable, and Mergeable Application State

NoSQL databases are rapidly becoming the storage of choice for large-scale Web applications. However, for the sake of scalability these applications trade consistency for availability. In this paper, we regain control over this trade-off by adapting …

Crosscutting Revision Control System

Large and medium scale software projects often require a source code revision control (RC) system. Unfortunately, RC systems do not perform well with obliviousness and quantification found in aspect-oriented code. When classes are oblivious to …

A Debug Interface for Debugging Multiple Domain Specific Aspect Languages

Research in the area of multi-DSAL development has been mainly devoted to enabling the interoperability of multiple aspect mechanisms. Less attention has been given to making programming with multiple aspect languages practical. For domain specific …

Cedalion: A Language for Language Oriented Programming

Language Oriented Programming (LOP) is a paradigm that puts domain specific programming languages (DSLs) at the center of the software development process. Currently, there are three main approaches to LOP: (1) the use of internal DSLs, implemented …

Identifying Feature Interaction in Aspect-Oriented Frameworks

The simultaneous use of multiple aspect languages has the potential of becoming a significant one, as new aspect- oriented frameworks are developed and existing ones expand to incorporate features of others. A key challenge in combining multiple …

Modeling Aspect Mechanisms: A Top-Down Approach

A plethora of aspect mechanisms exist today. All of these diverse mechanisms integrate concerns into artifacts that exhibit crosscutting structure. What we lack and need is a characterization of the design space that these aspect mechanisms inhabit …