¿Cómo interactúan entre sí los programas escritos en diferentes idiomas?

En primer lugar, debe comprender que el software funciona con datos. El procesador de su computadora solo sabe cómo copiar y actualizar datos, eso es todo lo que hace todo el día. Si lo piensas, es grande. Una vez que comprenda el concepto, queda claro por qué sucede eso, pero es muy importante comprender este aspecto.

Lo segundo es que el software, sin importar en qué idioma se encuentre, termina siendo ejecutado directa o indirectamente por el procesador. Por lo tanto, es muy importante comprender que, sin importar el nivel del lenguaje de programación, todo termina en el tinte del procesador, y termina haciendo nada más que manipular datos.

Ahora podemos comenzar a discutir qué significa “comunicar” e interactuar, y qué significa comenzar un proceso. Comenzaré con el último ejemplo suyo, un programa de Python que inicia un compilador de C ++. Eso es algo bastante fácil: ambos confían en un programa C (el núcleo) para hacerlo. El proceso es una definición abstracta que se ejecuta de forma casi independiente, pero que está coordinada y utiliza los servicios del sistema operativo. Si no es así, se interrumpe de todos modos a intervalos regulares (con bastante frecuencia, realmente) para permitir que el núcleo dé la oportunidad a otros procesos para ejecutarse.

Entonces, lo que sucede en su caso es que el programa python le pide al kernel que ejecute un proceso que será lo que sea: otro programa python, un compilador de C ++ o un shell. No importa

Ahora, la parte más interesante de su pregunta es “cómo pueden comunicarse”. Bueno, la comunicación en el caso del software es ‘intercambiar información’ o datos. Y no importa en qué idioma esté ese proceso, siempre que ambos entiendan el medio de intercambio de datos.

Por lo tanto, tiene muchas formas de intercambiar datos: tuberías, tomas de corriente, archivos, memoria compartida … Puede buscar la comunicación entre procesos para diversos medios de comunicación. Pero las dos ideas principales que son importantes aquí son el hecho de que todos los programas al final son “iguales” a la hora de ejecutarse: son instrucciones para su procesador, y todo lo que hacen los procesadores es manipular los datos.