@qwead

Программа на C#, которая выполняет("возможно интерпретирует") другую программу. Возможно ли?

Можно ли реализовать такую программу, которая могла бы читать файлы определенного формата и исполнять инструкции написанные в них?
ну например:
Main.cs:
var answer = Console.ReadLine();
if (answer == "1") {
    interpete("./subprograms/first.prog");
}

./subprograms/first.prog
__эта подпрограмма выводит сообщение "введите Х" и печатает в консоль квадрат этого числа__


И чтобы можно было добавлять эти подпрограммы для основной программы, без вмешательства и перекомпиляции основной программы(Main)?

На данный момент есть такой вот простенький проект:
https://github.com/DailyDDose/patterns

И хотелось бы добавлять в него другие подпрограммы в отдельную папочку в ./src и при этом не трогать файлы, которые лежат в корне проекта, а именно(BaseProgram.cs, Executor.cs, Program.cs)

UPD 1: Неужто нужно притягивать какой-нибудь lua ?
  • Вопрос задан
  • 199 просмотров
Решения вопроса 2
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
можете "притянуть" js:
https://github.com/tjanczuk/edge
https://github.com/nilproject/NiL.JS

можете притянуть F#
https://docs.microsoft.com/en-us/dotnet/fsharp/tut...

и даже сам C#
https://msdn.microsoft.com/ru-ru/magazine/mt614271.aspx
https://habrahabr.ru/post/170385/
... и тд..

это про "скриптование"...
... а "динамическая компиляция и загрузка C#" - это вообще обдолбаная тема в поисковиках
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
Почти все скриптовые языки написаны на чем-то, что интерпретирует что-то.
Конечно можно написать на любом языке программирования программу, которая будет выполнять код в файле - может вы напишете еще один язык программирования, или язык простеньких макросов.

lua - это уже готовое решение для того, чтобы вставить в свою программу движок, которые будет выполнять lua скрипты. Зависит от того, что вы хотите - чтобы ваша программа умела выполнять lua, или умела выполнять ваш собственный набор инструкций.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Можно ли реализовать такую программу, которая могла бы читать файлы определенного формата и исполнять инструкции написанные в них?

Можно.
хочу чтобы подсказали как можно реализовать подобную идею

А вы сами не знаете? Читать файл, разбирать на слова, в зависимости от слов выполнять команды.

А если хочется возможность прикрутить плагины к своей программе, то смотрите в сторону динамической загрузки сборок. Опишите интерфейсами как должны выглядеть плагины и какие сервисы вы предоставляете плагинам. Удачи.
Ответ написан
@denismaster
lua, ironpython.

Для чего-то своего - пишите интерпретатор на основе грамматики вашего языка)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы