STG to JavaScript translation

Simon Peyton-Jones simonpj at microsoft.com
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:
http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/CoreSynType

does that help?

Simon
| -----Original Message-----
| From: glasgow-haskell-users-bounces at haskell.org [mailto:glasgow-haskell-users-bounces at haskell.org] On
| Behalf Of Victor Nazarov
| Sent: 17 September 2007 11:48
| To: glasgow-haskell-users at haskell.org
| 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:
| http://haskell.org/haskellwiki/STG_in_Javascript
|
| --
| vir
| http://vir.comtv.ru/
| _______________________________________________
| Glasgow-haskell-users mailing list
| Glasgow-haskell-users at haskell.org
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


More information about the Glasgow-haskell-users mailing list