<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://lambda-the-ultimate.org">
<channel>
 <title>Lambda the Ultimate - DSL</title>
 <link>http://lambda-the-ultimate.org/taxonomy/term/24/0</link>
 <description>Domain Specific Languages</description>
 <language>en</language>
<item>
 <title>Microsoft Oslo</title>
 <link>http://lambda-the-ultimate.org/node/3029</link>
 <description>&lt;p &gt;It seems that Oslo is going to get a lot of press soon, and I don&#039;t think we have discussed it yet, nor am I sure I really understand what it&#039;s all about...&lt;p &gt;
We have been following Microsoft&#039;s DSL and modeling project on and off for a couple of years, and Oslo seems to be another step on this road. The buzz seems to be about visual development, a textual DSL, and development by non-developers (which is probably not the same as end-user programming).&lt;p &gt;
eWeek has a short discussion of &lt;a href=&quot;http://www.eweek.com/c/a/Windows/The-Origins-of-Microsofts-Oslo-Software-Modeling-Platform/&quot;&gt;The Origins of Microsoft&#039;s Oslo Software Modeling Platform&lt;/a&gt;. If you have links to more informative resources, or insights to share, please do.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <pubDate>Tue, 30 Sep 2008 02:24:50 -0400</pubDate>
</item>
<item>
 <title>Phil Windley&#039;s DSL adventures </title>
 <link>http://lambda-the-ultimate.org/node/2977</link>
 <description>&lt;p &gt;Phil Windley has has a new startup, and he is documenting some of aspects of their design process (business and technical) on his blog. For us the nice part is that he is building a DSL. &lt;a href=&quot;http://www.windley.com/archives/2007/11/domain_specific_language.shtml&quot;&gt;Here&lt;/a&gt; is an explanation why building a DSL makes sense (not that we need one, over here, but still a nice analysis). And &lt;a href=&quot;http://www.windley.com/archives/2008/09/parsing_with_perl.shtml&quot;&gt;here&lt;/a&gt; is a discussion of high order perl and parsing.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <pubDate>Sun, 07 Sep 2008 02:04:38 -0400</pubDate>
</item>
<item>
 <title>Communicating Scala Objects</title>
 <link>http://lambda-the-ultimate.org/node/2970</link>
 <description>&lt;p &gt;I wouldn&#039;t normally think a library is LtU material, but since this one lives at the intersection of embedded DSLs, process calculi, and a spotlight language, I think it fits: &lt;a href=&quot;http://users.comlab.ox.ac.uk/bernard.sufrin/CSO/cpa2008-cso.pdf&quot;&gt;Communicating Scala Objects&lt;/a&gt;, Bernard Sufrin, Communicating Process Architectures 2008.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;In this paper we introduce the core features of CSO (Communicating Scala Objects) – a notationally convenient embedding of the essence of occam in a modern, generically typed, object-oriented programming language that is compiled to Java Virtual Machine (JVM) code.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;If you would like to play with it, the library can be downloaded &lt;a href=&quot;http://users.comlab.ox.ac.uk/bernard.sufrin/CSO/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/16">Parallel/Distributed</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/32">Scala</category>
 <pubDate>Wed, 03 Sep 2008 18:47:28 -0400</pubDate>
</item>
<item>
 <title>From Writing and Analysis to the Repository: Taking the Scholars&#039; Perspective on Scholarly Archiving</title>
 <link>http://lambda-the-ultimate.org/node/2955</link>
 <description>&lt;small&gt;Marshall, C.C. &lt;a href=&quot;http://www.csdl.tamu.edu/~marshall/p251-marshall-final.pdf&quot;&gt;From Writing and Analysis to the Repository: Taking the Scholars&#039; Perspective on Scholarly Archiving&lt;/a&gt;. Proceedings of JCDL&#039;08&lt;/small&gt;&lt;p&gt;
&lt;blockquote&gt;
This paper reports the results of a qualitative field study of the scholarly writing, collaboration, information management, and long-term archiving practices of researchers in five related subdisciplines. The study focuses on the kinds of artifacts the researchers create in the process of writing a paper, how they exchange and store materials over the short term, how they handle references and bibliographic resources, and the strategies they use to guarantee the long term safety of their scholarly materials.&lt;/blockquote&gt;&lt;p&gt;
Not directly programming language related, but two things makes this paper relevant. First, many of the tools involved, especially those that really enhance productivity are language-based, or include DSLs (e.g., Latex, Bibtex, R (+Sweave) etc.). Second, many of us write papers, and as language geeks we surely crave great tools...&lt;p&gt;
So, what is you ideal tool chest when it comes to doing and publishing research? And what do you actually &lt;i&gt;use&lt;/i&gt; everyday? 
</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <pubDate>Wed, 27 Aug 2008 18:58:16 -0400</pubDate>
</item>
<item>
 <title>Mozilla &quot;Ubiquity&quot;</title>
 <link>http://lambda-the-ultimate.org/node/2939</link>
 <description>&lt;p &gt;A command-line, textual, and probably linguistic, &lt;a href=&quot;https://wiki.mozilla.org/Labs/Ubiquity&quot;&gt;interface&lt;/a&gt; to the browser.&lt;p &gt;
I am not sure how complex they are planning of making this, nor how it meshes with &lt;a href=&quot;http://adaptivepath.com/aurora/&quot;&gt;visions&lt;/a&gt; of the future of web browsing, but it&#039;s worth keeping an eye on.&lt;P &gt;&lt;br &gt;
I spent some time thinking about site-specific scripting, and had some discussions with students about building a site-specific DSL compiled to Greasemonkey scripts, but alas nothing came of it. It would be interesting to see whether Ubiquity command lines could be integrated into scripts, and how extensible the vocabulary is going to be, and on what level (i.e., site by site, via plugins etc.) Clearly also related to the often discussed topic of &quot;end-user programming&quot;.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <pubDate>Sun, 17 Aug 2008 15:15:47 -0400</pubDate>
</item>
<item>
 <title>Guy Steele on Programming Languages</title>
 <link>http://lambda-the-ultimate.org/node/2921</link>
 <description>&lt;p &gt;Things always seem to slow down as we approach this time of year, so I&#039;ll post a OOPSLA 2007 video interview of &lt;a href=&#039;http://www.infoq.com/interviews/Programming-Languages-Guy-Steele&#039;&gt;Guy Steele on Programming Languages&lt;/a&gt; that I stumbled upon.  Covers a range of topics that are of interest to the current and future state of PLs.  Nothing too technically deep, but tidbits of interest scattered throughout the interview (especially on DSLs).&lt;/p&gt;
&lt;p &gt;(see also prior LtU discussion &lt;a href=&#039;http://lambda-the-ultimate.org/node/1205&#039;&gt;Guy Steele on Language Design&lt;/a&gt;).&lt;/p&gt;
&lt;p &gt;(Maybe others have seen this before but I really like the interface that is provided for the video.  The list of questions are clickable links which move you to that place in the interview where the question was asked.  I hope this catches on for all technical video interviews.)&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/7">History</category>
 <pubDate>Fri, 01 Aug 2008 00:00:13 -0400</pubDate>
</item>
<item>
 <title>Functional Netlists</title>
 <link>http://lambda-the-ultimate.org/node/2888</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.postech.ac.kr/~gla/paper/icfp54-park.pdf&quot;&gt;Functional Netlists&lt;/a&gt;, Sungwoo Park, Jinha Kim, Hyeonseung Im. ICFP 2008.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
In efforts to overcome the complexity of the syntax and the lack of formal semantics of conventional hardware description languages, a number of functional hardware description languages have been developed. Like conventional hardware description languages, however, functional hardware description languages eventually convert all source programs into netlists, which describe wire connections in hardware circuits at the lowest level and conceal all high-level descriptions written into source programs.&lt;/p&gt;
&lt;p &gt;We develop a variant of the lambda calculus, called l-lambda  (linear lambda), which may serve as a high-level substitute for netlists. In order to support higher-order functions, l-lambda  uses a linear type system which enforces the linear use of variables of function type. The translation of l-lambda  into structural descriptions of hardware circuits is sound and complete in the sense that it maps expressions only to realizable hardware circuits and that every realizable hardware circuit has a corresponding expression in l-lambda. To illustrate the use of l-lambda  as a high-level substitute for netlists, we design a simple hardware description language that extends l  with polymorphism, and use it to implement a Fast Fourier Transform circuit.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;Given the recent discussion about hardware synthesis languages, the appearance of this paper seems timely. The use of linear types is perhaps unsurprising from a technical point of view, but it&#039;s surprising when you consider how frequently and in how many different contexts they appear. &lt;/p&gt;
&lt;p &gt;Also, one thing I don&#039;t understand: there&#039;s apparently a difference between a &quot;hardware description language&quot; and a &quot;hardware synthesis language&quot;. If anyone could explain what the difference means, I&#039;d appreciate it. :)&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <pubDate>Wed, 09 Jul 2008 17:53:48 -0400</pubDate>
</item>
<item>
 <title>Back to the future</title>
 <link>http://lambda-the-ultimate.org/node/2842</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.tilestack.com/&quot;&gt;TileStack&lt;/a&gt; is an attempt to resurrect HyperCard and bring it to the web.&lt;p &gt;
Running online there are going to be &lt;a href=&quot;http://www.tilestack.com/community/faq/321&quot;&gt;limitations&lt;/a&gt; about which stacks can be ported, which may reduce the usefulness and impact of this project, but maybe a standalone version will come later.&lt;p &gt;
The system &lt;a href=&quot;http://www.tilestack.com/community/faq/311&quot;&gt;compiles&lt;/a&gt; Speak (the TileStack version of HyperTalk) to Javascript. If the result is not obfuscated, something I haven&#039;t verified, it may be possible to augment the output from TileStack with additional capabilities not supported or not yet implemented.&lt;p &gt;
From the compatibility angle it is interesting to note that they renamed the language and seem to imply they are going to extend it beyond HyperTalk, without giving any specific guarantee about future compatibility. I&#039;d suggest releasing the compiler that&#039;s as close to full HyperTalk compatibility as a separate product (or even, if they can bring themselves to do it, releasing it as open source).&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/7">History</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/31">Javascript</category>
 <pubDate>Sun, 08 Jun 2008 14:27:10 -0400</pubDate>
</item>
<item>
 <title>Map-reduce-merge: simplified relational data processing on large clusters</title>
 <link>http://lambda-the-ultimate.org/node/2836</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://portal.acm.org/citation.cfm?doid=1247480.1247602&quot;&gt;Map-reduce-merge: simplified relational data processing on large clusters&lt;/a&gt; (&lt;a href=&quot;http://cs.baylor.edu/~speegle/5335/2007slides/MapReduceMerge.pdf&quot;&gt;freely-accessible slides&lt;/a&gt;). Hung-chih Yang, Ali Dasdan, Ruey-Lung Hsiao, D. Stott Parker. 2007 ACM SIGMOD conference.&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Map-Reduce is a programming model that enables easy development of scalable parallel applications to process a vast amount of data on large clusters of commodity machines. Through a simple interface with two functions, map and reduce, this model facilitates parallel implementation of many real-world tasks such as data processing jobs for search engines and machine learning.&lt;/p&gt;
&lt;p &gt;However,this model does not directly support processing multiple related heterogeneous datasets. While processing relational data is a common need, this limitation causes difficulties and/or inefficiency when Map-Reduce is applied on relational operations like joins.&lt;/p&gt;
&lt;p &gt;We improve Map-Reduce into a new model called Map-Reduce-Merge. It adds to Map-Reduce a Merge phase that can efficiently merge data already partitioned and sorted (or hashed) by map and reduce modules. We also demonstrate that this new model can express relational algebra operators as well as implement several join algorithms.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;They seem to add a third phase &amp;ndash; merge: ((k1, [v1]), (k2, [v2])) → (k3, [v3]) &amp;ndash; which combines the outputs of two separate, parallel MapReduce tasks.&lt;/p&gt;
&lt;p &gt;This makes it possible to do things like joins and build cartesian products.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/16">Parallel/Distributed</category>
 <pubDate>Wed, 04 Jun 2008 09:38:04 -0400</pubDate>
</item>
<item>
 <title>Processing.js</title>
 <link>http://lambda-the-ultimate.org/node/2815</link>
 <description>&lt;p &gt;John Resig (of &lt;a href=&quot;http://jquery.com/&quot;&gt;jQuery&lt;/a&gt; fame) has ported the &lt;a href=&quot;http://processing.org/&quot;&gt;Processing visualization language&lt;/a&gt; to &lt;a href=&quot;http://ejohn.org/blog/processingjs/&quot;&gt;JavaScript&lt;/a&gt;.&lt;p &gt;
The examples are remarkable, check them out (but check the browser issues John discusses).&lt;p &gt;
John has a little &lt;a href=&quot;http://ejohn.org/blog/processingjs/&quot;&gt;confession&lt;/a&gt;:&lt;br &gt;
&lt;blockquote &gt;&lt;p &gt;The first portion of the project was writing a parser to dynamically convert code written in the Processing language, to JavaScript. This involves a lot of gnarly regular expressions chewing up the code, spitting it out in a format that the browser understands.
&lt;p &gt;
It works &quot;fairly well&quot; (in that it&#039;s able to handle anything that the processing.org web site throws at it) but I&#039;m sure its total scope is limited (until a proper parser is involved). I felt bad about tackling this using regular expressions until I found out that the original Processing code base did it in the same manner (they now use a real parser, naturally).&lt;/blockquote&gt;
&lt;p &gt;
Actually that&#039;s quite cool in itself (even if angels weep at this parsing code, I think we on LtU shouldn&#039;t cast the first stone). DSLs should be easily built and played with. Cleaning up the implementation comes later, if at all.&lt;p &gt;
Purists may not only object to the regular expression parsing, but also to the central line of code which ties things together, namely: &lt;b &gt;eval(parse(code, p))&lt;/b&gt;. But then, DSL lovers are not the sort of people to object to eval...&lt;p &gt;
In the old days of LtU we regularly posted links to cool small interpreters that people could play with. Some of the more amusing ones were javascript based, and the page contained a REPL form (Luke, I am talking to you!). It is a shame we don&#039;t post more stuff like this, in between the more highbrow discussions...&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/31">Javascript</category>
 <pubDate>Sat, 17 May 2008 21:13:28 -0400</pubDate>
</item>
<item>
 <title>COLA Brainfuck</title>
 <link>http://lambda-the-ultimate.org/node/2796</link>
 <description>&lt;p &gt;From the &lt;a href=&quot;http://www.swa.hpi.uni-potsdam.de/index.html&quot;&gt;Software Architecture Group&lt;/a&gt; at the Hasso Plattner Institut:&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Our &lt;a href=&quot;http://www.swa.hpi.uni-potsdam.de/tutorials/cola/index.html&quot;&gt;tutorial&lt;/a&gt; on COLA provides insight on how programming languages can be implemented using the combined abstractions and an implementation of parsing expression grammars in COLA. The &quot;esoteric&quot; programming language brainfuck was chosen for its simplicity, which allows for concentrating on COLA&#039;s features.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;Previously: &lt;a href=&quot;http://lambda-the-ultimate.org/node/2483&quot;&gt;COLA and Open, extensible object models&lt;/a&gt;; via &lt;a href=&quot;http://del.icio.us/neuraxon77&quot;&gt;neuraxon77&lt;/a&gt;.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/8">Implementation</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/15">Meta-Programming</category>
 <pubDate>Thu, 01 May 2008 03:58:14 -0400</pubDate>
</item>
<item>
 <title>Chris Crawford&#039;s 9 Breakthroughs</title>
 <link>http://lambda-the-ultimate.org/node/2766</link>
 <description>&lt;blockquote &gt;&lt;p &gt;
Games industry curmudgeon and interactive storytelling proponent Chris Crawford spoke at the Game Developers Exchange conference here in Atlanta yesterday. As a part of the talk he explained the &quot;Nine Breakthroughs&quot; that were important to his work on Storytron. I recorded them &lt;a href=&quot;http://www.watercoolergames.org/archives/000916.shtml&quot;&gt;here&lt;/a&gt;...&lt;br &gt;
&lt;/blockquote&gt;
&lt;p &gt;
Surprisingly, many of the ideas are about languages - either the programming languages used to program the games, or the language interfaces provided to users.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <pubDate>Sat, 12 Apr 2008 20:29:58 -0400</pubDate>
</item>
<item>
 <title>Applied Metamodelling: A Foundation for Language Driven Development</title>
 <link>http://lambda-the-ultimate.org/node/2711</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.ceteva.com/book.html&quot;&gt;Applied Metamodelling: A Foundation for Language Driven Development&lt;/a&gt; (2004)&lt;br &gt;
by Tony Clark, Paul Sammut, James Willans&lt;/p&gt;
&lt;p &gt;An excerpt: &lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Language-driven development is fundamentally based on the ability to rapidly design new languages and tools in a unified and interoperable manner. We argue that existing technologies do not provide this capability, but a language engineering approach based on metamodelling can. The detailed study of metamodelling and how it can realise the Language-Driven Development vision will form the focus for the remainder of this book.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;In software engineering circles the term &quot;language driven development&quot; is synonymous with &quot;language oriented programming&quot;, a term which LtU members are more familiar with (thanks to Martin Ward&#039;s article &lt;a href=&quot;http://www.cse.dmu.ac.uk/~mward/martin/papers/middle-out-t.pdf&quot;&gt;Language Oriented Programming&lt;/a&gt; which first appeared in 1994, and then Martin Fowler&#039;s essays on the topic). The book hasn&#039;t appeared on the radar here on LtU, despite &lt;a href=&quot;http://scholar.google.ca/scholar?hl=en&amp;amp;lr=&amp;amp;cites=13735337140062296561&quot;&gt;41 citations&lt;/a&gt;. I suspect this is due in part to only &lt;a href=&quot;http://citeseer.ist.psu.edu/736058.html&quot;&gt;one citation at Citeseer&lt;/a&gt;, and the lack of cross-talk between computer scientists and software engineers.&lt;/p&gt;
&lt;p &gt;There are a lot of similarities between the &lt;a href=&quot;http://www.ceteva.com/xmf.html&quot;&gt;XMF language&lt;/a&gt; (&lt;a href=&quot;http://lambda-the-ultimate.org/node/2686&quot;&gt;discussion at LtU&lt;/a&gt;) and that of the &lt;a href=&quot;http://www.chrisseaton.com/katahdin/&quot;&gt;Katahdin language&lt;/a&gt; (&lt;a href=&quot;http://lambda-the-ultimate.org/node/2303&quot;&gt;discussion at LtU&lt;/a&gt;). Other related discussions here at LtU, include &lt;a href=&quot;http://lambda-the-ultimate.org/node/815&quot;&gt;Language Workbenches: The Killer App for DSLs&lt;/a&gt; - about the essay by Martin Fowler, &lt;a href=&quot;http://lambda-the-ultimate.org/node/1851&quot;&gt;Ralph Johnson: Language workbenches&lt;/a&gt; - a response to Fowler&#039;s essay, &lt;a href=&quot;http://lambda-the-ultimate.org/node/577&quot;&gt;XActium - Lightweight Language Engineering?&lt;/a&gt; - which discusses an essay about a previous version of XMF, &lt;a href=&quot;http://lambda-the-ultimate.org/node/1690&quot;&gt;Generating Interpreters?&lt;/a&gt; , &lt;a href=&quot;http://lambda-the-ultimate.org/node/377&quot;&gt;Language Oriented Programming&lt;/a&gt; - discusses an essay by Jetbrain&#039;s Sergey Dmitriev, &lt;a href=&quot;http://lambda-the-ultimate.org/node/1693&quot;&gt;&quot;Language Oriented Programming&quot; Meta Programming System&lt;/a&gt; - discussion of the Jetbrain MPS system, &lt;a href=&quot;http://lambda-the-ultimate.org/node/46&quot;&gt;The DSL, MDA, UML thing again...&lt;/a&gt; - an older discussion on the relationship between DSLs and MDA. &lt;/p&gt;
&lt;p &gt;(Disclaimer: Some may notice that I am mentioned on the XMF web site, but this is just because I subjected their XMF language to a number of grueling challenges which they passed with flying colors: see the &lt;a href=&quot;http://www.ceteva.com/XMF/&quot;&gt;language snippets&lt;/a&gt; in the documentation. I have no affiliation with their company.) &lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/15">Meta-Programming</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/17">Software Engineering</category>
 <pubDate>Fri, 07 Mar 2008 14:07:33 -0500</pubDate>
</item>
<item>
 <title>The little b language: shared models built from reusable parts</title>
 <link>http://lambda-the-ultimate.org/node/2671</link>
 <description>&lt;blockquote &gt;&lt;p &gt;
The &lt;a href=&quot;http://www.littleb.org/&quot;&gt;little b&lt;/a&gt; project is an effort to provide an open source language which allows scientists to build mathematical models of complex systems. The initial focus is systems biology. The goal is to stimulate widespread sharing and reuse of models.&lt;/p&gt;
&lt;p &gt;The little b language is designed to allow biologists to build models quickly and easily from shared parts, and to allow theorists to program new ways of describing complex systems. Currently, libraries have been developed for building ODE models of molecular networks in multi-compartment systems such as cellular epithelia.&lt;/p&gt;
&lt;p &gt;Little b is based in Common Lisp and contains mechanisms for rule-based reasoning, symbolic mathematics and object-oriented definitions. The syntax is designed to be terse and human-readable to facilitate communication. The environment is both interactive and compilable.&lt;br &gt;
&lt;/blockquote&gt;
&lt;p &gt;
Yet another biological DSL.&lt;p &gt;
As usual, it is best to start by looking at some &lt;a href=&quot;http://www.littleb.org/tutorial-biochem-quickstart.html&quot;&gt;sample models&lt;/a&gt;.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <pubDate>Wed, 13 Feb 2008 14:46:40 -0500</pubDate>
</item>
<item>
 <title>CUFP write-up</title>
 <link>http://lambda-the-ultimate.org/node/2572</link>
 <description>&lt;p &gt;A write-up of the &lt;a href=&quot;http://cufp.functionalprogramming.com/&quot;&gt;Commercial Users of Functional Programming&lt;/a&gt; meeting held this October is &lt;a href=&quot;http://cufp.galois.com/CUFP-2007-Report.pdf&quot;&gt;available&lt;/a&gt;, for those of us who didn&#039;t attend. The write-up is well written and thought provoking (it was written by Jeremy Gibbons, so that&#039;s not a surprise).&lt;p &gt;
The goal of the Commercial Users of Functional Programming series of workshops is &lt;i &gt;to build a community for users of functional programming languages and technology&lt;/i&gt;. This, the fourth workshop in the series, drew 104 registered participants (and apparently more than a handful of casual observers).&lt;p &gt;
It is often observed that functional programming is most widely used for language related projects (DSLs, static analysis tools and the like). Part of the reason is surely cultural. People working on projects of this type are more familiar with functional programming than people working in other domains. But it seems that it may be worthwhile to discuss the other reasons that make functional languages suitable for this type of work. There are plenty of reasons, many of them previously discussed here (e.g., Scheme&#039;s uniform syntax, hygiene, DSELs), but perhaps the issue is worth revisiting, seeing as this remains the killer application for functional programming, even taking into account the other types of project described in the workshop.   &lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/24">DSL</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Tue, 11 Dec 2007 21:47:43 -0500</pubDate>
</item>
</channel>
</rss>
