<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" 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/"><channel><title>The Hogg Blog : DSL</title><link>http://blogs.msdn.com/thehoggblog/archive/tags/DSL/default.aspx</link><description>Tags: DSL</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Turtle Graphics Update </title><link>http://blogs.msdn.com/thehoggblog/archive/2009/11/25/turtle-graphics-thanksgiving-update.aspx</link><pubDate>Thu, 26 Nov 2009 01:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9928910</guid><dc:creator>Jason Hogg</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/thehoggblog/comments/9928910.aspx</comments><wfw:commentRss>http://blogs.msdn.com/thehoggblog/commentrss.aspx?PostID=9928910</wfw:commentRss><wfw:comment>http://blogs.msdn.com/thehoggblog/rsscomments.aspx?PostID=9928910</wfw:comment><description>It is that time of the year again – thanksgiving. So that of course means I need to update the version of Turtle Graphics that I posted a year ago to test out Oslo. Turtle Graphics was a Logo like programming language created in the early 1980's as a means of introducing novices and children to programming on the BBC Microcomputer. Turtle graphics helped introduce people to programming using a simple functional language that provided instant visual gratification allowing the user to move a triangular turtle across the screen using simple commands such as forward, backward, right turn and left turn....(&lt;a href="http://blogs.msdn.com/thehoggblog/archive/2009/11/25/turtle-graphics-thanksgiving-update.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9928910" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/thehoggblog/attachment/9928910.ashx" length="2261512" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/DSL/default.aspx">DSL</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/Oslo/default.aspx">Oslo</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/_2600_quot_3B00_M_2600_quot_3B00_/default.aspx">&amp;quot;M&amp;quot;</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/Turtle+Graphics/default.aspx">Turtle Graphics</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/Education/default.aspx">Education</category></item><item><title>SecPAL Parser Updated for VS2008 and F#1.9.6.16</title><link>http://blogs.msdn.com/thehoggblog/archive/2009/09/26/secpal-parser-updated-for-vs2008-and-f-1-9-6-16.aspx</link><pubDate>Sun, 27 Sep 2009 01:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9899907</guid><dc:creator>Jason Hogg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/thehoggblog/comments/9899907.aspx</comments><wfw:commentRss>http://blogs.msdn.com/thehoggblog/commentrss.aspx?PostID=9899907</wfw:commentRss><wfw:comment>http://blogs.msdn.com/thehoggblog/rsscomments.aspx?PostID=9899907</wfw:comment><description>&lt;TABLE class=FullWidth class="FullWidth"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;DIV id=ctl00_ctl00_MasterContent_Content_PostRepeater_ctl00_BodyDiv class=discussionListContent&gt;
&lt;P&gt;I finally got around to updating the SecPAL Parser to run on the latest version of Visual Studio and F#. Development experience should be much cleaner now because F# is far better integrated into VS. If you run into any problems please post a note or drop me an email. For more information please see our &lt;A href="http://secpal.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33592" mce_href="http://secpal.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33592"&gt;SecPAL CodeBox Community Site&lt;/A&gt;. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9899907" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/SecPAL/default.aspx">SecPAL</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/Web+Service+Security/default.aspx">Web Service Security</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/DSL/default.aspx">DSL</category></item><item><title>A Graphical DSL for Describing SOA Applications</title><link>http://blogs.msdn.com/thehoggblog/archive/2009/01/27/a-soa-graphical-dsl.aspx</link><pubDate>Wed, 28 Jan 2009 09:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9379930</guid><dc:creator>Jason Hogg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/thehoggblog/comments/9379930.aspx</comments><wfw:commentRss>http://blogs.msdn.com/thehoggblog/commentrss.aspx?PostID=9379930</wfw:commentRss><wfw:comment>http://blogs.msdn.com/thehoggblog/rsscomments.aspx?PostID=9379930</wfw:comment><description>&lt;P&gt;Last October we ran a SOA workshop in Redmond, with the goal being to have members of the MCS field, global practices and other customer facing organizations discuss scenarios and patterns that they see on a regular basis. Having run several of these workshops in the psat, one challenge that is hard to overcome is ensuring people describe their scenarios and solutions in a standard way. &lt;/P&gt;
&lt;P&gt;Given the lack of a standard vocabulary for many (most?) domains within our industry this is obviously made more difficult. In an attempt to overcome this shortfall myself, Piyush Gupta and Sudarsan Srinivasan&amp;nbsp;spent about a month decomposing a number of customer solutions into their constituent patterns - thus building a catalog of patterns that participants at our workshop could use when describing solutions to their scenarios. Where such patterns were already documented, we normalized on terms from sources such as Hohpe's Integration Patterns, SOA Patterns, Workflow Patterns, Patterns and Practices and IBM's dev center.&lt;/P&gt;
&lt;P&gt;Even armed with a standard vocabulary, the next problem becomes how do you &lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;succinctly &lt;/SPAN&gt;present complex system designs without requiring large numbers of UML objects. Christopher Alexander aluded to the solution to this problem through the use of a visual notation to accompany each pattern. So I searched around and found that Matthew Oskowis had created a nice little Visio template including icons for each of Gregor Hohpe's patterns. This helped us for about 50% of the patterns and so I extended it to include the additional patterns that we had identified. &lt;/P&gt;
&lt;P&gt;When using this visual notation it became too difficult expecting everyone to recognize each of these icons, so I also extended each icon to include the pattern name. It makes the diagrams a little clumsy - but they are still quite readable. As you can see in the diagram below it is also obvious that these icons convey a lot of information in a small amount of space - more so than an equivalent UML model would for example.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The diagram below illustrates one such example, where a service agent is performing requestor side caching allowing configuration information to be retrieved from a central configuration service and cached. The Configuration Notification Service also allows the client (should it subscribe) to be notified of changes to this configuration. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG title="Requestor side caching" style="WIDTH: 288px; HEIGHT: 233px" height=233 alt="Requestor side caching" src="http://blogs.msdn.com/photos/jason_hogg/images/9379934/original.aspx" width=288 mce_src="http://blogs.msdn.com/photos/jason_hogg/images/9379934/original.aspx"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;For my presentation for tomorrow's SOA BP conference I will be walking through a number of scenarios using this SOA DSL, so figured I would first post it on the blog for people that are interested in using it. If you use it or extend it let me know how you go, or share your updates. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9379930" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/thehoggblog/attachment/9379930.ashx" length="335360" type="application/vnd.visio" /><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/Design+Patterns/default.aspx">Design Patterns</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/DSL/default.aspx">DSL</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/SOA/default.aspx">SOA</category></item><item><title>Oslo MGrammar Turtle Graphics for VS2008</title><link>http://blogs.msdn.com/thehoggblog/archive/2008/12/12/oslo-mgrammar-logo-for-vs2007.aspx</link><pubDate>Sat, 13 Dec 2008 04:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9204452</guid><dc:creator>Jason Hogg</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/thehoggblog/comments/9204452.aspx</comments><wfw:commentRss>http://blogs.msdn.com/thehoggblog/commentrss.aspx?PostID=9204452</wfw:commentRss><wfw:comment>http://blogs.msdn.com/thehoggblog/rsscomments.aspx?PostID=9204452</wfw:comment><description>&lt;P&gt;My colleague Joshy Joseph reminded me that the MGrammar based Turtle Graphics parser that I posted &lt;A class="" href="http://blogs.msdn.com/thehoggblog/archive/2008/11/25/a-logo-turtle-graphics-sample-in-mgrammar.aspx" mce_href="http://blogs.msdn.com/thehoggblog/archive/2008/11/25/a-logo-turtle-graphics-sample-in-mgrammar.aspx"&gt;here&lt;/A&gt;&amp;nbsp;was for VS2010. I have attached a newer version of the solution that Joshy coverted to run in VS2008. I noticed that Doug Finke has also done the same thing whilst also creating a couple of additional samples as well. Take a look at his &lt;A class="" href="http://dougfinke.com/blog/?cat=195" mce_href="http://dougfinke.com/blog/?cat=195"&gt;blog&lt;/A&gt; for more details... &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9204452" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/thehoggblog/attachment/9204452.ashx" length="2826604" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/Fun/default.aspx">Fun</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/DSL/default.aspx">DSL</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/PDC2008/default.aspx">PDC2008</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/Software+Factories/default.aspx">Software Factories</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/Oslo/default.aspx">Oslo</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/_2600_quot_3B00_M_2600_quot_3B00_/default.aspx">&amp;quot;M&amp;quot;</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/Turtle+Graphics/default.aspx">Turtle Graphics</category></item><item><title>Creating a Logo / Turtle Graphics Textual DSL using Oslo MGrammar</title><link>http://blogs.msdn.com/thehoggblog/archive/2008/11/25/a-logo-turtle-graphics-sample-in-mgrammar.aspx</link><pubDate>Wed, 26 Nov 2008 01:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9142858</guid><dc:creator>Jason Hogg</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/thehoggblog/comments/9142858.aspx</comments><wfw:commentRss>http://blogs.msdn.com/thehoggblog/commentrss.aspx?PostID=9142858</wfw:commentRss><wfw:comment>http://blogs.msdn.com/thehoggblog/rsscomments.aspx?PostID=9142858</wfw:comment><description>&lt;P&gt;In the early 1980's a programming language called &lt;A class="" href="http://en.wikipedia.org/wiki/Turtle_graphics" mce_href="http://en.wikipedia.org/wiki/Turtle_graphics"&gt;Turtle Graphics&lt;/A&gt;&amp;nbsp;was used as a means of introducing novices to programming on the &lt;A class="" href="http://blogs.msdn.com/thehoggblog/archive/2008/03/22/glory-days-home-computing-in-the-80-s.aspx" mce_href="http://blogs.msdn.com/thehoggblog/archive/2008/03/22/glory-days-home-computing-in-the-80-s.aspx"&gt;BBC Microcomputer&lt;/A&gt;. Turtle graphics, a graphical version of Logo, helped introduce people to programming using a simple functional language that provided instant visual gratification allowing the user to move a triangular turtle across the screen using simple commands such as forward, backward, right turn and left turn.&lt;/P&gt;
&lt;P&gt;At PDC this year the Connected Systems team introduced a new language called "M" - which allows textual DSL's to be created. I will talk more about this language in future posts especially compared with the F# Lexer and Parser that we used to create our textual DSL for &lt;A class="" href="http://blogs.msdn.com/thehoggblog/archive/2007/08/26/parser-for-secpal-simplified-english-grammar-now-available.aspx" mce_href="http://blogs.msdn.com/thehoggblog/archive/2007/08/26/parser-for-secpal-simplified-english-grammar-now-available.aspx"&gt;SecPAL&lt;/A&gt;, but first I wanted to create a programming language with which to learn Mg. I thought a version of Turtle Graphics would be fun - and interesting for anyone else interested in experimenting with or learning Mg. &lt;/P&gt;
&lt;P&gt;The programming language I am liberally calling Logo (and the associated interpreter) are fairly simple - but I thought it would be fun for people to play with, especially those with children who are looking for new ways to introduce their kids to progamming. I did the bulk of the work specifying the grammar for this simple version of Logo on the flight back from LA to Seattle - which should give you a sense of how intuitive Mg is - and how productive the Intellipad authoring experience is. &lt;/P&gt;
&lt;P&gt;Given that Thanksgiving is just two days away I figured it would be patriotic (odd coming from an Aussie/Kiwi/Pom hybrid) to show how simple it is for this language to draw the United States flag - a design which obviously would make significant use of loops and nested loops.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;IMG title="Logo Editor" alt="Logo Editor" src="http://blogs.msdn.com/photos/jason_hogg/images/9142865/500x163.aspx" mce_src="http://blogs.msdn.com/photos/jason_hogg/images/9142865/500x163.aspx"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The screenshot above shows the output from this program. The complete logo program listing is also included below so you can see how complex objects can be created using a simple grammar comprising of just 5 commands:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Commands - Commands perform actions such as moving or rotating.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;Rotate n &lt;/STRONG&gt;- Rotate 'n' degrees&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;Draw n&lt;/STRONG&gt; - Draw a line 'n' pixels long&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;MoveAbs x, y&lt;/STRONG&gt; - Move to an absolute position&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;Move x,y&lt;/STRONG&gt; - Move to a position relative to last move / draw command&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Loops - Sets of instructions which are executde iteratively. Loops can be nested.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;Loop n&lt;/STRONG&gt; &lt;STRONG&gt;{&lt;/STRONG&gt; [Command] &lt;STRONG&gt;}&lt;/STRONG&gt;*&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have attached the full source code for this so that you can play with this yourself. The source code is based on the PDC (October?) version of Oslo which you will have to first download from MSDN. The language could easily be extended to include color, line widths, other types of lines such as bezier curves etc - which should provide a good introduction for anyone interested.&amp;nbsp;Post pointers if you do anything fun with this.&lt;/P&gt;
&lt;P&gt;In addition to the formal grammar for my logo language (logo.mg) the .zip file also includes a WPF interpreter that interprets the parsed output of our logo programs and converts them into WPF Path Geometry syntax. There is also a simple editor that allows you to edit and run our Logo programs - providing a nice easy way to start teaching your children to program. Or for yourself to start modifying the language as described above. &lt;/P&gt;
&lt;P&gt;Enjoy!!! And (to those in America) Happy Thanksgiving... &lt;/P&gt;&lt;PRE&gt;// Logo (and Mg) sample program &lt;BR&gt;// Happy Thanksgiving! 
&lt;P&gt;// Move to top left&lt;BR&gt;MoveAbs 25,25 &lt;/P&gt;

&lt;P&gt;// Draw five rows of stars&lt;BR&gt;Loop 5&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; // Draw ten columns of stars&lt;BR&gt;&amp;nbsp;&amp;nbsp; Loop 10&lt;BR&gt;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp; // Draw five points to make each star&lt;BR&gt;&amp;nbsp;&amp;nbsp; Loop 5&lt;BR&gt;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rotate -54&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Draw 5&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rotate 126&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Draw 5&lt;BR&gt;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp; Move 20 -1&lt;BR&gt;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp; Move -210,20&lt;BR&gt;}&lt;/P&gt;

&lt;P&gt;// Draw the lines next to the stars&lt;BR&gt;MoveAbs 430,25&lt;BR&gt;Rotate -90&lt;BR&gt;Loop 5&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; // Lines are 5 pixels high&lt;BR&gt;&amp;nbsp;&amp;nbsp; Loop 5&lt;BR&gt;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Draw 200&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Move 200,1&lt;BR&gt;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp; Move 0 15&lt;BR&gt;}&lt;/P&gt;

&lt;P&gt;// Draw the lower lines on the flag&lt;BR&gt;MoveAbs 430,125&lt;BR&gt;Loop 5&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; // Lines are 5 pixels high&lt;BR&gt;&amp;nbsp;&amp;nbsp; Loop 5&lt;BR&gt;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Draw 410&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Move 410,1&lt;BR&gt;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp; Move 0,15&lt;BR&gt;}&lt;/P&gt;

&lt;/PRE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9142858" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/thehoggblog/attachment/9142858.ashx" length="867454" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/DSL/default.aspx">DSL</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/PDC2008/default.aspx">PDC2008</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/Software+Factories/default.aspx">Software Factories</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/Oslo/default.aspx">Oslo</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/_2600_quot_3B00_M_2600_quot_3B00_/default.aspx">&amp;quot;M&amp;quot;</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/Turtle+Graphics/default.aspx">Turtle Graphics</category></item><item><title>Language Oriented Programming</title><link>http://blogs.msdn.com/thehoggblog/archive/2008/06/20/language-oriented-programming.aspx</link><pubDate>Fri, 20 Jun 2008 17:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8625501</guid><dc:creator>Jason Hogg</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/thehoggblog/comments/8625501.aspx</comments><wfw:commentRss>http://blogs.msdn.com/thehoggblog/commentrss.aspx?PostID=8625501</wfw:commentRss><wfw:comment>http://blogs.msdn.com/thehoggblog/rsscomments.aspx?PostID=8625501</wfw:comment><description>&lt;P&gt;Chris Smith from the F# team has an awesome blog post on &lt;A class="" href="http://blogs.msdn.com/chrsmith/archive/2008/05/30/language-oriented-programming-in-f.aspx" mce_href="http://blogs.msdn.com/chrsmith/archive/2008/05/30/language-oriented-programming-in-f.aspx"&gt;language oriented programming &lt;/A&gt;- and specifically LOP in F#. For those new to LOP Chris describes it as a style of programming that resembles a domain specific language - but is still valid in a general purpose programming language. &lt;/P&gt;
&lt;P&gt;As we see more and more DSL's emerge - specifically in domains where visual models aren't adequate to sufficiently represent domain concepts - I believe we will see a huge movement toward LOP. For our Security Policy Language this was the case - leading us to the creation of our &lt;A class="" href="http://blogs.msdn.com/thehoggblog/archive/2007/08/26/parser-for-secpal-simplified-english-grammar-now-available.aspx" mce_href="http://blogs.msdn.com/thehoggblog/archive/2007/08/26/parser-for-secpal-simplified-english-grammar-now-available.aspx"&gt;SecPAL Parser &lt;/A&gt;- which was also written in F#.&lt;/P&gt;
&lt;P&gt;Anyone interested in DSL's should definitely read Chris' blog post...&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8625501" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://blogs.msdn.com/thehoggblog/archive/tags/DSL/default.aspx">DSL</category></item></channel></rss>