A statically typed programming language for scientific computations with first class support for physical dimensions and units