¿Cómo se logra un terminal interactivo en línea?

Si desea permitir que las personas compilen código / ejecuten comandos a través de una interfaz web (algo así como compilar y ejecutar programas en línea | IDE en línea), querrá pasar el código para que se compile como un parámetro POST o en la URL (& code = Bla, bla, pero cuidado, esto tiene limitaciones de tamaño).

Entonces querrá invocar el compilador relevante desde Node.js

var spawn = require (‘child_process’). spawn;
var prc = spawn (‘javac’, [‘filenameIJustMade’]);

Finalmente, querrá invocar el programa que acaba de compilar y responder a la solicitud HTTP con la salida del programa.

Algo como

var spawn = require (‘child_process’). spawn;
var prc = spawn (‘java’, [‘programIJustCompiled]);
prc.stdout.setEncoding (‘utf8’);
prc.stdout.on (‘datos’, función (datos) {
var str = data.toString () var lines = str.split (/ (\ r? \ n) / g);
// Escribe líneas en tu socket
});

(Desde ¿Es posible ejecutar un programa externo desde node.js?)

Los posibles problemas con esto son que no hay nada que impida que alguien envíe códigos maliciosos o códigos que tardan años en ejecutarse.

Si solo está tratando de compilar el código y devolver un exe al usuario, entonces sería bastante fácil con Java (Invocar javac, generar un jar, Devolver jar como descarga) pero más problemático con GCC o G ++ ya que el servidor probablemente se ejecutará en un sistema operativo diferente para el usuario, por lo que su ejecutable generado probablemente no será compatible con su computadora (para resolver esto, necesitaría intentar discernir la plataforma del usuario y compilar específicamente para ello, pero esto sería un desafío).

Python y R tienen modos de operación interpretados. Por lo tanto, se puede escribir una aplicación JavaScript interactiva para obtener la entrada del usuario, pasarla a los intérpretes y mostrar la salida al usuario final.

More Interesting

¿Cómo gestionan las grandes aplicaciones web a los usuarios y sus datos?

¿Por qué alguien elegiría Python sobre Ruby, y viceversa?

Cómo construir confianza como desarrollador web

¿Cómo debo configurar un sitio web / aplicación web para mostrar mis habilidades y proyectos para aplicaciones de trabajo de desarrollador web?

¿Cuál es el mejor conversor gratuito de pdf a xls?

Cuántas mejoras e iteraciones importantes pasan las aplicaciones web exitosas antes (y si) se vuelven exitosas; ¿Y qué mejoras fueron?

¿Qué es mejor para una aplicación web moderna que se ocupa de pagos, Flask o Django?

Para un tipo de aplicación de diario público principalmente monetizada con anuncios, ¿cuál construiría primero, con fondos limitados, un sitio web móvil HTML5 o una aplicación para iPhone?

¿Es posible poner una aplicación Rails en Salesforce AppExchange?

Estoy aprendiendo desarrollo front-end. ¿Cómo me posiciono en la capa de aplicación?

¿Cuáles son las mejores agencias web utilizadas para crear aplicaciones web MVP de inicio, preferiblemente en Londres?

Estoy buscando patrones de IU útiles que faciliten la creación de un objeto complejo o actividad de entidad / registro de cambios para un CRM. Las entidades incluyen un cliente potencial (cliente futuro o actual) con sus datos personales, direcciones de envío, pedidos, conversaciones por correo electrónico, teléfono y mensajes de texto, etc. ¿Cómo hago esto?

¿Cuál es el mayor desafío al crear una aplicación comunitaria de preguntas y respuestas?

¿Cómo las grandes aplicaciones web como Quora estructuran su sitio y su código para ser utilizados en múltiples miembros del equipo?

¿Cuál será el mejor lenguaje de programación para utilizar para desarrollar una aplicación web para un servicio de entrega?