Middleware between Languages

0

Diciamo che ho scritto una libreria contenente molte classi in C ++. Ovviamente, posso chiamare questa libreria dai programmi client C ++.

Ma ora diciamo che voglio usare un'altra lingua per i miei programmi client. Poiché la mia libreria C ++ contiene molte classi, non voglio riutilizzarle nella lingua del client.

Quindi, vorrei poter chiamare le mie classi di libreria C ++ da altre lingue.

Inoltre, voglio che la soluzione sia portatile su tutte le piattaforme. Non voglio essere legato a una piattaforma (come .NET, dove qualsiasi linguaggio .NET può chiamare qualsiasi altro linguaggio .NET).

Nel caso estremo, questa funzione di chiamata interlingua sarebbe richiesta anche da linguaggi "gestiti" come Java.

Quindi la mia domanda è: è possibile chiamare una funzione di libreria scritta in una lingua, da un programma scritto in un'altra lingua? Se sì, come?

    
posta SSteven 31.01.2018 - 07:11
fonte

1 risposta

2

La mia comprensione dell'uso generale di "Middleware" è un po 'diversa dalla tua descrizione poiché non è principalmente che consente alle librerie scritte in una lingua di essere chiamate da un'altra.

Penso che quello che stai cercando siano strumenti che consentono di generare associazioni di linguaggio incrociato in modo da consentire alle librerie scritte in un linguaggio C ++ in questo caso di essere utilizzate in più lingue diverse. Un paio di esempi di questi strumenti sono Boost e Swig .

In entrambi gli strumenti di cui sopra è necessario creare le librerie C ++ per l'esecuzione sulla piattaforma di destinazione e creare un livello di interfaccia per le lingue che si desidera fornire i collegamenti, ma nel caso di Boost come per quanto posso vedere devi prestare molta attenzione a come è costruita la tua biblioteca. SWIG d'altra parte analizza i file dell'interfaccia (.h) e produce associazioni per le lingue di destinazione supportate che includono Tcl, Python, Perl, Guile, Java, Ruby, PHP, C #, R, Go, ecc.

    
risposta data 31.01.2018 - 07:33
fonte

Leggi altre domande sui tag