Add programmatic API

Detail are in the doc. 

@arikon @scf2k 
А почему `programmatic`? Как-то читается не очень. Может лучше `program API` или `lib API` или `module API`?