Quite some time ago I read the Programming in Scala and the Programming Scala book and decided to offer a student lab on a Scala-based implementation of a Reversi tournament framework. One part of this framework is a DSL for the configuration of a tournament. So I went on and investigated the Scala techniques that allow for the construction of internal DSLs. Although there is quite some information on the internet and in the books about Scala DSLs here is what I came up with to get my student started.
Friday, April 8, 2011
Thursday, April 7, 2011
Compiling Business Process Models for Sensor Networks
Saturday, October 23, 2010
MPS Experience
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.
Tuesday, October 5, 2010
Programming Abstractions with Debugging Support for Resource-Constrained Devices
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 abstraction. Instead, a developer is forced to understand the lower-level details in order to find and correct defects. This clearly hampers the development of applications. We aim at advancing the state of the art in programming of resource-constrained devices by introducing debugging support for programming abstractions.
Friday, April 16, 2010
Meta-Debugging Pervasive Computers
Friday, January 22, 2010
xtc, meta-models and static typing
In my opinion, parsing expression grammars are the tool of choice for growing a grammars. Among the existing PEG tools, the Rats! parser generator of the eXTensible C framework offers the most. Besides many handy features there is a complete C grammar and a pretty printer. Ready to take off!
Monday, November 9, 2009
meta level debugging
But wait, this problem has in principle actually been solved since ages. When we reduce meta programming to code transformation and realize that a C compiler in that sense is a code transformer this becomes apparent. Almost nobody steps through the assembler code in order to find a bug in the C source. Instead the toolchain has support for so called source level debugging, which is exactly what we want: debugging on the meta level. So it seams advisable to understand the concepts of source level debugging so that we can copy or adapt them to meta programming. That's why I decided to explore the GCC and the GDB together with its graphical frontend DDD which are the tools I am most familiar with.
Wednesday, September 16, 2009
Rats!
Thursday, August 20, 2009
Language Oriented Programming: The Next Programming Paradigm
Thursday, July 23, 2009
language-oriented programming
Sunday, July 12, 2009
OMeta
OMeta is an object-oriented language for pattern matching based on Parsing Expression Grammars (PEG). It makes some valuable extensions to standard PEGs which I want to summarize here. My main source of information is the paper OMeta: an Object-Oriented Language for Pattern Matching by Alessandro Warth and Ian Piumatra.
Thursday, July 9, 2009
Stratego/XT
Wednesday, July 8, 2009
Parsing Expression Grammars
Parsing Expression Grammar (PEG) is a rather new class of grammars for formal languages. The foundations date back to 1973 and come from "Parsing algorithms with backtrack" by Alexander Birman and Jeffrey D. Ullman. But in those days the approach was considered as not being practical because of limited memory resources. In 2002 Bryan Ford revived the topic in his master's thesis Packrat Parsing: a Practical Linear-Time Algorithm with Backtracking by turning the theoretical model into an equivalent, but practical one. Since then the topic has been gaining more and more attraction and additional publications followed. Bryan is collecting the - in his mind - important ones on a PEG homepage.
Thursday, July 2, 2009
Model-driven Software Development
It seems that the Software Engineering Podcast is going to keep me busy for a while. For me it is a valuable source of knowledge. I had no idea that I have no idea about software engineering ;-)
Friday, June 26, 2009
Patterns for Fault Tolerant Systems
Today I listened to the Software Engineering Radio podcast with Robert S. Hammer on fault tolerance. The podcast goes along the lines of Robert's book on Patterns for Fault Tolerant Systems.
Tuesday, June 23, 2009
Patterns
Chippy, a friend of mine, pointed me to the Heise developer SoftwareArchitekTOUR podcast (german), especially to the episode one about the usage of patterns. Chippy is a former colleague and at that time we were discussing a lot about pattern driven software architectures and code generation.
Thursday, April 16, 2009
domain specific languages
As I wanted to obtain a deeper understanding on how code generation, DSLs and programming languages in general are related to each other I started to research. I found a lot of publications on DSLs from various authors and companies.
One of those authors is Martin Fowler who is writing a DSL book and has written a great article about what he calls Language Workbenches, a vision of an IDE which inherently operates with and on DSLs.