Есть ли такая вещь, как встроенный пакетный язык?
Недавно я просматривал файл конфигурации игры, в которую играл, когда меня поразило, насколько язык, использованный в файле конфигурации, напоминает пакетный язык с каждой строкой, сформулированной как команда, насколько простым был синтаксис и как сразу его очистить было то, что делала каждая строка в файле, не требуя каких-либо окружающих строк контекста. Тем не менее, я не знаю ни одного пакетного языка, который часто используется в качестве языка расширения, чтобы быть встроенным в другое приложение.
На самом деле нет ли пакетных языков, предназначенных для встраивания в другие программы (прежде всего, я бы подумал, для файлов конфигурации), или я просто не слышал о них? Если есть, то что это за языки?
А если нет, то можно ли каким-то образом запустить сценарий оболочки или аналогичный из программы в изолированной среде с помощью пользовательских команд и впоследствии получить доступ к полученным переменным среды из программы?
Редактировать: под пакетным языком я имею в виду, что должна быть возможность давать команды, т.е. формулировать строки в форме <command> [<arg1> [<arg2> [...] ] ]
1 ответ
Каноническими примерами этого являются, вероятно, Lua и Tcl, оба из которых были разработаны для встраивания в другие программы.
Луа чаще используется в эти дни.
В Википедии есть список программного обеспечения Lua со сценариями, а другой - в Lua Wiki.