Да, используй контейнеры (например Docker).
Закидываешь внутрь них код, компилируешь (если используется pabc, c++, java, или C#), запускаешь программу, передаёшь в неё данные и получаешь результат через stdout.
При помощи контейнеров ты также можешь ограничить доступ к ФС хоста, сети, и ограничить использование ресурсов.