<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Transformations and Abstractions - software engineering</title>
    <link>http://blog.eelcovisser.net/</link>
    <description>about transformation of software and other stuff</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.1 - http://www.s9y.org/</generator>
    <pubDate>Thu, 08 Jul 2010 07:37:19 GMT</pubDate>

    <image>
        <url>http://blog.eelcovisser.net/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Transformations and Abstractions - software engineering - about transformation of software and other stuff</title>
        <link>http://blog.eelcovisser.net/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>TOOLS 2010 Portraits</title>
    <link>http://blog.eelcovisser.net/index.php?/archives/150-TOOLS-2010-Portraits.html</link>
            <category>photography</category>
            <category>photos</category>
            <category>software engineering</category>
    
    <comments>http://blog.eelcovisser.net/index.php?/archives/150-TOOLS-2010-Portraits.html#comments</comments>
    <wfw:comment>http://blog.eelcovisser.net/wfwcomment.php?cid=150</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.eelcovisser.net/rss.php?version=2.0&amp;type=comments&amp;cid=150</wfw:commentRss>
    

    <author>nospam@example.com (Eelco Visser)</author>
    <content:encoded>
    I finally got back into the photo processing game by mastering selection with Adobe Bridge; first make a selection of photos and then only process the ones with highest rank; separation of duties. I shot some photos at last week&#039;s &lt;a href=&quot;http://malaga2010.lcc.uma.es/&quot;&gt;TOOLS 2010&lt;/a&gt; conference, mostly during the dinners, since I was busy at other times. I uploaded the selection to a &lt;a href=&quot;http://bit.ly/91sjRm&quot;&gt;flickr set&lt;/a&gt;; here is a selection from the selection:

&lt;p /&gt;

&lt;center&gt;
&lt;a href=&quot;http://www.flickr.com/photos/eelcovisser/4772370824/&quot; title=&quot;Jean Bezivin by Eelco Visser, on Flickr&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4077/4772370824_79b9fec445_m.jpg&quot; width=&quot;240&quot; height=&quot;160&quot; alt=&quot;Jean Bezivin&quot;&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;p /&gt;
&lt;center&gt;
&lt;a href=&quot;http://www.flickr.com/photos/eelcovisser/4772574884/&quot; title=&quot;Bertrand Meyer by Eelco Visser, on Flickr&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4099/4772574884_a1504e804c_m.jpg&quot; width=&quot;240&quot; height=&quot;240&quot; alt=&quot;Bertrand Meyer&quot;&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;p /&gt;
&lt;center&gt;
&lt;a href=&quot;http://www.flickr.com/photos/eelcovisser/4772015507/&quot; title=&quot;Michael Ernst by Eelco Visser, on Flickr&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4098/4772015507_49a99e382d_m.jpg&quot; width=&quot;160&quot; height=&quot;240&quot; alt=&quot;Michael Ernst&quot;&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;p /&gt;
&lt;center&gt;
&lt;a href=&quot;http://www.flickr.com/photos/eelcovisser/4771938107/&quot; title=&quot;Florian Heidenreich by Eelco Visser, on Flickr&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4122/4771938107_b974b955ff_m.jpg&quot; width=&quot;240&quot; height=&quot;161&quot; alt=&quot;Florian Heidenreich&quot;&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;p /&gt;
&lt;center&gt;
&lt;a href=&quot;http://www.flickr.com/photos/eelcovisser/4772762752/&quot; title=&quot;Dennis Wagelaar by Eelco Visser, on Flickr&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4078/4772762752_af0f341fb2_m.jpg&quot; width=&quot;161&quot; height=&quot;240&quot; alt=&quot;Dennis Wagelaar&quot;&gt;&lt;/a&gt;
&lt;/center&gt;
 
    </content:encoded>

    <pubDate>Thu, 08 Jul 2010 09:37:19 +0200</pubDate>
    <guid isPermaLink="false">http://blog.eelcovisser.net/index.php?/archives/150-guid.html</guid>
    
</item>
<item>
    <title>Lambdas in Spoofax</title>
    <link>http://blog.eelcovisser.net/index.php?/archives/149-Lambdas-in-Spoofax.html</link>
            <category>domain-specific languages</category>
            <category>program transformation</category>
            <category>stratego/xt</category>
    
    <comments>http://blog.eelcovisser.net/index.php?/archives/149-Lambdas-in-Spoofax.html#comments</comments>
    <wfw:comment>http://blog.eelcovisser.net/wfwcomment.php?cid=149</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.eelcovisser.net/rss.php?version=2.0&amp;type=comments&amp;cid=149</wfw:commentRss>
    

    <author>nospam@example.com (Eelco Visser)</author>
    <content:encoded>
    Today I&#039;ve been participating in the &lt;a href=&quot;http://planet-research20.org/ttc2010/index.php?Itemid=132&quot;&gt;Transformation Tool Contest 2010&lt;/a&gt;, which is  held as part of the TOOLS 2010 conference in Malaga. The plan for my participation was the use of &lt;a href=&quot;http://researchr.org&quot;&gt;researchr&lt;/a&gt; for use in the evaluation of the results of the contest. Then it turned out that the example problem for the live part of the contest was evaluation of lambda terms. An excellent problem to tackle with &lt;a href=&quot;http://spoofax.org&quot;&gt;Spoofax&lt;/a&gt;. So after doing some last improvements of researchr, I spent the afternoon creating a little lambda language environment. 

&lt;p /&gt;

The &lt;a href=&quot;https://svn.strategoxt.org/repos/StrategoXT/spoofax-contrib/lambda/trunk&quot;&gt;source code&lt;/a&gt; of the project is part of the Spoofax contributions directory.

&lt;p /&gt; 

Here is the Eclipse editor:

&lt;p /&gt;

&lt;center&gt;
&lt;img src=&quot;http://blog.eelcovisser.net/uploads/lambda-environment1.png&quot; border=0 align=center&gt;
&lt;/center&gt;

In the figure example.lam is the input for the transformation in concrete syntax; example.aterm is the abstract syntax for example.lam; example.nf.aterm is the result of normalizing example.aterm; finally, example.nf.lam is the result of pretty-printing the normal form. The result should be the correct addition of the lambda numeral for 2 with itself.

&lt;p /&gt;

The syntax of the language is defined in SDF:

&lt;center&gt;
&lt;img  src=&quot;http://blog.eelcovisser.net/uploads/lambda-syntax.png&quot; border=0 align=center&gt;
&lt;/center&gt;

The Lambda.sdf module contains the definition of the concrete syntax. The Lambda.str module is automatically derived from Lambda.sdf and defines the abstract syntax (as an algebraic signature in Stratego).

&lt;p /&gt;

The transformation is defined in Stratego. Here are the rules for pretty-printing and beta reduction:

&lt;center&gt;
&lt;img  src=&quot;http://blog.eelcovisser.net/uploads/lambda-beta2.png&quot; border=0 align=center&gt;
&lt;/center&gt;

&lt;p /&gt;

Renaming rules are used to introduce the bindings of bound variables. The check rule verifies that no two definitions for the same name are given. The warning rule finds free variables and gives a warning in the editor.

&lt;center&gt;
&lt;img  src=&quot;http://blog.eelcovisser.net/uploads/lambda-rename.png&quot; border=0 align=center&gt;
&lt;/center&gt;

&lt;p /&gt;

Here&#039;s a screencast with a little demo to give an impression of the environment:

&lt;p /&gt;

&lt;center&gt;
&lt;embed src=&quot;http://www.st.ewi.tudelft.nl/~eelco/spoofax/ttc-lambda-spoofax.mov&quot; height=&quot;788&quot; width=&quot;1024&quot;
autostart=&quot;false&quot; autoload=&quot;false&quot;
pluginspage=&quot;http://www.apple.com/quicktime/download/&quot;&gt;&lt;/embed&gt;
&lt;/center&gt;
&lt;center&gt;
&lt;a href=&quot;http://www.st.ewi.tudelft.nl/~eelco/spoofax/ttc-lambda-spoofax.mov&quot;&gt;download&lt;/a&gt;
&lt;/center&gt;
 
    </content:encoded>

    <pubDate>Thu, 01 Jul 2010 17:12:29 +0200</pubDate>
    <guid isPermaLink="false">http://blog.eelcovisser.net/index.php?/archives/149-guid.html</guid>
    
</item>
<item>
    <title>mobl</title>
    <link>http://blog.eelcovisser.net/index.php?/archives/148-mobl.html</link>
            <category>domain-specific languages</category>
            <category>model-driven engineering</category>
            <category>programming languages</category>
            <category>software engineering</category>
            <category>web engineering</category>
    
    <comments>http://blog.eelcovisser.net/index.php?/archives/148-mobl.html#comments</comments>
    <wfw:comment>http://blog.eelcovisser.net/wfwcomment.php?cid=148</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.eelcovisser.net/rss.php?version=2.0&amp;type=comments&amp;cid=148</wfw:commentRss>
    

    <author>nospam@example.com (Eelco Visser)</author>
    <content:encoded>
    In my keynote talk at the &lt;a href=&quot;http://www.kybele.etsii.urjc.es/mose2010/&quot;&gt;Model-Driven Service Engineering&lt;/a&gt; workshop in Malaga (co-located with ICMT and TOOLS) I gave a presentation of &lt;a href=&quot;http://mobl-lang.org&quot;&gt;mobl&lt;/a&gt;, the domain-specific language for mobile (web) application development that we (&lt;a href=&quot;http://zef.me&quot;&gt;Zef Hemel&lt;/a&gt;) are developing.

&lt;p /&gt;

&lt;center&gt;
&lt;div style=&quot;width:425px&quot; id=&quot;__ss_4642628&quot;&gt;&lt;object id=&quot;__sse4642628&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mobl-100629095517-phpapp01&amp;stripped_title=mobl&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed name=&quot;__sse4642628&quot; src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mobl-100629095517-phpapp01&amp;stripped_title=mobl&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/center&gt; 
    </content:encoded>

    <pubDate>Tue, 29 Jun 2010 16:58:36 +0200</pubDate>
    <guid isPermaLink="false">http://blog.eelcovisser.net/index.php?/archives/148-guid.html</guid>
    
</item>
<item>
    <title>Pure and Declarative Syntax Definition: Paradise Lost and Regained</title>
    <link>http://blog.eelcovisser.net/index.php?/archives/146-Pure-and-Declarative-Syntax-Definition-Paradise-Lost-and-Regained.html</link>
            <category>domain-specific languages</category>
            <category>programming languages</category>
            <category>software engineering</category>
            <category>syntax</category>
    
    <comments>http://blog.eelcovisser.net/index.php?/archives/146-Pure-and-Declarative-Syntax-Definition-Paradise-Lost-and-Regained.html#comments</comments>
    <wfw:comment>http://blog.eelcovisser.net/wfwcomment.php?cid=146</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.eelcovisser.net/rss.php?version=2.0&amp;type=comments&amp;cid=146</wfw:commentRss>
    

    <author>nospam@example.com (Eelco Visser)</author>
    <content:encoded>
    &quot;In the beginning were the words, and the words were trees,
and the trees were words. All words were made through
grammars, and without grammars was not any word made
that was made. Those were the days of the garden of Eden.
And there where language engineers strolling through the
garden. They made languages which were sets of words by
making grammars full of beauty. And with these grammars,
they turned words into trees and trees into words. And the
trees were natural, and pure, and beautiful, as were the grammars.

&lt;p /&gt;

Among them were software engineers who made software
as the language engineers made languages. And they
dwelt with them and they were one people. The language engineers
were software engineers and the software engineers
were language engineers. And the language engineers made
language software. They made recognizers to know words,
and generators to make words, and parsers to turn words
into trees, and formatters to turn trees into words.

&lt;p /&gt; 
But the software they made was not as natural, and pure,
and beautiful as the grammars they made. So they made software
to make language software and began to make language
software by making syntax definitions. And the syntax definitions
were grammars and grammars were syntax definitions.
With their software, they turned syntax definitions into
language software. And the syntax definitions were language
software and language software were syntax definitions. And
the syntax definitions were natural, and pure, and beautiful,
as were the grammars.&quot;

&lt;p /&gt; 

Thus starts our essay on declarative syntax definition, which has been accepted for presentation at the Onward! 2010 conference:

&lt;blockquote&gt;
Lennart C. L. Kats, Eelco Visser, Guido Wachsmuth. 
&lt;a href=&quot;http://researchr.org/publication/KWV10&quot;&gt;Pure and Declarative Syntax Definition: Paradise Lost and Regained.&lt;/a&gt;
In Proceedings of Onward! 2010. ACM, 2010. 
(&lt;a href=&quot;http://researchr.org/publication/KWV10&quot;&gt;draft of final version&lt;/a&gt;)
&lt;/blockquote&gt;

&lt;p /&gt;

&lt;p /&gt;


&lt;b&gt;Abstract&lt;/b&gt; 

Syntax definitions are pervasive in modern software systems,
and serve as the basis for language processing tools
like parsers and compilers. Mainstream parser generators
pose restrictions on syntax definitions that follow from their
implementation algorithm. They hamper evolution, maintainability,
and compositionality of syntax definitions. The
pureness and declarativity of syntax definitions is lost. We
analyze how these problems arise for different aspects of
syntax definitions, discuss their consequences for language
engineers, and show how the pure and declarative nature of
syntax definitions can be regained. 
    </content:encoded>

    <pubDate>Mon, 21 Jun 2010 20:55:46 +0200</pubDate>
    <guid isPermaLink="false">http://blog.eelcovisser.net/index.php?/archives/146-guid.html</guid>
    
</item>
<item>
    <title>Building DSLs with Spoofax Language Workbench</title>
    <link>http://blog.eelcovisser.net/index.php?/archives/145-Building-DSLs-with-Spoofax-Language-Workbench.html</link>
            <category>domain-specific languages</category>
            <category>model-driven engineering</category>
            <category>program transformation</category>
            <category>programming languages</category>
            <category>software engineering</category>
            <category>stratego/xt</category>
            <category>syntax</category>
            <category>web engineering</category>
            <category>webdsl</category>
    
    <comments>http://blog.eelcovisser.net/index.php?/archives/145-Building-DSLs-with-Spoofax-Language-Workbench.html#comments</comments>
    <wfw:comment>http://blog.eelcovisser.net/wfwcomment.php?cid=145</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.eelcovisser.net/rss.php?version=2.0&amp;type=comments&amp;cid=145</wfw:commentRss>
    

    <author>nospam@example.com (Eelco Visser)</author>
    <content:encoded>
    The slides of my keynote talk at Code Generation 2010 with an appendix about model-to-model transformation and transformation strategies.

&lt;p /&gt;

&lt;center&gt;
&lt;div style=&quot;width:425px&quot; id=&quot;__ss_4534414&quot;&gt;&lt;object id=&quot;__sse4534414&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=codegen10-100618054627-phpapp01&amp;stripped_title=building-dsls-with-the-spoofax-language-workbench&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed name=&quot;__sse4534414&quot; src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=codegen10-100618054627-phpapp01&amp;stripped_title=building-dsls-with-the-spoofax-language-workbench&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;/center&gt;

&lt;p /&gt; 
    </content:encoded>

    <pubDate>Fri, 18 Jun 2010 12:38:27 +0200</pubDate>
    <guid isPermaLink="false">http://blog.eelcovisser.net/index.php?/archives/145-guid.html</guid>
    
</item>
<item>
    <title>Strategies for Design &amp; Implementation of Domain-Specific Languages</title>
    <link>http://blog.eelcovisser.net/index.php?/archives/144-Strategies-for-Design-Implementation-of-Domain-Specific-Languages.html</link>
            <category>domain-specific languages</category>
            <category>model-driven engineering</category>
            <category>program transformation</category>
            <category>software engineering</category>
            <category>web engineering</category>
            <category>webdsl</category>
    
    <comments>http://blog.eelcovisser.net/index.php?/archives/144-Strategies-for-Design-Implementation-of-Domain-Specific-Languages.html#comments</comments>
    <wfw:comment>http://blog.eelcovisser.net/wfwcomment.php?cid=144</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.eelcovisser.net/rss.php?version=2.0&amp;type=comments&amp;cid=144</wfw:commentRss>
    

    <author>nospam@example.com (Eelco Visser)</author>
    <content:encoded>
    In the fifth lecture in the &lt;a href=&quot;http://department.st.ewi.tudelft.nl/course/in4308&quot;&gt;Model-Driven Software Development&lt;/a&gt; course at TU Delft I talked about strategies for design and implementation of domain-specific languages, illustrated with a sketch of the mapping from &lt;a href=&quot;http://webdsl.org&quot;&gt;WebDSL&lt;/a&gt; to Java.

&lt;p /&gt;

&lt;center&gt;
&lt;div style=&quot;width:425px&quot; id=&quot;__ss_4486836&quot;&gt;&lt;object id=&quot;__sse4486836&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mdsd05-100613045853-phpapp01&amp;stripped_title=strategies-for-design-implementation-of-domainspecific-languages&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed name=&quot;__sse4486836&quot; src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mdsd05-100613045853-phpapp01&amp;stripped_title=strategies-for-design-implementation-of-domainspecific-languages&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;/center&gt;

&lt;p /&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
	var flattr_url = &#039;http://blog.eelcovisser.net/index.php?/archives/144-Strategies-for-Design-Implementation-of-Domain-Specific-Languages.html&#039;;
&lt;/script&gt;
&lt;script src=&quot;http://api.flattr.com/button/load.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt; 
    </content:encoded>

    <pubDate>Sun, 13 Jun 2010 11:59:19 +0200</pubDate>
    <guid isPermaLink="false">http://blog.eelcovisser.net/index.php?/archives/144-guid.html</guid>
    
</item>
<item>
    <title>Encapsulating Software Platform Logic by Aspect-Oriented Programming</title>
    <link>http://blog.eelcovisser.net/index.php?/archives/143-Encapsulating-Software-Platform-Logic-by-Aspect-Oriented-Programming.html</link>
            <category>domain-specific languages</category>
            <category>model-driven engineering</category>
            <category>program transformation</category>
            <category>programming languages</category>
            <category>software deployment</category>
            <category>software engineering</category>
            <category>stratego/xt</category>
    
    <comments>http://blog.eelcovisser.net/index.php?/archives/143-Encapsulating-Software-Platform-Logic-by-Aspect-Oriented-Programming.html#comments</comments>
    <wfw:comment>http://blog.eelcovisser.net/wfwcomment.php?cid=143</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.eelcovisser.net/rss.php?version=2.0&amp;type=comments&amp;cid=143</wfw:commentRss>
    

    <author>nospam@example.com (Eelco Visser)</author>
    <content:encoded>
    The &lt;a href=&quot;http://strategoxt.org&quot;&gt;Stratego&lt;/a&gt; transformation language was originally developed on and for the C/Linux platform. A couple of years ago we started porting the language and the Stratego/XT infrastructure to Java, which eventually enabled us to build the &lt;a href=&quot;http://blog.eelcovisser.net/index.php?/archives/139-Spoofax-0.5.html&quot;&gt;Spoofax Language Workbench&lt;/a&gt;. The back-end of the Stratego compiler was fairly unproblematic; the &lt;a href=&quot;https://svn.strategoxt.org/repos/StrategoXT/strategoxt/trunk/strc-core/lib/stratego/strc/c/s2c-ng.str&quot;&gt;back-end for C&lt;/a&gt; is a bit over 1000 lines of code translating the compact Stratego Core language. Porting this was a matter of replacing the translation scheme. However, the extensive library, partly consisting on primitives implemented in C, depended on the Linux platform. To adapt the library to the Java platform, we extended Stratego with a simple aspect mechanism. Using &lt;em&gt;override&lt;/em&gt; and &lt;em&gt;proceed&lt;/em&gt; stragey definitions from libraries can be replaced with new definitions. The aspect extension and its application for achieving portability is discussed in the following paper (which has been accepted for the &lt;a href=&quot;http://www2010.ieee-scam.org/&quot;&gt;SCAM 2010&lt;/a&gt; conference):

&lt;blockquote&gt;
Lennart C. L. Kats, Eelco Visser. &lt;a href=&quot;http://researchr.org/publication/KatsVisser-SCAM-2010&quot;&gt;Encapsulating Software Platform Logic by Aspect-Oriented Programming: A Case Study in Using Aspects for Language Portability.&lt;/a&gt; In Cristina Marinescu, Jurgen J. Vinju, editors, Proceedings of the Tenth IEEE International Working Conference on Source Code Analysis and Manipulation 2010. 2010. 
&lt;/blockquote&gt;

&lt;p /&gt;

&lt;b&gt;Abstract:&lt;/b&gt;

Software platforms such as the Java Virtual Machine or the CLR .NET virtual machine have their own ecosystem of a core programming language or instruction set, libraries, and developer community. Programming languages can target multiple software platforms to increase interoperability or to boost performance. Introducing a new compiler backend for a language is the first step towards targeting a new platform, translating the language to the platform&#039;s language or instruction set. Programs written in modern languages generally make extensive use of APIs, based on the runtime system of the software platform, introducing additional portability concerns. They may use APIs that are implemented by platform-specific libraries. Libraries may perform platform-specific operations, make direct native calls, or make assumptions about performance characteristics of operations or about the file system.

This paper proposes to use aspect weaving to invasively adapt programs and libraries to address such portability concerns, and identifies four classes of aspects for this purpose. We evaluate this approach through a case study where we retarget the Stratego program transformation language towards the Java Virtual Machine. 
    </content:encoded>

    <pubDate>Fri, 11 Jun 2010 15:18:58 +0200</pubDate>
    <guid isPermaLink="false">http://blog.eelcovisser.net/index.php?/archives/143-guid.html</guid>
    
</item>
<item>
    <title>Web Abstractions</title>
    <link>http://blog.eelcovisser.net/index.php?/archives/142-Web-Abstractions.html</link>
            <category>domain-specific languages</category>
            <category>model-driven engineering</category>
            <category>software engineering</category>
            <category>web engineering</category>
            <category>webdsl</category>
    
    <comments>http://blog.eelcovisser.net/index.php?/archives/142-Web-Abstractions.html#comments</comments>
    <wfw:comment>http://blog.eelcovisser.net/wfwcomment.php?cid=142</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.eelcovisser.net/rss.php?version=2.0&amp;type=comments&amp;cid=142</wfw:commentRss>
    

    <author>nospam@example.com (Eelco Visser)</author>
    <content:encoded>
    The third and fourth lectures in the &lt;a href=&quot;http://department.st.ewi.tudelft.nl/course/in4308&quot;&gt;course on model-driven software development&lt;/a&gt; that I teach at TU Delft. I talked about domain-specific abstractions in the domain of web programming, as incarnated in the design of &lt;a href=&quot;http://webdsl.org&quot;&gt;WebDSL&lt;/a&gt;.

&lt;p /&gt;

&lt;center&gt;
&lt;div style=&quot;width:425px&quot; id=&quot;__ss_3390321&quot;&gt;
&lt;object id=&quot;__sse3390321&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mdsd03-100310160213-phpapp01&amp;stripped_title=modeldriven-software-development-introduction-overview-3390321&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed name=&quot;__sse3390321&quot; src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mdsd03-100310160213-phpapp01&amp;stripped_title=modeldriven-software-development-introduction-overview-3390321&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;/center&gt;

&lt;p /&gt;

&lt;center&gt;
&lt;object id=&quot;__sse3390323&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mdsd04-100310161941-phpapp02&amp;stripped_title=modeldriven-software-development-introduction-overview-3390323&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed name=&quot;__sse3390323&quot; src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mdsd04-100310161941-phpapp02&amp;stripped_title=modeldriven-software-development-introduction-overview-3390323&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;/center&gt;

&lt;p /&gt;

The material is based on the following publications:

&lt;ul&gt;

&lt;li&gt; Eelco Visser. &lt;a href=&quot;http://researchr.org/publication/Visser07&quot;&gt;WebDSL: A Case Study in Domain-Specific Language Engineering&lt;/a&gt;. GTTSE 2007: 291-373

&lt;li&gt; Danny M. Groenewegen, Eelco Visser. &lt;a href=&quot;http://researchr.org/publication/GroenewegenV08&quot;&gt;Declarative Access Control for WebDSL: Combining Language Integration and Separation of Concerns&lt;/a&gt;. ICWE 2008: 175-188 &lt;br /&gt;

&lt;li&gt; Zef Hemel, Ruben Verhaaf, Eelco Visser. &lt;a href=&quot;http://researchr.org/publication/HemelVV08&quot;&gt;WebWorkFlow: An Object-Oriented Workflow Modeling Language for Web Applications&lt;/a&gt;. MoDELS 2008: 113-127 &lt;br /&gt;

&lt;li&gt;
Danny M. Groenewegen, Eelco Visser. &lt;a href=&quot;http://researchr.org/publication/GroenewegenV-SLE-2009&quot;&gt;Integration of Data Validation and User Interface Concerns in a DSL for Web Applications&lt;/a&gt;. SLE 2009: 164-173 

&lt;/ul&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
	var flattr_url = &#039;http://blog.eelcovisser.net/index.php?/archives/142-Web-Abstractions.html&#039;;
&lt;/script&gt;
&lt;script src=&quot;http://api.flattr.com/button/load.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;

 
    </content:encoded>

    <pubDate>Thu, 10 Jun 2010 01:15:54 +0200</pubDate>
    <guid isPermaLink="false">http://blog.eelcovisser.net/index.php?/archives/142-guid.html</guid>
    
</item>
<item>
    <title>Code Generation by Model Transformation</title>
    <link>http://blog.eelcovisser.net/index.php?/archives/141-Code-Generation-by-Model-Transformation.html</link>
            <category>domain-specific languages</category>
            <category>model-driven engineering</category>
            <category>program transformation</category>
            <category>programming languages</category>
            <category>software engineering</category>
            <category>stratego/xt</category>
            <category>web engineering</category>
            <category>webdsl</category>
    
    <comments>http://blog.eelcovisser.net/index.php?/archives/141-Code-Generation-by-Model-Transformation.html#comments</comments>
    <wfw:comment>http://blog.eelcovisser.net/wfwcomment.php?cid=141</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.eelcovisser.net/rss.php?version=2.0&amp;type=comments&amp;cid=141</wfw:commentRss>
    

    <author>nospam@example.com (Eelco Visser)</author>
    <content:encoded>
    The journal version of our &lt;a href=&quot;http://researchr.org/publication/HemelKV08&quot;&gt;ICMT 2008&lt;/a&gt; paper has finally and officially been published in the &lt;a href=&quot;http://www.springerlink.com/content/109378/?p=d417fe32d72d4bd393ec08bf53eab60a&amp;pi=0&quot;&gt;Software and Systems Modeling&lt;/a&gt; journal. 

&lt;blockquote&gt;
Zef Hemel, Lennart C. L. Kats, Danny M. Groenewegen, Eelco Visser. &lt;a href=&quot;http://researchr.org/publication/HemelKGV-2010&quot;&gt;Code generation by model transformation: a case study in transformation modularity.&lt;/a&gt; Software and Systems Modeling, 9(3):375-402, June 2010. 
&lt;/blockquote&gt;

&lt;p /&gt;

The big contribution with respect to the earlier paper is a new approach to type checking with Stratego. Instead of defining a type checker as a single traversal that takes care of name resolution, type analysis, error checking and generation of error messages, these aspects are defined separately and can also be &lt;em&gt;used&lt;/em&gt; separately. This allows a much cleaner style for defining type checkers and it enables a smooth combination of type analysis and normalizing transformations. The style also turned out to work very well in &lt;a href=&quot;http://blog.eelcovisser.net/index.php?/archives/138-The-Spoofax-Language-Workbench.html&quot;&gt;Spoofax&lt;/a&gt; setting where analyses such as name resolution are used for multiple purposes in the IDE.

&lt;p /&gt;

The paper is published under the &lt;em&gt;open access&lt;/em&gt; regime, so you can read it even without subscription to the journal.


&lt;p /&gt;

&lt;b&gt;Abstract&lt;/b&gt;

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. 

&lt;p /&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
	var flattr_url = &#039;http://blog.eelcovisser.net/index.php?/archives/141-Code-Generation-by-Model-Transformation.html&#039;;
&lt;/script&gt;
&lt;script src=&quot;http://api.flattr.com/button/load.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt; 
    </content:encoded>

    <pubDate>Tue, 08 Jun 2010 13:39:26 +0200</pubDate>
    <guid isPermaLink="false">http://blog.eelcovisser.net/index.php?/archives/141-guid.html</guid>
    
</item>
<item>
    <title>Domain Analysis &amp; Data Modeling</title>
    <link>http://blog.eelcovisser.net/index.php?/archives/140-Domain-Analysis-Data-Modeling.html</link>
            <category>domain-specific languages</category>
            <category>model-driven engineering</category>
            <category>software engineering</category>
    
    <comments>http://blog.eelcovisser.net/index.php?/archives/140-Domain-Analysis-Data-Modeling.html#comments</comments>
    <wfw:comment>http://blog.eelcovisser.net/wfwcomment.php?cid=140</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.eelcovisser.net/rss.php?version=2.0&amp;type=comments&amp;cid=140</wfw:commentRss>
    

    <author>nospam@example.com (Eelco Visser)</author>
    <content:encoded>
    Second lecture in the &lt;a href=&quot;http://department.st.ewi.tudelft.nl/course/in4308&quot;&gt;course on model-driven software development&lt;/a&gt; that I teach at TU Delft. I talked about domain analysis, interaction design, and domain-driven design.

&lt;center&gt;
&lt;div style=&quot;width:425px&quot; id=&quot;__ss_3140146&quot;&gt;&lt;object id=&quot;__sse3140146&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mdsd02-100211154647-phpapp02&amp;stripped_title=domain-analysis-data-modeling&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed name=&quot;__sse3140146&quot; src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mdsd02-100211154647-phpapp02&amp;stripped_title=domain-analysis-data-modeling&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;/center&gt;

&lt;p /&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
	var flattr_url = &#039;http://blog.eelcovisser.net/index.php?/archives/140-Domain-Analysis-Data-Modeling.html&#039;;
&lt;/script&gt;
&lt;script src=&quot;http://api.flattr.com/button/load.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt; 
    </content:encoded>

    <pubDate>Mon, 31 May 2010 22:30:22 +0200</pubDate>
    <guid isPermaLink="false">http://blog.eelcovisser.net/index.php?/archives/140-guid.html</guid>
    
</item>
<item>
    <title>Spoofax 0.5</title>
    <link>http://blog.eelcovisser.net/index.php?/archives/139-Spoofax-0.5.html</link>
            <category>domain-specific languages</category>
            <category>model-driven engineering</category>
            <category>program transformation</category>
            <category>programming languages</category>
            <category>software engineering</category>
            <category>stratego/xt</category>
            <category>syntax</category>
    
    <comments>http://blog.eelcovisser.net/index.php?/archives/139-Spoofax-0.5.html#comments</comments>
    <wfw:comment>http://blog.eelcovisser.net/wfwcomment.php?cid=139</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.eelcovisser.net/rss.php?version=2.0&amp;type=comments&amp;cid=139</wfw:commentRss>
    

    <author>nospam@example.com (Eelco Visser)</author>
    <content:encoded>
    We&#039;re pleased to announce the 0.5 release of the &lt;a href=&quot;http://strategoxt.org/Spoofax/WebHome&quot;&gt;Spoofax language workbench&lt;/a&gt;, an Eclipse plugin that seamlessly integrates Java versions of Stratego and SDF into Eclipse. Spoofax can be used to develop new languages and transformations based on SDF and Stratego in the Eclipse environment. 

&lt;p /&gt;

Stratego and SDF have traditonally been implemented using C, but to increase portability we have developed Java versions of the &lt;a href=&quot;http://strategoxt.org/Stratego/STRJ&quot;&gt;Stratego compiler&lt;/a&gt; and &lt;a href=&quot;http://strategoxt.org/Stratego/JSGLR&quot;&gt;the JSGLR parser for SDF&lt;/a&gt;. These new implementations are seamlessly integrated into the Spoofax environment, but can also be used as stand-alone tools.

&lt;p /&gt;

IDE support has become essential for developers to be productive with programming languages. Spoofax provides IDE support for Stratego and SDF for developers of languages and transformations. It also aids in the development of IDE support for new languages: from the first version of an !SDF grammar, an editor can be created for the language and used &lt;a href=&quot;http://strategoxt.org/Spoofax/Features&quot;&gt;side-by-side&lt;/a&gt; with the definition in Eclipse. Using Stratego, the editor can be enhanced with transformations and semantic editor services such as reference resolving and content completion.

The screenshot below illustrates some of the IDE features supported by editors created with Spoofax:

&lt;center&gt;
&lt;img src=&quot;http://strategoxt.org/pub/Spoofax/Features/screenshot-annotated-small.png&quot; alt=&quot;Spoofax editor features&quot;  width=&quot;800&quot; height=&quot;349&quot;  /&gt;
&lt;/center&gt;

&lt;p /&gt;

Spoofax can be downloaded from &lt;a href=&quot;http://www.spoofax.org&quot;&gt;spoofax.org&lt;/a&gt; or &lt;a href=&quot;http://www.strategoxt.org/Spoofax&quot;&gt;strategoxt.org/Spoofax&lt;/a&gt;. When installed in Eclipse, the plugin provides a &quot;New project&quot; wizard that creates a new skeleton project illustrating some of the Spoofax features. The website also includes a &lt;a href=&quot;http://strategoxt.org/Spoofax/Tour&quot;&gt;tour&lt;/a&gt; further showcasing the features of the workbench. For migrating C-based Stratego projects to Spoofax, please read our &lt;a href=&quot;http://strategoxt.org/Spoofax/FAQ&quot;&gt;FAQ&lt;/a&gt; or contact us in case of other questions.

&lt;p /&gt;

An overview of the architecture of Spoofax and how Spoofax can be used in the development of new languages and IDE services is given in the paper &lt;a href=&quot;http://researchr.org/publication/KatsVisser2010&quot;&gt;The Spoofax Language Workbench. Rules for Declarative Specification of Languages and IDEs&lt;/a&gt; by Lennart Kats and Eelco Visser, accepted for publication at &lt;a href=&quot;http://www.splashcon.org/&quot;&gt;SPLASH/OOPSLA 2010&lt;/a&gt;. Further documentation can be found on the Spoofax website.

&lt;p /&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
	var flattr_url = &#039;http://blog.eelcovisser.net/index.php?/archives/139-Spoofax-0.5.html&#039;;
	var flattr_btn=&#039;compact&#039;;
&lt;/script&gt;
&lt;script src=&quot;http://api.flattr.com/button/load.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
 
    </content:encoded>

    <pubDate>Fri, 28 May 2010 23:41:07 +0200</pubDate>
    <guid isPermaLink="false">http://blog.eelcovisser.net/index.php?/archives/139-guid.html</guid>
    
</item>
<item>
    <title>Performing Systematic Literature Reviews with Researchr</title>
    <link>http://blog.eelcovisser.net/index.php?/archives/137-Performing-Systematic-Literature-Reviews-with-Researchr.html</link>
            <category>researchr</category>
            <category>software engineering</category>
    
    <comments>http://blog.eelcovisser.net/index.php?/archives/137-Performing-Systematic-Literature-Reviews-with-Researchr.html#comments</comments>
    <wfw:comment>http://blog.eelcovisser.net/wfwcomment.php?cid=137</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.eelcovisser.net/rss.php?version=2.0&amp;type=comments&amp;cid=137</wfw:commentRss>
    

    <author>nospam@example.com (Eelco Visser)</author>
    <content:encoded>
    Eelco Visser. Performing Systematic Literature Reviews with Researchr: Tool Demonstration. Technical Report TUD-SERG-2010-010, Software Engineering Research Group, Delft University of Technology, Delft, The Netherlands, May 2010. [&lt;a href=&quot;http://researchr.org/publication/Visser2010&quot;&gt;researchr&lt;/a&gt;]

&lt;p /&gt;

In this paper, I describe the integrated workflow for performing systematic reviews
with researchr, a web application for management of bibliographic data. Researchr
semantically links publications to authors, journals, proceedings, and conferences, supporting
reliable browsing. Publications can be classified using public (shared) tags. Researchr
has over a million publication records, mainly in computer science. The core of
the collection is based on the DBLP database (as provided via its XML export), but is
extended with contributions from users. Researchr is open for contributions; users can
contribute missing publications and can make corrections to publication records in the
database and add missing information such as abstracts and citations. The quality of
such modifications is guarded by a reputation system. Users can use researchr to provide
a profile of their research with publications. More importantly, the site supports
literature reviews, by creating bibiographies, collections of publications about a topic
of choice. In this paper I describe the elements of the systematic reviewing workflow in
researchr.

Performing a systematic review consists of creating a bibliography, defining and executing
a search strategy, defining classification schemes, and reviewing and classifying
papers.

&lt;p /&gt;

&lt;script type=&quot;text/javascript&quot;&gt;var flattr_url = &#039;http://blog.eelcovisser.net/index.php?/archives/137-Performing-Systematic-Literature-Reviews-with-Researchr.html&#039;; var flattr_btn=&#039;compact&#039;; &lt;/script&gt;
&lt;script src=&quot;http://api.flattr.com/button/load.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt; 
    </content:encoded>

    <pubDate>Mon, 03 May 2010 15:13:35 +0200</pubDate>
    <guid isPermaLink="false">http://blog.eelcovisser.net/index.php?/archives/137-guid.html</guid>
    
</item>
<item>
    <title>Model-Driven Software Development: Introduction</title>
    <link>http://blog.eelcovisser.net/index.php?/archives/136-Model-Driven-Software-Development-Introduction.html</link>
            <category>domain-specific languages</category>
            <category>model-driven engineering</category>
            <category>software engineering</category>
    
    <comments>http://blog.eelcovisser.net/index.php?/archives/136-Model-Driven-Software-Development-Introduction.html#comments</comments>
    <wfw:comment>http://blog.eelcovisser.net/wfwcomment.php?cid=136</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.eelcovisser.net/rss.php?version=2.0&amp;type=comments&amp;cid=136</wfw:commentRss>
    

    <author>nospam@example.com (Eelco Visser)</author>
    <content:encoded>
    I&#039;ll be posting my slides from a course on model-driven software development that I&#039;m teaching at Delft University of Technology. Here&#039;s the first, introducing the course.

&lt;center&gt;
&lt;div style=&quot;width:425px&quot; id=&quot;__ss_3061258&quot;&gt;&lt;strong style=&quot;display:block;margin:12px 0 4px&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/eelcovisser/modeldriven-software-development-introduction-overview-3061258&quot; title=&quot;Model-Driven Software Development - Introduction &amp;amp; Overview&quot;&gt;Model-Driven Software Development - Introduction &amp;amp; Overview&lt;/a&gt;&lt;/strong&gt;&lt;object id=&quot;__sse3061258&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mdsd01-introduction-100203080105-phpapp02&amp;rel=0&amp;stripped_title=modeldriven-software-development-introduction-overview-3061258&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed name=&quot;__sse3061258&quot; src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mdsd01-introduction-100203080105-phpapp02&amp;rel=0&amp;stripped_title=modeldriven-software-development-introduction-overview-3061258&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style=&quot;padding:5px 0 12px&quot;&gt;View more &lt;a href=&quot;http://www.slideshare.net/&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/eelcovisser&quot;&gt;Eelco Visser&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;
&lt;/center&gt;

&lt;script type=&quot;text/javascript&quot;&gt;var flattr_url = &#039;http://blog.eelcovisser.net/index.php?/archives/136-Model-Driven-Software-Development-Introduction.html&#039;; var flattr_btn=&#039;compact&#039;; &lt;/script&gt;
&lt;script src=&quot;http://api.flattr.com/button/load.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt; 
    </content:encoded>

    <pubDate>Fri, 30 Apr 2010 21:35:47 +0200</pubDate>
    <guid isPermaLink="false">http://blog.eelcovisser.net/index.php?/archives/136-guid.html</guid>
    
</item>
<item>
    <title>Talk about the Researchr Digital Library</title>
    <link>http://blog.eelcovisser.net/index.php?/archives/129-Talk-about-the-Researchr-Digital-Library.html</link>
            <category>researchr</category>
            <category>webdsl</category>
    
    <comments>http://blog.eelcovisser.net/index.php?/archives/129-Talk-about-the-Researchr-Digital-Library.html#comments</comments>
    <wfw:comment>http://blog.eelcovisser.net/wfwcomment.php?cid=129</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.eelcovisser.net/rss.php?version=2.0&amp;type=comments&amp;cid=129</wfw:commentRss>
    

    <author>nospam@example.com (Eelco Visser)</author>
    <content:encoded>
    At the recent &lt;a href=&quot;http://www.smart-generators.org/do/view/WG211/WebHome&quot;&gt;IFIP WG 2.11&lt;/a&gt; meeting in St Andrews, I gave a talk about &lt;a href=&quot;http://researchr.org&quot;&gt;researchr&lt;/a&gt;, the digital library application I have been working on in the past year. Here is the recording of that talk, which gives an introduction to the features of the tool.

&lt;p /&gt;

&lt;center&gt;
&lt;embed src=&quot;http://www.st.ewi.tudelft.nl/~eelco/researchr/researchr-wg211-75.mov&quot; height=&quot;592&quot; width=&quot;768&quot;
autostart=&quot;false&quot; autoload=&quot;false&quot;
pluginspage=&quot;http://www.apple.com/quicktime/download/&quot;&gt;&lt;/embed&gt;
&lt;/center&gt;
&lt;center&gt;
Download:
&lt;a href=&quot;http://www.st.ewi.tudelft.nl/~eelco/researchr/researchr-wg211-75.mov&quot;&gt;768x576&lt;/a&gt;
&lt;/center&gt;

&lt;script type=&quot;text/javascript&quot;&gt;var flattr_url = &#039;http://blog.eelcovisser.net/index.php?/archives/129-Talk-about-the-Researchr-Digital-Library.html&#039;; var flattr_btn=&#039;compact&#039;; &lt;/script&gt;
&lt;script src=&quot;http://api.flattr.com/button/load.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt; 
    </content:encoded>

    <pubDate>Mon, 15 Mar 2010 12:04:07 +0100</pubDate>
    <guid isPermaLink="false">http://blog.eelcovisser.net/index.php?/archives/129-guid.html</guid>
    
</item>
<item>
    <title>Spoofax: The Language Workbench</title>
    <link>http://blog.eelcovisser.net/index.php?/archives/128-Spoofax-The-Language-Workbench.html</link>
            <category>domain-specific languages</category>
            <category>model-driven engineering</category>
            <category>program transformation</category>
            <category>programming languages</category>
            <category>stratego/xt</category>
            <category>syntax</category>
    
    <comments>http://blog.eelcovisser.net/index.php?/archives/128-Spoofax-The-Language-Workbench.html#comments</comments>
    <wfw:comment>http://blog.eelcovisser.net/wfwcomment.php?cid=128</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.eelcovisser.net/rss.php?version=2.0&amp;type=comments&amp;cid=128</wfw:commentRss>
    

    <author>nospam@example.com (Eelco Visser)</author>
    <content:encoded>
    At the recent &lt;a href=&quot;&quot;&gt;IFIP WG 2.11&lt;/a&gt; meeting in St Andrews, I gave a demonstration talk about the &lt;a href=&quot;http://strategoxt.org/Spoofax&quot;&gt;Spoofax language workbench&lt;/a&gt;. I made a recording. The talk is, eh, a little, eh, rough, but should be useful to give an impression of the basic features of Spoofax.

&lt;p /&gt;

&lt;center&gt;
&lt;embed src=&quot;http://www.st.ewi.tudelft.nl/~eelco/spoofax/spoofax-wg211-100.mov&quot; height=&quot;784&quot; width=&quot;1024&quot;
autostart=&quot;false&quot;
pluginspage=&quot;http://www.apple.com/quicktime/download/&quot;&gt;&lt;/embed&gt;
&lt;/center&gt;
&lt;center&gt;
Download:
&lt;a href=&quot;http://www.st.ewi.tudelft.nl/~eelco/spoofax/spoofax-wg211-50.mov&quot;&gt;512x384&lt;/a&gt;,
&lt;a href=&quot;http://www.st.ewi.tudelft.nl/~eelco/spoofax/spoofax-wg211-75.mov&quot;&gt;768x576&lt;/a&gt;,
&lt;a href=&quot;http://www.st.ewi.tudelft.nl/~eelco/spoofax/spoofax-wg211-100.mov&quot;&gt;1024x768&lt;/a&gt;
&lt;/center&gt;
 
    </content:encoded>

    <pubDate>Sun, 14 Mar 2010 23:20:38 +0100</pubDate>
    <guid isPermaLink="false">http://blog.eelcovisser.net/index.php?/archives/128-guid.html</guid>
    
</item>

</channel>
</rss>