The semantics of Core?

Simon Peyton-Jones simonpj@microsoft.com
Tue, 18 Feb 2003 08:49:37 -0000


I don't know of any separate description of the semantics of Core, but =
it's just the lambda calculus with let, letrec and case.  There's plenty =
of code that works over Core in GHC itself, but no separate libraries.  =
There is a library to parse the stuff that ghc -fext-core spits out, =
though.

Kirsten Chevalier and Tobias Gedell have experience of using this route, =
and may be able to help, depending on your purpose.

Contributing well-engineered Core-manipulating libraries would be a Good =
Thing.

Simon

| -----Original Message-----
| From: Martin Sj=F6gren [mailto:md9ms@mdstud.chalmers.se]
| Sent: 18 February 2003 08:18
| To: glasgow-haskell-users@haskell.org
| Subject: The semantics of Core?
|=20
| Hello
|=20
| I'm looking for a paper or some other documentation on the exact
| semantics of Core. I've read the paper about the concrete syntax, and =
it
| briefly mentions the abstract syntax and something about the case
| expression, but not a lot. Unless I missed something?
|=20
| I'm also looking for actual code for working with Core. :) The
| Language.Haskell.* stuff gives me a very high-level representation of
| Haskell source, and I'd rather work with something simple, like Core. =
I
| *suppose* I could use ghc -fvia-ext or helium -C or something like =
that,
| and then parse the file it spits out, but it feels like a long way to =
go
| when there should be shortcuts available. Another way is to rip out =
the
| code from ghc or helium that does this, but that's not so nice either =
:(
|=20
| Any suggestions?
|=20
|=20
| /Martin