scm2cpp

scm2cpp is READABLE C++ code generator from Scheme code.

Ver 0.6

Ver 0.7

  • URL http://www.suri.cs.okayama-u.ac.jp/servlets2/scm2cpp.rkt
  • Feature
    • does not need C++11, C++03 is sufficient
    • Static type inference
      • but sometime can not distinguish int and float
    • Mainly forced on numeric computation
    • Not support symbol and string computation
  • Support
    • uniform vector, uniform list ...
    • More statement can deal than Ver 0.6
  • Not support
    • call/cc , string , char , symbol, switch , car , cdr , cons , let* , letrec , hash , alist ...
    • no difference let let*
    • tail recursion does not expanded
    • some type declaration does not work than Ver0.6
  • Bug in 0.7.2
    • function should not return lambda
    • function should not return do block
  • related work http://www-ti.informatik.uni-tuebingen.de/~weissr/doc/scm2cpp.pdf
  • Require C++ library
    • Boost.Array Boost.Assign Boost.Fusion Boost.Function
  • In ver 0.7.2 following implemented, but not tested.
    • do , named let , cond