Parsimony Principles for Software Components and Metalanguages

Todd Veldhuizen, Parsimony Principles for Software Components and Metalanguages.

How can we judge whether a component is over- or under-generalized? Drawing on minimum description length principles, we propose that the best component yields the most succinct representation of the use cases.

If we view a programming language as an assemblage of metalanguages, each providing a complementary style of abstraction, how can these metalanguages aid or hinder us in efficiently describing software? We describe a complex triangle of interactions between the power of an abstraction mechanism, the amount of reuse it enables, and the cognitive difficulty of its use.

This paper was presented at GPCE 2007, in Salzburg, Austria, October 1-3, 2007.