Хотя это вопрос с более широким охватом, я хочу написать онлайн-тестовый код для моей компании, где людям могут быть заданы вопросы для написания кода в java / php / c и т. Д., А также запуск и компиляция кода в Интернете. Я видел, как это происходит на сайте, например, в кодекадемии, Udacity и т. Д. Просто хочу понять архитектуру, стоящую за ней. Я много искал по сходным строкам в Google, но не смог найти конкретный ответ. Хотя после чтения бит и кусочков здесь и там я понял, что код отправляется компилятору на сервер, а затем результаты отправляются обратно. Не знаете, как это происходит. Может кто-нибудь указать мне на отправную точку.
То, что вы в принципе можете иметь, в соответствии с шаблоном MVC, применяемым к веб-архитектуре, выглядит примерно так:
Последовательность операций может быть:
Однако, в общем, дело в том, что компиляторы и интерпретаторы являются базовым программным обеспечением. Они не предназначены для обычных пользователей, которые могут легко работать только с операционной системой. Поэтому «компиляция на линии», насколько мне известно, отличается от «кода публикации, разрешения на выполнение на сервере и визуализации ответа». Онлайн-компиляция будет означать распределение ответственности за компиляцию по сети, что имеет смысл, но, на мой взгляд, оно не предназначено для демонстративной цели (например, вы упоминаете).
Я использовал domjudge для своей компании и настроил ее для моей потребности.
PHP-код очень хорошо написан. Он очень модульный и прост в адаптации к вашим требованиям.