sentence: idls describe an interface in a language-independent way , enabling communication between software components that do not share a language for example , between components written in c++ and components written in java .