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...
Popular posts from this blog
Quick Progress!
Parsing for fun and profit I remember creating parsers to be a bit harder. I tried using Antlr when doing the JavaFX DLR project and failed at it miserably. It felt messy. I couldnt get a feel for how to structure the document, etc. I was drawn to the Irony parser framework because declaring the grammar in C# somehow felt (at the time) cleaner and it seemed to allow for more expressive statements and character logic. I am not sure if it was my previous experience with parsing and Antlr (or Irony), or how clean and expressive the GOLD parser framework is, but I've been able to create a working parser in just a few days of coding. And by working, I mean it parses and understands valid LLVM IR straight from the project's documentation: I actually implemented a a lot more operations and keywords needed to parse the example. It was just easier that way. I am going to now start building an AST. I've decided to be a bit aggressive because I think the AST will drive ...
Finding Libc So, as you know, I've been tooling around with the LLVM IR syntax and the Gold Parser framework. I have the scaffolding for the CIL conversion 90% done, and I am almost ready to parse the "Hello world" code found in the LLVM documentation. There is just one catch. In the Hello world, there is a call to an external standard io library function called puts() . Those fimilar with C/C++ would know that you include the standard header, #include <stdio> or #include <stdio.h> and you magically gain access to this function. Porting that specific line into CIL would be easy, i'd just replace any puts call with a WriteLine call included in the standard System Library. This is fine to get the sample code running, but it is not a solution going forward. I need to get a list of basic libc commands and rewrite them to work with the System library in the CLI. DotGnu Project Resurrected? Years ago (around 2003-2004), the GNU community was really int...
Comments