So I've again been bitten by the Transcoding/transpiling bug...Doh!

My history with Transcoding

 A few years back (around mid-2007), I was enamored with a new language on the block, JavaFX (now vala). Alas, I had moved on from the Java platform to the .Net platform during that time, and Silverlight just hit the stage (and WPF). I was more of a fan of the declarative and expressive nature of JavaFX than I was of XAML, so I looked into porting JavaFX script to the .Net platform (and later the DLR). I halted my work in 2008-2009, as JavaFX script was dying, and the Parser technology I was using (a great C# based parser called Irony) was giving me issues when integrating with the DLR.


The LLVM Project


I've been a fan of the LLVM project since about 2009. I have also watched its MSIL backend go into disrepair and interest in C# as part of the vmkit wane. I answered some stack overflow questions in 2011 about this http://stackoverflow.com/questions/5054938/how-to-translate-msil-to-llvm-li/8272816#8272816

Around 2011 I was looking at resurrecting the MSIL backend and decided while it would be of great use to the .net community (FFMPEG as a .net DLL would do wonders alone), it was something I couldnt commit to. And as of today, the MSIL backend has been completely removed in the 3.x branch of LLVM, and would need a major commitment to get it back up to usable levels. (Which one day, I may contribute to..)

LLVM IR....a better CIL


So fast forward to now. MSIL is now referred to as CIL and the LLVM project's intermediate language LLVM IR is amazing. Now I am interested in parsing LLVM IR and creating CIL. Apparently the Mono project has this going the other way, they have CIL code that gets transcoded into LLVM IR.


Of Parsers and Men



I've decided to create a non validating parser for LLVM IR using the GOLD Parser project (I will assume wellformatted IR for this experiment). And then from there, build an AST that outputs CIL!

Comments

Popular posts from this blog

Its Happening! Its really Happening! ^_^

Quick Update