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