[M3devel] higher level m3cg?

Daniel Alejandro Benavides D. dabenavidesd at yahoo.es
Tue Aug 21 23:58:52 CEST 2012


Hi all:
at the core of this issue, and if you want to ellucidate more, please C Ramsey, Lambda-RTL, and Necula Lambda-CIL respectively:

http://terohasu.net/desclang/Description_languages.html#LAMBDA-RTL

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.72.4008

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
Thanks in advance

--- El mar, 21/8/12, Jay <jay.krell at cornell.edu> escribió:

De: Jay <jay.krell at cornell.edu>
Asunto: Re: [M3devel] higher level m3cg?
Para: "Henning Thielemann" <lemming at henning-thielemann.de>
CC: "m3devel" <m3devel at elegosoft.com>, "JayK" <jay.krell at cornell.edu>
Fecha: martes, 21 de agosto, 2012 14:26

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...

 - Jay (briefly/pocket-sized-computer-aka-phone)

On Aug 21, 2012, at 11:14 AM, Henning Thielemann <lemming at henning-thielemann.de> wrote:

> 
> On Tue, 21 Aug 2012, Antony Hosking wrote:
> 
>>      *** A warning ***
>> Norman Ramsey's opinion (in stackoverflow) on possible compiler backends:
>>  
>> Code generation is my business :-)
>> Comments on a few options:
>> 
>> * 
>>    CLR:
>> 
>>     +  Pro: industrial support
>>     +  Con: you have to buy into their type system pretty much completely; depending on what you want
>>        to do with types, this may not matter
>>     +  Con: Only Windows platform is really prime-time quality
>> * 
>>    LLVM:
>> 
>>     +  Pro: enthusiastic user community with charismatic leader
>>     +  Pro: serious backing from Apple
>>     +  Pro: many interesting performance improvements
>>     +  Con: somewhat complex interface
>>     +  Con: history of holes in the engineering; as LLVM matures expect the holes in the engineering
>>        to be plugged by adding to the complexity of the interface
> 
> Additional Con: They introduce bugs from time to time and then they do not fix them ...
> 
> 
>> * 
>>    C--
>> 
>>     +  Pro: target is an actual written language, not an API; you can easily inspect, debug, and edit
>>        your C-- code
> 
> 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.
> 
>>     +  Pro: design is reasonably mature and reasonably clean
>>     +  Pro: supports accurate garbage collection
>>     +  Pro: most users report it is very easy to use
>>     +  Con: very small development team
>>     +  Con: as of early 2009, supports only three hardware platforms (x86, PPC, ARM)
>>     +  Con: does not ship with a garbage collector
>>     +  Con: project has no future
>> * 
>>    C as target language
>> 
>>     +  Pro: looks easy
>>     +  Con: nearly impossible to get decent performance
>>     +  Con: will drive you nuts in the long run; ask the long line of people who have tried to
>>        compile Haskell, ML, Modula-3, Scheme and more using this technique. At some point every one
>>        of these people gave up and built their own native code generator.
>> Summary: anything except C is a reasonable choice. For the best combination of flexibility, quality,
>> and expected longevity, I'd probably recommend LLVM.
> 
> Despite my 'con' point I would recommend LLVM, too.
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20120821/92814294/attachment-0002.html>


More information about the M3devel mailing list