<?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; XML</title>
	<atom:link href="http://www.tylerburton.ca/tag/xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tylerburton.ca</link>
	<description></description>
	<lastBuildDate>Tue, 10 Jan 2012 04:41:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.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[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><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-publisher-219"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></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>

