Comment créer une application Web pour Compiler et Exécuter du code Java / C / PHP en ligne? [fermé]


Bien que ce soit une question avec une portée plus large, je veux écrire un code de test en ligne pour mon entreprise où les gens peuvent avoir des questions pour écrire du code en java/php/c, etc. et le code s'exécute et se compile en ligne. J'ai vu cela se produire sur un site comme codeacademy, Udacity, etc. Veux juste comprendre l'architecture derrière elle. J'ai beaucoup cherché le long des lignes similaires sur Google mais je n'ai pas pu trouver de réponse concrète. Bien qu'après avoir lu des morceaux ici et là j'ai compris cela le code est envoyé au compilateur sur le serveur, puis les résultats sont renvoyés. Vous ne savez pas comment exactement ce qui se passe. Quelqu'un peut-il m'indiquer un point de départ.

Author: sushil bharwani, 2014-09-22

2 answers

Ce que vous pouvez fondamentalement avoir, selon un modèle MVC appliqué à une architecture Web, est quelque chose comme ceci:

  • Une application web côté client, qui permet à l'utilisateur d'insérer du code, peut-être en tirant parti de Javascript pour la vérification syntaxique précoce
  • Un point de terminaison de serveur, réception du code inséré en entrée du client

La séquence des opérations pourrait être:

  1. Côté serveur, l'entrée est transformée en la structure appropriée pour le langage de programmation cible, par exemple une classe Java ou un module C.
  2. Éventuellement, plus de contexte est défini (par exemple un classpath).
  3. Ensuite, si le langage est compilé, le compilateur est appelé (par exemple javac ou gcc). Cela peut se produire de plusieurs manières, par exemple exec en C ou Runtime.getRuntime ().exec en Java. Sinon, le code peut être déployé sur un serveur ou certains simulateurs peuvent être exécutés et adopté le code.
  4. Par la suite, le code est exécuté et la sortie est interceptée (par exemple en dirigeant le sortie de la console dans un fichier ou simplement en tirant parti de l'infrastructure de la langue cible, comme dans cet exemple). L'exécution peut se faire via la ligne de commande (par exemple java) ou via d'autres outils (par exemple curl pour exécuter un code php déployé car c'était un navigateur client qui y accédait)
  5. La dernière étape pour le serveur consiste à renvoyer la sortie interceptée au client dans un format lisible, par exemple HTML. Comme alternative, si vous avez utilisé Java, vous pouvez opter pour Applet, ce qui ne change pas le architecture de base.

Cependant, plus généralement, le fait est que les compilateurs et les interprètes sont des logiciels de base. Ils ne sont pas destinés aux utilisateurs généraux, qui peuvent facilement vivre avec le système d'exploitation uniquement. Par conséquent," compiler en ligne", à ma connaissance, est quelque chose de différent de"publier du code, le laisser s'exécuter sur un serveur et visualiser la réponse". La compilation en ligne signifierait la répartition de la responsabilité de la compilation sur le réseau, ce qui rend sens, mais, à mon avis, il n'est pas destiné à être utilisé à des fins démonstratives (comme vous le mentionnez).

 5
Author: Manu, 2017-05-23 12:10:43

J'ai utilisé domjudge pour mon entreprise et personnalisées pour mon besoin.

Le code PHP est très bien écrit. Il est très modulaire et simple à adapter à vos besoins.

 2
Author: Mohit Jain, 2014-09-22 06:26:40