<?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>Aaron Marten : Managed Language Tools</title><link>http://blogs.msdn.com/aaronmar/archive/tags/Managed+Language+Tools/default.aspx</link><description>Tags: Managed Language Tools</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>VSX Videos on Channel 9</title><link>http://blogs.msdn.com/aaronmar/archive/2008/02/27/vsx-videos-on-channel-9.aspx</link><pubDate>Wed, 27 Feb 2008 20:08:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7920133</guid><dc:creator>aaronmar</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/aaronmar/comments/7920133.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aaronmar/commentrss.aspx?PostID=7920133</wfw:commentRss><wfw:comment>http://blogs.msdn.com/aaronmar/rsscomments.aspx?PostID=7920133</wfw:comment><description>&lt;p&gt;Yesterday, Ken Levy and I sat down with Dan from &lt;a href="http://channel9.msdn.com"&gt;Channel 9&lt;/a&gt; to have an unscripted discussion about Visual Studio Extensibility (VSX) (including finding a bug live during an untested, on-the-fly demo!). We also discussed creating your own Visual Studio Shell and show off how to add a new package to a VS Shell application, among other things. Check it out:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=386366"&gt;Ken and Aaron discuss VSX&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In another video, Anthony and Ken also show off the Visual Studio Gallery that was announced this morning:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=386361"&gt;Anthony and Ken discuss the Visual Studio Gallery&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7920133" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Visual+Studio+SDK/default.aspx">Visual Studio SDK</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Managed+Language+Tools/default.aspx">Managed Language Tools</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Automation/default.aspx">Automation</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/VSX/default.aspx">VSX</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Visual+Studio+Shell/default.aspx">Visual Studio Shell</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/DSL+Tools/default.aspx">DSL Tools</category></item><item><title>Lang .NET Talk</title><link>http://blogs.msdn.com/aaronmar/archive/2008/02/20/lang-net-talk.aspx</link><pubDate>Wed, 20 Feb 2008 19:03:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7819864</guid><dc:creator>aaronmar</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/aaronmar/comments/7819864.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aaronmar/commentrss.aspx?PostID=7819864</wfw:commentRss><wfw:comment>http://blogs.msdn.com/aaronmar/rsscomments.aspx?PostID=7819864</wfw:comment><description>&lt;p&gt;A few weeks ago, &lt;a href="http://blogs.msdn.com/cbrochu/default.aspx"&gt;Carl Brochu&lt;/a&gt; and I had the incredible opportunity to speak at the &lt;a href="http://langnetsymposium.com/overview.asp"&gt;2008 Lang .NET Symposium&lt;/a&gt; that was hosted here on the main Microsoft campus (alongside some &lt;a href="http://langnetsymposium.com/speakers.asp"&gt;much more well-known folks in the software industry&lt;/a&gt;). Our talk was titled "Integrating Languages in the Visual Studio Shell" and covered the basics of adding your own custom language to Visual Studio. We also demonstrated the array of possibilities around creating a custom-branded IDE with the Visual Studio Shell.&lt;/p&gt; &lt;p&gt;If you're considering adding a language to VS (or just want to know what's involved), this talk would be a great place to start.&lt;/p&gt; &lt;p&gt;The &lt;a href="http://langnetsymposium.com/talks.asp"&gt;recordings of the talks&lt;/a&gt; are now available for your viewing pleasure. You will need the &lt;a href="http://www.microsoft.com/silverlight/downloads.aspx"&gt;Silverlight 1.0&lt;/a&gt; plugin in order to view them.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7819864" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Visual+Studio+SDK/default.aspx">Visual Studio SDK</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/IronPython/default.aspx">IronPython</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Managed+Language+Tools/default.aspx">Managed Language Tools</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/VSX/default.aspx">VSX</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Visual+Studio+Shell/default.aspx">Visual Studio Shell</category></item><item><title>Managed Language Tools in Visual Studio 2005 SDK</title><link>http://blogs.msdn.com/aaronmar/archive/2006/08/15/managed-language-tools-in-visual-studio-2005-sdk.aspx</link><pubDate>Tue, 15 Aug 2006 19:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:701300</guid><dc:creator>aaronmar</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/aaronmar/comments/701300.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aaronmar/commentrss.aspx?PostID=701300</wfw:commentRss><wfw:comment>http://blogs.msdn.com/aaronmar/rsscomments.aspx?PostID=701300</wfw:comment><description>&lt;P&gt;In the &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=7e0fdd66-698a-4e6a-b373-bd0642847ab7&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=7e0fdd66-698a-4e6a-b373-bd0642847ab7&amp;amp;displaylang=en"&gt;Visual Studio 2005 SDK Version 3&lt;/A&gt;, we've included a toolset which should be of value to you if you've ever considered integrating a language into Visual Studio using C#.&lt;/P&gt;
&lt;P&gt;In the past, if you wanted to do this it was up to you to "wire-up" your lexer and parser to the Visual Studio language service interfaces or the MPF classes (Microsoft.VisualStudio.Package.LanguageService). Starting with this SDK, we're including tools that will allow you to do this in a much easier fashion.&lt;/P&gt;
&lt;H2&gt;Toolset&lt;/H2&gt;
&lt;P&gt;The tools we're including are called MPPG &amp;amp; MPLex (which stand for Managed Package Parser Generator and Managed Package Lexer). They are derivative works from the open-source &lt;A href="http://plas.fit.qut.edu.au/gppg/" mce_href="http://plas.fit.qut.edu.au/gppg/"&gt;GPPG/GPLex tools developed at the Queensland University of Technology&lt;/A&gt;. In fact, the MP* versions of the tools were also developed by Dr. Wayne Kelly and Prof. John Gough at QUT and share a very similar code base.&lt;/P&gt;
&lt;P&gt;Also, Professor Gough was at the Microsoft Campus a few weeks ago at the &lt;A href="http://www.langnetsymposium.com/" mce_href="http://www.langnetsymposium.com/"&gt;Lang.NET symposium&lt;/A&gt;. I was fortunate enough to chat with him in person for a few minutes, but the Port 25 folks did a two part interview where he talks about compilers, virtual machines, and work on Ruby .NET (a version of Ruby which compiles to IL)&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://port25.technet.com/archive/2006/08/07/Sam-Ramji-and-Professor-John-Gough-talk-Virtual-Machines_2C00_-Dynamic-Languages_2C00_-Ruby-and-.NET--_2800_Part-1_2900_.aspx" mce_href="http://port25.technet.com/archive/2006/08/07/Sam-Ramji-and-Professor-John-Gough-talk-Virtual-Machines_2C00_-Dynamic-Languages_2C00_-Ruby-and-.NET--_2800_Part-1_2900_.aspx"&gt;Interview Part 1&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://port25.technet.com/archive/2006/08/09/Sam-Ramji-and-Professor-John-Gough-talk-Virtual-Machines_2C00_-Dynamic-Languages_2C00_-Ruby-and-.NET-_2800_Part-2_2900_.aspx" mce_href="http://port25.technet.com/archive/2006/08/09/Sam-Ramji-and-Professor-John-Gough-talk-Virtual-Machines_2C00_-Dynamic-Languages_2C00_-Ruby-and-.NET-_2800_Part-2_2900_.aspx"&gt;Interview Part 2&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H2&gt;Architecture&lt;/H2&gt;
&lt;P&gt;I gave a short presentation on these tools at the DevLab, and included the following graphic which should make things a bit clearer:&lt;/P&gt;
&lt;P align=center&gt;&lt;IMG src="http://blogs.msdn.com/photos/aaronmar/images/701299/500x250.aspx" mce_src="http://blogs.msdn.com/photos/aaronmar/images/701299/500x250.aspx"&gt; &lt;/P&gt;
&lt;P&gt;While not a perfect representation, this should give you a basic idea of how things work together. When you provide a lex/yacc style grammar, the MPPG and MPLex tools will produce a C# lexer &amp;amp; parser for you at build time. These make use of a set of classes we are calling "Managed Babel" which in turn provide your language features to Visual Studio via the MPF.&lt;/P&gt;
&lt;H2&gt;Samples &amp;amp; Getting Started&lt;/H2&gt;
&lt;P&gt;In the &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=7e0fdd66-698a-4e6a-b373-bd0642847ab7&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=7e0fdd66-698a-4e6a-b373-bd0642847ab7&amp;amp;displaylang=en"&gt;Visual Studio 2005 SDK Version 3.0&lt;/A&gt;, there is one sample which uses these tools called Example.ManagedMyC. It supports the following language service features:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Error Checking 
&lt;LI&gt;Syntax Highlighting (Colorizing) 
&lt;LI&gt;Brace Matching&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;We might include another sample showing off more features in a future version of the Visual Studio SDK.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=701300" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Managed+Language+Tools/default.aspx">Managed Language Tools</category></item><item><title>Visual Studio 2005 SDK - August 2006 CTP now available</title><link>http://blogs.msdn.com/aaronmar/archive/2006/08/03/visual-studio-2005-sdk-august-2006-ctp-now-available.aspx</link><pubDate>Fri, 04 Aug 2006 03:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:688045</guid><dc:creator>aaronmar</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/aaronmar/comments/688045.aspx</comments><wfw:commentRss>http://blogs.msdn.com/aaronmar/commentrss.aspx?PostID=688045</wfw:commentRss><wfw:comment>http://blogs.msdn.com/aaronmar/rsscomments.aspx?PostID=688045</wfw:comment><description>&lt;P&gt;&lt;A href="http://affiliate.vsipmembers.com/downloads/69/UserFileDownload.ashx" mce_href="http://affiliate.vsipmembers.com/downloads/69/UserFileDownload.ashx"&gt;http://affiliate.vsipmembers.com/downloads/69/UserFileDownload.ashx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Some of the new features include:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;New Powertoys (Extensibility Explorer, VC++ Snippet Support, SuperDiff)&lt;/LI&gt;
&lt;LI&gt;Enhancements to IronPython web integration&lt;/LI&gt;
&lt;LI&gt;RDT Explorer Sample&lt;/LI&gt;
&lt;LI&gt;DocView Editor Sample&lt;/LI&gt;
&lt;LI&gt;Managed Language Tools / ManagedMyC Sample&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I'll have some more to write about the managed language tools and ManagedMyC in a day or two. In the mean time, check out the latest CTP! This will be the last CTP before the final VSSDK V3 release which should be available in mid-September.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=688045" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Visual+Studio+SDK/default.aspx">Visual Studio SDK</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/IronPython/default.aspx">IronPython</category><category domain="http://blogs.msdn.com/aaronmar/archive/tags/Managed+Language+Tools/default.aspx">Managed Language Tools</category></item></channel></rss>