Quello che stai chiedendo è l'interoperabilità tra C / Fortran e Javascript, l'interopazione può essere fatta in molti modi, i due più comuni che vengono in mente sono:
BFI (Foreign Function Interface) e Inter-Process Communication (IPC).
FFI è il luogo in cui un protocollo standard concordato viene incorporato nell'assembly in fase di compilazione, consentendo l'accesso alle strutture degli assembly da parte di lingue straniere. Ci sono una varietà di interfacce standard FFI, ma non ho familiarità con nessuno che permetta ad un linguaggio interpretato di interfacciarsi con un linguaggio compilato o viceversa; il concetto non si adatta all'uso degli interpreti in quanto i loro script sono in testo semplice senza alcun assembly da interfacciare.
Detto questo, l'interprete potrebbe disporre di strutture per l'accesso FFI. Node.JS viene in mente come un interprete javascript che probabilmente dispone di strutture per l'accesso FFI. In alternativa potresti usare il tuo programma C per ospitare un interprete javascript come il motore V8 di Chrome per far eseguire direttamente al tuo C il javascript se questo ti può aiutare, anche se non sospetto che lo farebbe.
La comunicazione tra processi (IPC) è il luogo in cui si esegue il processo in una lingua e l'altro processo nell'altra lingua, quindi si utilizza una forma di IPC per comunicare tra i due. Comunemente questo viene fatto tramite spazio di memoria condivisa in cui entrambi i processi possono mettere i dati in quello spazio di memoria e leggere da esso per inviare messaggi avanti e indietro. La stessa tecnica viene utilizzata con i file a volte sebbene si tratti di una tecnica di alto costo dovuta ai costi di I / O, tuttavia offre una durata nel caso in cui uno o entrambi i processi si blocchino o anche la macchina perdi potenza.
La tecnica di memoria condivisa per IPC spesso si presenta in due modi:
- Un processo padre che chiama un processo figlio e utilizza "pipe" per inviare messaggi direttamente al processo figlio. Credo che Node.JS suggerisca questa tecnica per interoperare con altre lingue
- Tubi con nome che sono spazi di memoria condivisa a livello di sistema registrati con il kernel e accessibili da un identificatore
Oltre alla memoria condivisa o al disco, l'altra tecnica IPC ampiamente utilizzata è la comunicazione di rete. Ogni volta che il tuo browser accede a un sito web sta comunicando con un altro processo, quindi questo è IPC, e in questo modo i servizi web sono diventati un modo estremamente comune di realizzare IPC. Le tecniche TCP dirette sono ancora utilizzate come pure l'UDP per determinate attività, ma il punto è che la rete può agire come uno strato di comunicazione tra processi proprio come lo spazio di memoria o lo spazio su disco.
Tutto ciò detto, il mio suggerimento è che tu usi i servizi web per IPC come tecnica di interoperabilità linguistica, perché desideri la visualizzazione su un browser.
Questo è tutto. Spero che tu abbia imparato qualcosa, continua:)