|
|
|
|
|
by afraca
2654 days ago
|
|
A prominent project where I have encountered this is GHC, the Haskell compiler. The route there goes:
Haskell --> Core --> STG --> C-- (It then goes to one of:
- Machine code generation
- into C for feeding to gcc
- into LLVM's intermediate representation.
) |
|
For a general overview of GHC's architecture, see [3].
[1] A. Tolmach, T. Chevalier and the GHC Team, An External Representation for the GHC Core Language (For GHC 6.10). https://downloads.haskell.org/~ghc/6.12.2/docs/core.pdf
[2] S. Peyton Jones, Implementing lazy functional languages on stock hardware: the Spineless Tagless G-machine. https://www.microsoft.com/en-us/research/wp-content/uploads/...
[3] S. Marlow, S. Peyton-Jones, The Glasgow Haskell Compiler. https://www.aosabook.org/en/ghc.html
[4] https://wiki.haskell.org/Super_combinator