Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Code generation is my business :-)</p> <p>Comments on a few options:</p> <ul> <li><p>CLR: </p> <ul> <li>Pro: industrial support</li> <li>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</li> <li>Con: Only Windows platform is really prime-time quality</li> </ul></li> <li><p>LLVM:</p> <ul> <li>Pro: enthusiastic user community with charismatic leader</li> <li>Pro: serious backing from Apple</li> <li>Pro: many interesting performance improvements</li> <li>Con: somewhat complex interface</li> <li>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</li> </ul></li> <li><p><a href="http://www.cminusminus.org/" rel="noreferrer">C--</a></p> <ul> <li>Pro: target is an actual written language, not an API; you can easily inspect, debug, and edit your C-- code</li> <li>Pro: design is reasonably mature and reasonably clean</li> <li>Pro: supports accurate garbage collection</li> <li>Pro: most users report it is very easy to use</li> <li>Con: very small development team</li> <li>Con: as of early 2009, supports only three hardware platforms (x86, PPC, ARM)</li> <li>Con: does not ship with a garbage collector</li> <li>Con: project has no future</li> </ul></li> <li><p>C as target language</p> <ul> <li>Pro: looks easy</li> <li>Con: nearly impossible to get decent performance</li> <li>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.</li> </ul></li> </ul> <p>Summary: <strong>anything except C</strong> is a reasonable choice. For the best combination of flexibility, quality, and expected longevity, I'd probably recommend LLVM.</p> <p>Full disclosure: I am affiliated with the C-- project.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload