これはより広い範囲の質問ですが、Java/php/cなどでコードを記述し、コードをオンラインで実行およびコンパイルするための質問を与えられる私の会社用のオンラインテストコードを書きたいと思います。 codeacademy、Udacityなどのサイトでこれが起こっているのを見てきました。その背後にあるアーキテクチャを理解したいだけです。私はGoogleで同じような線に沿ってたくさん検索しましたが、具体的な答えを見つけることができませんでした。あちこちを読んだ後、コードがサーバーのコンパイラに送信され、結果が返されることがわかりました。それがどのように起こるか正確にはわかりません。誰かが私にそれの出発点を指摘できますか?.
Webアーキテクチャに適用されたMVCパターンに従って、基本的に持つことができるのは次のようなものです。
操作のシーケンスは次のとおりです。
ただし、より一般的には、コンパイラとインタープリタは基本ソフトウェアであることがポイントです。これらは一般ユーザー向けではなく、オペレーティングシステムのみで簡単に使用できます。したがって、私の知る限りでは、「オンラインコンパイル」は「コードの投稿、サーバーでの実行、回答の視覚化」とは異なります。オンラインコンパイルは、ネットワーク全体でコンパイルする責任を分散することを意味しますが、それは理にかなっていますが、私の意見では、(あなたが言及しているように)実証目的で使用することを意図していません。
私は domjudge を会社に使用し、必要に応じてカスタマイズしました。
PHPコードは非常によく書かれています。非常にモジュール化されており、要件に合わせて簡単に調整できます。