Я использую DLR в небольшой части большого проекта C #, языком которого является IronPython.
Для некоторых частей системы пользователь может ввести небольшой сценарий, чтобы настроить их поведение. Что я хотел бы сделать, так это иметь возможность ограничить их использованием чистых функций без побочных эффектов или в какой-то песочнице, чтобы их функция не могла касаться чего-либо снаружи.
Кроме того, пользователь может ввести только тело функции, заголовок функции и спецификация аргумента автоматически добавляются в код перед передачей механизму Python DLR, так что вызывающая его сторона C # системы точно знает, какие аргументы нужно передать и что возвращается. Пользователям всегда нужно будет выполнять простые операции и тесты, основанные исключительно на значениях, переданных в качестве аргументов.
например
это нормально: return (a * 100)> b;
это не нормально : delete_file_system (); return (a * 100)> b;
Как этого можно достичь? Есть ли более подходящий язык или технология?