An architecture description language is used to specify the structure of a system separately from its algorithmic aspects.
Also known as Module Interconnection Language, Configuration Language.
Examples include:
- Conic Configuration Language (description at http://www-vs.informatik.uni-ulm.de/DOSinWWW/TextFiles/DPEnvironment/Conic.html)
- Darwin (http://www-dse.doc.ic.ac.uk/Research/Darwin/)
- Wright (http://www-2.cs.cmu.edu/~able/wright/)
- Polylith (papers at http://www.cs.umd.edu/TRs/authors/James_M_Purtilo-no-abs.html)
- OLAN (French document at http://www.essi.fr/~riveill/recherche/95-olan-francais.html).
- Acme (http://www-2.cs.cmu.edu/~acme/)
What is the difference between this and a CompositionLanguage?
Probably very little, although ADL's are usually declarative, do not have many general programming features and may not be TuringComplete.
Note UML (http://www.uml.org) is not an ADL but it could be possible to extend some parts of UML to make them an ADL.