Ну, если на сервере установлен компилятор и используется PHP (кстати, не указали характеристики/параметры), то можно использовать функцию
exec().
Порядок действий будет небольшой:
1. Компилируем файл вышеназванной функцией (в параметрах указываем, что запрещено использовать/подключать, чтобы избежать зловредного кода)
2.1. Если скомпилировалось:
Запускаем собранную программу (тут нужно определиться с выводом для анализа результатов: перенаправить поток вывода в PHP, либо сделать вывод в файл. Чаще всего в условии задачи требуют вывод в файл out.txt, а ввод - из in.txt. Тогда особых заморочек не бывает)
2.2 Если не скомпилировалось:
Выдаем ошибки компилятора пользователю (здесь нужно будет в 1-м пункте вывод ошибок компилятора перенаправить в PHP, либо в файл)
Вроде ничего не упустил
UPD: функция
exec() может возвращать результаты вывода (
php.net/manual/ru/function.exec.php ). Учитывайте этот момент, задача упрощается =)