The # (hash) component model has been proposed to bring the advantages of a component-based perspective of software for the development of high performance computing applications, targeting computer architectures enabled for grid, cluster and capability computing. In simple terms, it is a component model for general purpose parallel programming targeting distributed architectures. This paper presents an institutional theory for #-components, which has originated the idea of introducing parameterized and recursive abstract component types in # programming systems, making possible a general notion of skeletal programming.