I have https://github.com/bollu/tiny-optimising-compiler which implements a tiny compiler for SSA. It has everything you ask for. It generates MIPS asm, so it performs register allocation as well. 

On Wed, Apr 7, 2021 at 3:13 AM Vanessa McHale <vamchale@gmail.com> wrote:

I have kempe - the backend is the interesting part I guess http://hackage.haskell.org/package/kempe

It has blocks, it's effectful, it has no loops (just recursion) though.

- Vanessa McHale

On 4/5/21 7:32 PM, Igor Moreno Santos wrote:
Hi,

I'm looking for a toy imperative language implementation in Haskell for research purposes. I imagine something like the language of arithmetic expressions from TAPL ch. 3 augmented with
- while-loop (so the CFG has loops)
- blocks (sequence of statements to put inside loops and conditionals)
- assignment (otherwise we can't show any effects from sequences)

I think there's probably nothing exactly like that so we might end up doing it ourselves but maybe there's already something out there.

Thank you in advance.

Regards,
Igor Moreno



_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.


--
https://bollu.github.io/