STG to JavaScript translation

Simon Peyton-Jones simonpj at
Mon Sep 17 12:06:26 EDT 2007

case e of b { pati -> rhsi }

* evaluates 'e',
* binds the resulting value to 'b',
* performs case analysis on the result to find which alternative to choose
* binds the variables of the pattern to the components of the value

This is described in the GHC commentary:

does that help?

| -----Original Message-----
| From: glasgow-haskell-users-bounces at [mailto:glasgow-haskell-users-bounces at] On
| Behalf Of Victor Nazarov
| Sent: 17 September 2007 11:48
| To: glasgow-haskell-users at
| Subject: STG to JavaScript translation
| Hello.
| I'm working on the translation of GHC's STG language to
| JavaScript. I've started my implementation, but I've got stuck with
| the STG case statements. The problem is the binder in case expression.
| StgCase expr livevars liverhsvars bndr srt alttype alts
| Operationally, I need to save continuation and evaluate expr
| expression, but I have no idea what to do with the bndr. It seems to
| me that I need to build a closure binded by bndr with the body of
| expr evaluate it, update it, and use it in RHSs of alternatives.
| But It seems that this behavior isn't intended by GHC. Can you explain briefly
| how GHC implements this binder and what this binder points to.
| Here are some notes about Dmitries last year activity and my activity:
| --
| vir
| _______________________________________________
| Glasgow-haskell-users mailing list
| Glasgow-haskell-users at

More information about the Glasgow-haskell-users mailing list