software toolsmith, programming language and tool design&implementation