Schnittstellenbeschreibungssprache
# Schnittstellenbeschreibungssprache

Eine Schnittstellenbeschreibungssprache oder Schnittstellendefinitionssprache ist eine deklarative formale Sprache und beinhaltet eine Sprachsyntax zur Beschreibung von Schnittstellen einer Software-Komponente.

Mit ihrer Hilfe lassen sich Objekte und die auf sie anwendbaren Methoden mitsamt den möglichen Parametern und Datentypen beschreiben, ohne dabei die Eigenschaften einer bestimmten Programmiersprache zu verwenden. Die Schnittstellenbeschreibungssprache dient rein der Beschreibung der Schnittstelle, nicht jedoch der Formulierung von Algorithmen.

Ausgehend von der Schnittstellenbeschreibungssprache kann ein spezieller Compiler die Definitionen in eine bestimmte Programmiersprache und Rechnerarchitektur umsetzen, das so genannte Language Binding.

Eine Schnittstellenbeschreibungssprache findet sich meist in verteilten Systemen, bei denen ein Client auf einem anderen Rechner Methoden ausführen kann (Remote Procedure Call), beispielsweise COM (MIDL), gRPC, CORBA oder Java RMI.

## AIDL

Die Android Interface Definition Language ist eine Java-ähnliche Sprache für die Definition von RPC-Schnittstellen (für Interprozesskommunikation, IPC). AIDL-Programme werden im Android-Entwicklungssystem (z. B. Android Studio) als .aidl-Dateien gespeichert, aus denen die Android SDK tools automatisch Java-Dateien generieren (ähnlich wie auch aus XML-Ressourcendateien). Über diese können entfernte Prozeduraufrufe durchgeführt werden.

## CORBA IDL

Die Interface Definition Language (IDL) der OMG ist eine Schnittstellenbeschreibungssprache mit C++-ähnlicher Syntax, die für CORBA entwickelt wurde.

Bei CORBA lassen sich die Definitionen auch ohne speziellen Compiler zur Laufzeit in das Interface Repository laden, und können dynamisch von der Software abgefragt werden (Dynamic Invocation Interface bzw. Dynamic Skeleton Interface).

