1. A system for self-assembling software components, the system comprising: a first and second set of language components wherein each language component defines at least one part of at least one language runnable on a computer by associating a piece of grammar of the at least one language with at least one software component that implements the piece of grammar; a request broker that upon being provided with at least one section of code written in the at least one language matches syntactic appearances of the first set of language components in the at least one section of code; and logic to grant access to the language components of the first set whose syntactic appearances the request broker matched, in order to enable self-assemblage of the language components of the first set with language components of the second set.