Interoperabilità linguistica
# Interoperabilità linguistica

In informatica, il concetto di interoperabilità linguistica indica la capacità di due diversi linguaggi di programmazione di interagire in modo nativo e operare sullo stesso tipo di strutture di dati.

Alcuni linguaggi orientati agli oggetti possono farlo grazie alla macchina virtuale di hosting (ad esempio, linguaggi conformi a .NET CLI in Common Language Runtime e linguaggi compatibili con JVM nella Java virtual machine).

In questo caso, un linguaggio che viene eseguito in una VM può utilizzare un oggetto creato in una lingua diversa nella stessa VM. La VM gestisce l'astrazione richiesta della rappresentazione dell'oggetto che consente di chiamare un metodo di una classe definita nella seconda lingua.

In questo si possono riutilizzare le librerie scritte in un'altra lingua della stessa VM: ad esempio un programma scritto in Apache Groovy, Scala o Clojure può usare qualsiasi libreria scritta in Java . Lo stesso vale per Elixir, LFE ed Erlang, che sono tutti compilati in ErlangVM.

