Interazione linguistica

1

Come funziona un programma composto da più lingue? In che modo le lingue interagiscono o interagiscono tra loro? Come fanno a capirsi? Come fai a sapere quando utilizzare una determinata lingua e come li implementa in modo che lavorino insieme? (Non in termini di punti di forza e di debolezza, ma in termini di compiti e funzioni). Non è PERCHE 'useresti una domanda in più lingue, ma un HOW userebbe una domanda in più lingue.

Sentiti libero di indirizzarmi verso le risorse che potrebbero rivelarsi utili nella mia ricerca di comprensione.

    
posta ColdCoder 30.03.2016 - 09:28
fonte

2 risposte

4

Le interfacce tra le lingue tendono ad essere al livello "minimo comune denominatore". Java non sa nulla delle classi C ++, C ++ non sa nulla di Python e così via. Quindi tutto ciò che ti rimane sono semplici chiamate di funzioni e tipi primitivi, come numeri interi, float e matrici di caratteri per stringhe.

In pratica, questo "minimo comune denominatore" è spesso C. Molti sistemi operativi in questi giorni sono scritti in C e / o C ++. Quindi ci sarà un compilatore C, una libreria standard C e un'API C per il sistema operativo (ad esempio Win32 su Windows).

Idealmente, evita di usare più lingue per un'applicazione, dato che diventa complicato. Se è necessario, è necessario progettare un'interfaccia pulita e semplice tra i due, utilizzando semplicemente le chiamate alle funzioni. È quasi come scrivere due programmi separati che parlano tra loro.

    
risposta data 30.03.2016 - 10:38
fonte
1

Un programma che utilizza più linguaggi di programmazione è piuttosto raro. Di solito dovrebbe essere evitato a meno che non ci sia una buona ragione per farlo, perché aumenta il know-how necessario per mantenerlo.

Una tecnologia che consente di implementare diverse parti di un programma in diversi linguaggi di programmazione è Common Language Runtime di Microsoft, che è designato dai linguaggi di programmazione basati su .NET. Questo funziona perché tutti i linguaggi basati su CLR vengono compilati nello stesso formato bytecode che viene quindi eseguito dal CLR. Il CLR è orientato agli oggetti e i tipi di dati primitivi sono standardizzati, quindi una classe programmata in una lingua può creare un'istanza e utilizzare oggetti di una classe programmata in un linguaggio di programmazione diverso.

Un'altra cosa che vedi di volta in volta sono programmi che usano linguaggi di scripting (come un motore di gioco scritto in C ++ che usa script scritti in LUA). In tal caso il programma utilizza una libreria per interfacciarsi con l'interprete del linguaggio di scripting. Passa lo script codice sorgente alla libreria come stringa e quindi ottiene un set di funzioni di libreria per dire al linguaggio di scripting di eseguire quel codice.

E poi hai progetti più grandi che consistono in diversi programmi indipendenti che comunicano tra loro tramite la rete. Ad esempio, è possibile avere un'applicazione HTML + Javascript in esecuzione in un browser Web che chiama un backend PHP in esecuzione su un server Web che chiama un database C ++ in esecuzione su un server applicazioni. Sebbene siano tutti programmi diversi dal punto di vista tecnico, sembrano una applicazione dal punto di vista dell'utente. I singoli componenti non hanno bisogno di interessarsi a vicenda con quale tecnologia vengono implementati gli altri componenti in quanto tutte le comunicazioni avvengono tramite protocolli di rete standardizzati.

    
risposta data 30.03.2016 - 10:50
fonte

Leggi altre domande sui tag