¿Puedo escribir scripts con C ++?

Como un script generalmente denota un fragmento de código que se ejecuta en un intérprete, y C ++ es un lenguaje compilado que debe convertirse en un ejecutable binario antes de ejecutarse, la respuesta corta a su pregunta es “no”.

Para mayor claridad, un intérprete analiza el código en tiempo de ejecución. Entonces, terminas pagando un precio en términos de rendimiento de tiempo de ejecución porque el intérprete tiene que decidir cómo entender cada línea cada vez que se ejecuta.

En general, los lenguajes compilados tienen reglas más estrictas de tipeo y semántica que las que tendrá un intérprete. Esto permite una ejecución más rápida y predecible, pero también una experiencia más complicada con el compilador en términos de advertencias y errores (los intérpretes tienden a ser más ruidosos en tiempo de ejecución con mensajes de error). Un compilador incurre en el costo de “interpretar” (asignar significado) a su código fuente una vez, y genera un binario que funcionará en un conjunto conocido de posibles entornos. Ponga el ejecutable binario resultante en una máquina que no sea el entorno correcto, y las cosas tienden a fallar.

BÁSICAMENTE (juego de palabras) un intérprete combina actividades de compilación y tiempo de ejecución juntas y lo obliga a vivir con el hecho de que va a incurrir en el costo de interpretar el código cada vez que se ejecute. Obtiene portabilidad al precio de tener que repartir siempre la fuente.

Solo para enturbiar las aguas, tenemos entornos como Java y C # de Microsoft que se compilan en un formato de código de bytes para sus respectivos procesadores lógicos (Java los llama “Java VM” y Microsoft los llama “Common Language Runtime (CLR)”. están semi-compilados. El código de bytes generado por el compilador todavía tiene que ser interpretado en tiempo de ejecución, pero no es tan pesado como el ciclo completo de análisis-interpretación que verías en un lenguaje de script como Perl o Python. La ventaja aquí es que los desarrolladores obtienen “compatibilidad binaria” en todas las plataformas sin tener que preocuparse de volver a compilar todo.