Вам понадобится разместить все виды компиляторов, которые вы хотели бы поддерживать, и использовать их API.Если компилятор не предоставляет API, вам нужно использовать System.Diagnostics.Process
для его запуска и получить выходные данные для разбора.
Хотя это далеко не тривиальная задача.
Если вы 'Вы уверены, что вам это нужно, задайте себе несколько вопросов.
- Какие языки, платформы и языки вы планируете поддерживать?Python и Ruby, вы имеете в виду их версии .NET или хотите использовать их стандартные компиляторы?Какие версии?
- Есть ли у этих компиляторов публичные API?Вам нужно будет запускать их как исполняемые файлы?
- Если сайт будет использоваться многими пользователями одновременно, как вы планируете распределить нагрузку?Компиляция - это интенсивный процесс, и если много людей это сделает, ваш сервер будет перегружен.Также обратите внимание, что компиляция всегда занимает много времени, поэтому вам нужно подумать, как представить ее пользователю.Вы хотите, чтобы он начался немедленно, или вы хотите поместить пользователей в очередь?
- Какова область кодирования пользователя?Пользовательский ввод ограничен одним содержимым метода, или пользователь должен написать весь файл?Любой код добавлен системой по умолчанию?Как вы решаете ссылки, например, для кода C #?Есть ли ссылки на некоторые библиотеки по умолчанию?
И это только верхушка айсберга.
Отвечая на ваш комментарий, да, есть API компилятора для C # и VB .NET, которыйназывается CodeDOM .
В сети достаточно информации об этом.Вы можете также проверить этот вопрос .