如何创建一个Web应用程序以在线编译和运行Java / C / PHP代码?

尽管这是一个范围更广的问题,但我想为我的公司编写一个在线测试代码,在该代码中,人们可以被问到如何用java / php /

c等编写代码,并且该代码可以在线运行和编译。我已经在Codeacademy,Udacity等网站上看到了这种情况。只是想了解其背后的架构。我在Google上进行了很多类似的搜索,但找不到具体答案。尽管在这里和那里读完了零散的片段后,我知道代码已发送到服务器上的编译器,然后将结果发送回去。不知道到底是怎么发生的。有人可以指出我的出发点吗?

回答:

根据应用于Web架构的MVC模式,您基本上可以拥有的是这样的东西:

  • Web应用程序客户端,允许用户插入一些代码,可能利用Javascript进行早期语法检查
  • 服务器端点,从客户端接收插入的代码作为输入

操作顺序可以是:

  1. 在服务器端,将输入转换为目标编程语言(例如Java类或C模块)的适当结构。
  2. 可能会定义更多上下文(例如,类路径)。
  3. 然后,如果语言已编译,则将调用编译器(例如javac或gcc)。这可以通过多种方式发生,例如C中的exec或Java中的Runtime.getRuntime()。exec。否则,可以将代码部署在服务器上,或者可以运行某些模拟器并传递代码。
  4. 随后,执行代码并截获输出(例如,通过将控制台输出定向到文件或仅利用目标语言基础结构,如本例中所示)。该执行可以通过命令行(例如Java)或其他工具(例如,用于运行已部署的php代码的curl进行,因为它是客户端浏览器对其进行访问)
  5. 服务器的最后一步是将拦截的输出以可读格式(例如HTML)发送回客户端。或者,如果您使用Java,则可以使用Applet,它不会改变基本架构。

但是,总的来说,重点是编译器和解释器是基本软件。它们不适合一般用户使用,它们只能轻松地与操作系统一起使用。因此,据我所知,“在线编译”与“发布代码,使其在服务器上执行并可视化答案”不同。在线编译将意味着在整个网络上分配编译的责任,这确实是有道理的,但是在我看来,它并不旨在用于演示目的(就像您提到的那样)。

以上是 如何创建一个Web应用程序以在线编译和运行Java / C / PHP代码? 的全部内容, 来源链接: utcz.com/qa/402922.html

回到顶部