An Information Theoretic Approach To The Expressiveness Of Programming Languages