[Haskell-cafe] Compilers: Why do we need a core language?

Jacques Carette carette at mcmaster.ca
Thu Nov 22 13:56:49 CET 2012

On 20/11/2012 6:08 PM, Richard O'Keefe wrote:
> On 21/11/2012, at 4:49 AM, <citb at lavabit.com> wrote:
>> Well, I don't know. Would it save some time? Why bother with a core 
>> language? 
> For a high level language (and for this purpose, even Fortran 66 counts as
> "high level") you really don't _want_ a direct translation from source code
> to object code.  You want to eliminate unused code and you want to do all
> sorts of analyses and improvements.  It is *much* easier to do all that to
> a small core language than to the full source language.

Actually, here I disagree.  It might be much 'easier' for the 
programmers to do it for a small core language, but it may turn out to 
be much, much less effective.  I 'discovered' this when (co-)writing a 
partial evaluator for Maple: we actually made our internal language 
*larger*, so that we could encode more invariants syntactically.  This 
ended up making our jobs considerably easier, because we did not have to 
work so hard on doing fancy analyses to recover information that would 
otherwise have been completely obvious.  Yes, there were a lot more 
cases, but each case was relatively easy; the alternative was a small 
number of extremely difficult cases.


More information about the Haskell-Cafe mailing list