Condivisione delle API tra diversi linguaggi di programmazione?

5

Mi stavo chiedendo in che modo è possibile condividere le API tra diversi linguaggi di programmazione.

Voglio dire, MS ha. Net che usa VB.net C # e varie altre tecnologie.
Dubito. Net è scritto per ogni linguaggio di programmazione.
In che modo le strutture e le classi sono condivise tra le lingue?

Lo stesso vale per Unity3D - Javascript condivide le API con C # e BOO.
Come?

    
posta Nathaniel Bennett 22.04.2012 - 20:44
fonte

2 risposte

6

Sono basati sulla Common Language Infrastructure o CLI. È fondamentalmente una macchina virtuale in cui tutti questi linguaggi compilano lo stesso bytecode e leggono gli assembly che sono in termini di CLI. Ciò fornisce un'astrazione sulla lingua di partenza e di destinazione.

    
risposta data 22.04.2012 - 20:49
fonte
1

Ci sono due approcci di base. Uno è quello di compilare in bytecode della macchina virtuale, quindi è fondamentalmente necessario un compilatore per ogni lingua di destinazione. L'altro è quello di creare quello che viene chiamato un "binding" linguistico usando un'interfaccia nativa. La maggior parte delle lingue ha un modo per collegarsi con il codice nativo, quindi, per esempio, fai un'implementazione in C, quindi crea un'API wrapper nella lingua di destinazione che traduce le chiamate e le strutture dati nell'API C.

    
risposta data 23.04.2012 - 00:28
fonte

Leggi altre domande sui tag