Summary Major operating systems for wireless sensor networks (WSN) enforce an event-based programming paradigm for efficiency reasons. However, practice has shown that the resulting code complexity is hard to manage for software developers and leads to difficult problems during development, deployment, and operations. Thus, thread libraries for WSN applications have been introduced, but the efficiency [...]
Compiler-Assisted Thread Abstractions for Resource-Constrained Systems
September 26th, 2011 — article
Compiling Business Process Models for Sensor Networks
April 7th, 2011 — publication
Wireless sensor networks are increasingly being used to improve business processes. The behavior of such a process is usually captured in models while its implementation is typically created manually. Besides being expensive, this approach entails deviations between the model and the implementation of a business process, thus rendering it less effective. We aim at closing [...]
MPS Experience
October 23rd, 2010 — article
I have recently worked quite a bit with the language workbench MPS and I think it’s about time to note the experiences I have made and the background knowledge I have collected.
Programming Abstractions with Debugging Support for Resource-Constrained Devices
October 5th, 2010 — publication
Abstractions are crucial in order to manage complex systems. In pervasive computing, though, common programming abstractions tend to be too expensive for the employed resource-constrained devices. In recent years, the wireless sensor network community has proposed several solutions to this problem. However, little has been done to also support debugging on the level of the [...]
Threads2Events: An Automatic Code Generation Approach
May 3rd, 2010 — publication
There is a long-standing dispute on whether and when thread-based programming should be preferred over the event-based paradigm. This dispute has also extended into the wireless sensor networks domain. Many existing operating systems rely on events due to their efficiency, but make code management difficult. Others rely on threads for developer comfort, but at the [...]
Meta-Debugging Pervasive Computers
April 16th, 2010 — publication
As computers get more complex, the task of programming them gets more complex as well. This is especially true for the “Pervasive Computer”, which is a massively distributed system consisting of unreliable embedded devices that communicate with each other over lousy wireless links. A common approach to address the programming problem is to offer programming [...]
meta level debugging
November 9th, 2009 — article
One of the challenges in meta programming is the ability to debug on the meta level. It is not satisfying to have to step through the generated code in order to figure out what is wrong in the model. And indeed many meta programming toolchains have poor support for proper debugging. But wait, this problem [...]
Language Oriented Programming: The Next Programming Paradigm
August 20th, 2009 — article
As mentioned previously the term language-oriented programming (LOP) today mainly refers to the underlying paradigm of JetBrains‘s Meta Programming System. This is due to a publication from Sergey Dmitriev entitled Language Oriented Programming: The Next Programming Paradigm. There he proclaims the next technology revolution which leads us from the Stone Age to “a new age [...]
language-oriented programming
July 23rd, 2009 — article
The term “language-oriented programming” (LOP) is these days mainly used by JetBrains and refers to the underlying paradigm of their Meta Programming System. I will blog about that later. For now I want to focus on Martin Ward, because the LOP term was actually coined by him in 1994 with a paper entitled Language Oriented [...]
Stratego/XT
July 9th, 2009 — article
Stratego/XT is the first meta programming system I had a closer look at. The project defines itself as “a language and tool set for program transformation”. By program transformation they mean “programming tasks using some form of automatic program generation or transformation, such as code generation from a domain-specific language, aspect weaving, optimization, or specialization [...]