<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Hi all:<br>at the core of this issue, and if you want to ellucidate more, please C Ramsey, Lambda-RTL, and Necula Lambda-CIL respectively:<br><br>http://terohasu.net/desclang/Description_languages.html#LAMBDA-RTL<br><br>http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.72.4008<br><br>Baby Modula-3 permits axiomatic reasoning over objects so it should be possible to reason over given program an its execution in a system of given semantics<br>Thanks in advance<br><br>--- El <b>mar, 21/8/12, Jay <i><jay.krell@cornell.edu></i></b> escribió:<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><br>De: Jay <jay.krell@cornell.edu><br>Asunto: Re: [M3devel] higher level m3cg?<br>Para: "Henning Thielemann" <lemming@henning-thielemann.de><br>CC: "m3devel" <m3devel@elegosoft.com>, "JayK"
<jay.krell@cornell.edu><br>Fecha: martes, 21 de agosto, 2012 14:26<br><br><div class="plainMail">I don't see why C will be a problem. Performance of the compiler or the generated code? Our current system is bad on both fronts already, but nobody seems to notice. And yes it does look easy. I don't know why it'd cause craziness. M3cc is hardly writing our own & has serious shortcomings: stock debugging, exception handling...<br><br> - Jay (briefly/pocket-sized-computer-aka-phone)<br><br>On Aug 21, 2012, at 11:14 AM, Henning Thielemann <<a ymailto="mailto:lemming@henning-thielemann.de" href="/mc/compose?to=lemming@henning-thielemann.de">lemming@henning-thielemann.de</a>> wrote:<br><br>> <br>> On Tue, 21 Aug 2012, Antony Hosking wrote:<br>> <br>>> *** A warning ***<br>>> Norman Ramsey's opinion (in stackoverflow) on possible compiler backends:<br>>> <br>>> Code generation is my
business :-)<br>>> Comments on a few options:<br>>> <br>>> * <br>>> CLR:<br>>> <br>>> + Pro: industrial support<br>>> + Con: you have to buy into their type system pretty much completely; depending on what you want<br>>> to do with types, this may not matter<br>>> + Con: Only Windows platform is really prime-time quality<br>>> * <br>>> LLVM:<br>>> <br>>> + Pro: enthusiastic user community with charismatic leader<br>>> + Pro: serious backing from Apple<br>>> + Pro: many interesting performance improvements<br>>> + Con: somewhat complex interface<br>>> + Con: history
of holes in the engineering; as LLVM matures expect the holes in the engineering<br>>> to be plugged by adding to the complexity of the interface<br>> <br>> Additional Con: They introduce bugs from time to time and then they do not fix them ...<br>> <br>> <br>>> * <br>>> C--<br>>> <br>>> + Pro: target is an actual written language, not an API; you can easily inspect, debug, and edit<br>>> your C-- code<br>> <br>> LLVM has also a text representation for its intermediate code. This way you can write intermediate code by hand and experiment with it. However, it is verbose and redundant.<br>> <br>>> + Pro: design is reasonably mature and reasonably clean<br>>> + Pro: supports accurate garbage collection<br>>>
+ Pro: most users report it is very easy to use<br>>> + Con: very small development team<br>>> + Con: as of early 2009, supports only three hardware platforms (x86, PPC, ARM)<br>>> + Con: does not ship with a garbage collector<br>>> + Con: project has no future<br>>> * <br>>> C as target language<br>>> <br>>> + Pro: looks easy<br>>> + Con: nearly impossible to get decent performance<br>>> + Con: will drive you nuts in the long run; ask the long line of people who have tried to<br>>> compile Haskell, ML, Modula-3, Scheme and more using this technique. At some point every one<br>>> of
these people gave up and built their own native code generator.<br>>> Summary: anything except C is a reasonable choice. For the best combination of flexibility, quality,<br>>> and expected longevity, I'd probably recommend LLVM.<br>> <br>> Despite my 'con' point I would recommend LLVM, too.<br>> <br></div></blockquote></td></tr></table>