Guest User

Untitled

a guest
May 24th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. % ./dist/build/selenc/selenc -P test/frac.sl
  2. ===> Stage: parsing
  3.  * definition of fracRec:
  4. TmAbs () (MkVarName {unVarName = "x"}) Nothing (TmIf () (TmApp () (TmVar () (MkVarName {unVarName = "isZero"})) (TmVar () (MkVarName {unVarName = "x"}))) (TmInt () 1) (TmApp () (TmApp () (TmVar () (MkVarName {unVarName = "mult"})) (TmVar () (MkVarName {unVarName = "x"}))) (TmApp () (TmVar () (MkVarName {unVarName = "fracRec"})) (TmApp () (TmVar () (MkVarName {unVarName = "pred"})) (TmVar () (MkVarName {unVarName = "x"}))))))
  5.  
  6.  * definition of fracTail:
  7. TmLet () (MkVarName {unVarName = "f"}) Nothing (TmIf () (TmApp () (TmVar () (MkVarName {unVarName = "isZero"})) (TmVar () (MkVarName {unVarName = "x"}))) (TmInt () 1) (TmApp () (TmApp () (TmVar () (MkVarName {unVarName = "f"})) (TmApp () (TmApp () (TmVar () (MkVarName {unVarName = "mult"})) (TmVar () (MkVarName {unVarName = "x"}))) (TmVar () (MkVarName {unVarName = "aux"})))) (TmApp () (TmVar () (MkVarName {unVarName = "pred"})) (TmVar () (MkVarName {unVarName = "x"}))))) (TmAbs () (MkVarName {unVarName = "aux"}) Nothing (TmAbs () (MkVarName {unVarName = "x"}) Nothing (TmVar () (MkVarName {unVarName = "f"}))))
  8. ===> Stage: CPS transformation
  9.  * CPS transformation of fracRec:
  10. FIX [(MkVarName {unVarName = "@0"},[MkVarName {unVarName = "@1"},MkVarName {unVarName = "x"}],FIX [(MkVarName {unVarName = "@2"},[MkVarName {unVarName = "@3"}],APP (VVAR (MkVarName {unVarName = "@1"})) [VVAR (MkVarName {unVarName = "@3"})])] (FIX [(MkVarName {unVarName = "@12"},[MkVarName {unVarName = "@13"}],SWITCH (VVAR (MkVarName {unVarName = "@13"})) [FIX [(MkVarName {unVarName = "@4"},[MkVarName {unVarName = "@5"}],APP (VVAR (MkVarName {unVarName = "@2"})) [VVAR (MkVarName {unVarName = "@5"})])] (FIX [(MkVarName {unVarName = "@6"},[MkVarName {unVarName = "@7"}],FIX [(MkVarName {unVarName = "@8"},[MkVarName {unVarName = "@9"}],APP (VVAR (MkVarName {unVarName = "@7"})) [VVAR (MkVarName {unVarName = "@4"}),VVAR (MkVarName {unVarName = "@9"})])] (FIX [(MkVarName {unVarName = "@10"},[MkVarName {unVarName = "@11"}],APP (VVAR (MkVarName {unVarName = "fracRec"})) [VVAR (MkVarName {unVarName = "@8"}),VVAR (MkVarName {unVarName = "@11"})])] (APP (VVAR (MkVarName {unVarName = "pred"})) [VVAR (MkVarName {unVarName = "@10"}),VVAR (MkVarName {unVarName = "x"})])))] (APP (VVAR (MkVarName {unVarName = "mult"})) [VVAR (MkVarName {unVarName = "@6"}),VVAR (MkVarName {unVarName = "x"})]))] (APP (VVAR (MkVarName {unVarName = "@2"})) [VINT 1]))] (APP (VVAR (MkVarName {unVarName = "isZero"})) [VVAR (MkVarName {unVarName = "@12"}),VVAR (MkVarName {unVarName = "x"})])))] (APP (VVAR (MkVarName {unVarName = "kexit"})) [VVAR (MkVarName {unVarName = "@0"})])
  11.  
  12.  * CPS transformation of fracTail:
  13. FIX [(MkVarName {unVarName = "@0"},[MkVarName {unVarName = "@1"}],APP (VVAR (MkVarName {unVarName = "kexit"})) [VVAR (MkVarName {unVarName = "@1"})])] (FIX [(MkVarName {unVarName = "@2"},[MkVarName {unVarName = "@3"}],FIX [(MkVarName {unVarName = "@4"},[MkVarName {unVarName = "@5"},MkVarName {unVarName = "aux"}],FIX [(MkVarName {unVarName = "@6"},[MkVarName {unVarName = "@7"},MkVarName {unVarName = "x"}],APP (VVAR (MkVarName {unVarName = "@7"})) [VVAR (MkVarName {unVarName = "f"})])] (APP (VVAR (MkVarName {unVarName = "@5"})) [VVAR (MkVarName {unVarName = "@6"})]))] (APP (VVAR (MkVarName {unVarName = "@0"})) [VVAR (MkVarName {unVarName = "@3"})]))] (FIX [(MkVarName {unVarName = "@18"},[MkVarName {unVarName = "@19"}],SWITCH (VVAR (MkVarName {unVarName = "@19"})) [FIX [(MkVarName {unVarName = "@8"},[MkVarName {unVarName = "@9"}],APP (VVAR (MkVarName {unVarName = "@2"})) [VVAR (MkVarName {unVarName = "@9"})])] (FIX [(MkVarName {unVarName = "@10"},[MkVarName {unVarName = "@11"}],FIX [(MkVarName {unVarName = "@12"},[MkVarName {unVarName = "@13"}],APP (VVAR (MkVarName {unVarName = "@11"})) [VVAR (MkVarName {unVarName = "@8"}),VVAR (MkVarName {unVarName = "@13"})])] (APP (VVAR (MkVarName {unVarName = "pred"})) [VVAR (MkVarName {unVarName = "@12"}),VVAR (MkVarName {unVarName = "x"})]))] (FIX [(MkVarName {unVarName = "@14"},[MkVarName {unVarName = "@15"}],APP (VVAR (MkVarName {unVarName = "f"})) [VVAR (MkVarName {unVarName = "@10"}),VVAR (MkVarName {unVarName = "@15"})])] (FIX [(MkVarName {unVarName = "@16"},[MkVarName {unVarName = "@17"}],APP (VVAR (MkVarName {unVarName = "@17"})) [VVAR (MkVarName {unVarName = "@14"}),VVAR (MkVarName {unVarName = "aux"})])] (APP (VVAR (MkVarName {unVarName = "mult"})) [VVAR (MkVarName {unVarName = "@16"}),VVAR (MkVarName {unVarName = "x"})]))))] (APP (VVAR (MkVarName {unVarName = "@2"})) [VINT 1]))] (APP (VVAR (MkVarName {unVarName = "isZero"})) [VVAR (MkVarName {unVarName = "@18"}),VVAR (MkVarName {unVarName = "x"})])))
Add Comment
Please, Sign In to add comment