sentence: the official implementation is available in a variety of languages such as c , c++ , c# , d , erlang , go , haskell , java , javascript , lua , ocaml , perl , php , python , ruby , scala and smalltalk .