The Language of Design: Theory and Computation