In large-scale system and software engineering, project teams rarely rely on a single notation. Systems architects model structural behaviors in AADL or SysML, software engineers write application code in C++, Java, or VHDL, and domain specialists design state machines and control logic.
While using specialized notations allows developers to choose the most expressive tool for the task, it introduces two major challenges:
- Communication: Ensuring different stakeholders understand the intent across distinct notations.
- Correctness and consistency: Verifying that disparate representations remain consistent with one another as the system evolves.
The Language of Languages (LoLs) project was conceived to address this fragmentation. Rather than forcing all disciplines into a single monolithic model or writing fragile N x M translators, LoLs adopts a language-agnostic view.
By decoupling underlying domain Concepts (such as State, Action, or Addition) from their concrete Language Definitions (textual, numerical, or graphical), LoLs unifies different representations under a shared Language Element Tree. This concept-centric integration enables early and continuous Virtual Integration, a core principle of initiatives like System Architecture Virtual Integration (SAVI), allowing teams to detect interface mismatches promptly and lower system lifecycle costs.
Next in the series: Under the Hood: Building the First LoLs Prototype in Squeak Smalltalk and OMeta.
Jamie