<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TylerBurton.ca &#187; Android</title>
	<atom:link href="http://www.tylerburton.ca/tag/android/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tylerburton.ca</link>
	<description></description>
	<lastBuildDate>Wed, 25 Aug 2010 21:19:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>XMLVM makes all programming languages portable</title>
		<link>http://www.tylerburton.ca/2010/01/xmlvm-makes-all-programming-languages-portable/</link>
		<comments>http://www.tylerburton.ca/2010/01/xmlvm-makes-all-programming-languages-portable/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 00:22:19 +0000</pubDate>
		<dc:creator>Tyler Burton</dc:creator>
				<category><![CDATA[F/OSS]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Obj-C]]></category>
		<category><![CDATA[portable code]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XMLVM]]></category>

		<guid isPermaLink="false">http://www.tylerburton.ca/?p=219</guid>
		<description><![CDATA[I honestly don&#8217;t remember how I came across this awesome project but I am certainly glad I did! XMLVM is a software toolchain which is designed to take cross-compilation to a whole new level. Rather than just offer OS portability, XMLVM is able to actually offer OS, hardware and programming language portability. Here&#8217;s how it [...]]]></description>
			<content:encoded><![CDATA[<p>I honestly don&#8217;t remember how I came across this awesome project but I am certainly glad I did! <a href="http://www.xmlvm.org/" target="_blank">XMLVM</a> is a software toolchain which is designed to take <a href="http://en.wikipedia.org/wiki/Cross_compiler" target="_blank">cross-compilation</a> to a whole new level. Rather than just offer <a href="http://en.wikipedia.org/wiki/Operating_system" target="_blank">OS</a> portability, XMLVM is able to actually offer OS, hardware <em>and</em> programming language portability.</p>
<p>Here&#8217;s how it works: you write a program in a programming language of your choice, say <a href="http://en.wikipedia.org/wiki/.NET_Framework" target="_blank">.NET</a>. Once compiled you send it through the first step of XMLVM which analyzes the produced <a href="http://en.wikipedia.org/wiki/Common_Language_Infrastructure" target="_blank">CIL</a> and creates an <a href="http://en.wikipedia.org/wiki/XML" target="_blank">XML</a> document out of it. It would end up looking like something similar to this:</p>
<blockquote><p>&lt;clr:ldc type=&#8221;int&#8221; value=&#8221;2&#8243;/&gt;<br />
&lt;clr:rem/&gt;</p></blockquote>
<p>Next this XML document is fed through what XMLVM calls the data-flow analysis (DFA). Basically you can think of DFA as a <a href="http://en.wikipedia.org/wiki/Pseudocode" target="_blank">pseudo-language</a> that simply describes the operations that the program is trying to perform. Once in this form the code is considered portable. XMLVM then lets you pick a target, for example the <a href="http://en.wikipedia.org/wiki/Java_%28software_platform%29" target="_blank">Java</a> <a href="http://en.wikipedia.org/wiki/Java_Virtual_Machine" target="_blank">JVM</a>, and automates the conversion of the DFA to an XML representation of the <a href="http://en.wikipedia.org/wiki/Java_bytecode" target="_blank">java byte code</a>. From there it&#8217;s an easy conversion back to true java byte code.</p>
<p>Now think about this in practical terms for a second. That means that you can write a program in a .NET language (C#), and have it automatically ported and compiled to Java. Expand on this a bit and consider that you can write the same program in <em>any</em> language and have it converted to <em>any</em> other language. Currently the XMLVM offers a lot of other cool options as well and has actually been designed a lot with mobile devices in mind. Now you can write a program once and have it automatically converted to <a href="http://en.wikipedia.org/wiki/Objective-C" target="_blank">Objective-C</a>, to run on the <a href="http://en.wikipedia.org/wiki/IPhone" target="_blank">iPhone</a>, and to Java to run on <a href="http://en.wikipedia.org/wiki/Android_%28operating_system%29" target="_blank">Android</a>.</p>
<p>I really hope that this project continues to improve and I will certainly be watching it closely. It is still very early in development but from what I have seen it is simply brilliant.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.tylerburton.ca/2010/01/xmlvm-makes-all-programming-languages-portable/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.tylerburton.ca/2010/01/xmlvm-makes-all-programming-languages-portable/&amp;title=XMLVM+makes+all+programming+languages+portable" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://www.tylerburton.ca/2010/01/xmlvm-makes-all-programming-languages-portable/&amp;title=XMLVM+makes+all+programming+languages+portable" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.tylerburton.ca/2010/01/xmlvm-makes-all-programming-languages-portable/&amp;t=XMLVM+makes+all+programming+languages+portable" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.tylerburton.ca/2010/01/xmlvm-makes-all-programming-languages-portable/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://www.tylerburton.ca/2010/01/xmlvm-makes-all-programming-languages-portable/&amp;title=XMLVM+makes+all+programming+languages+portable" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-slashdot">
			<a href="http://slashdot.org/bookmark.pl?url=http://www.tylerburton.ca/2010/01/xmlvm-makes-all-programming-languages-portable/&amp;title=XMLVM+makes+all+programming+languages+portable" rel="nofollow" class="external" title="Submit this to SlashDot">Submit this to SlashDot</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.tylerburton.ca/2010/01/xmlvm-makes-all-programming-languages-portable/&amp;title=XMLVM+makes+all+programming+languages+portable" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=XMLVM+makes+all+programming+languages+portable+-+http://b2l.me/c8h9f&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.tylerburton.ca/2010/01/xmlvm-makes-all-programming-languages-portable/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
