Что такое хороший скриптовый язык для небольшой встроенной системы?
Я ищу язык сценариев, который можно включить во встроенную систему, чтобы пользователь мог предварительно настроить поведение устройства на основе системных событий (изменения порта ввода-вывода, события времени...). Необходимым элементом управления является
if (some_event)
{
do some stuff
delay N seconds
do more stuff
if (some condition)
{
do something
}
else
{
delay until condition
do something else
}
}
Каждая из частей "делать вещи" обычно заключается в изменении состояния IO или разрешении/запрете обработки одного или нескольких событий.
Нет необходимости в обработке текста или обработке файлов, если это не требуется внутренне с помощью реализации языка сценариев.
Процессор, который я использую, имеет около 8 Кбайт ОЗУ и 20 Кбайт программного хранилища, доступных после создания нормального рабочего кода. Прошивка написана на C, поэтому любой источник для языка сценариев также должен быть в C.
Ответы
Ответ 1
Мы используем Squirrel для этого задания. Он похож на Lua, но ссылка подсчитывается вместо сбора мусора, поэтому он работает лучше в очень плотной памяти. С другой стороны, его сообщество намного меньше.
Я также видел Lisp embedded успешно, особенно производную от схемы.
См. также этот другой вопрос StackOverflow: Какие доступные интерактивные языки работают в крошечной памяти?
Ответ 2
Lua - мой первый выбор в качестве встроенного языка. Он написан на C, легко разоблачить ваши собственные функции для Lua, и по его мнению, была проделана определенная работа, чтобы заставить его работать над встроенными системами.
Ответ 3
Традиционный выбор Forth. Маленькие встроенные системы, такие как микроконтроллеры, являются платформой Forth. Существует множество вариантов реализации с множеством функций, целевых платформ и лицензирования. У Forth Interest Group есть список коммерческая реализация и некоммерческие реализации.
Ответ 4
Для встроенных систем попробуйте eLua.
Ответ 5
Я бы дал Lua выстрел, поскольку это очень маленький язык сценариев. Он может быть полностью встроен
Lua - это быстрый языковой движок с небольшим размером, который вы можете вставлять легко в ваше приложение. Lua имеет простой и хорошо документированный API что позволяет сильную интеграцию с кодом, написанным на других языках. Легко расширять Lua библиотеками, написанными на других языках. Это также легко расширить программы, написанные на других языках с помощью Lua. Lua используется для расширения программ, написанных не только на языках C и С++, но также в Java, С#, Smalltalk, Fortran, Ada, Erlang и даже в другие языки сценариев, такие как Perl и Ruby.
Домашняя страница Lua
Ответ 6
У меня был хороший опыт использования пешки (http://www.compuphase.com/pawn/pawn.htm) в прежнем проекте. Производная от нее также используется в среде рабочего стола E17, они называют ее "эмбрионом". (https://trac.enlightenment.org/e/wiki/Embryo).
Ответ 7
Вы также можете попробовать JavaScript, движок V8 из Google очень легко внедрить. Также сам язык очень маленький, поэтому вы можете в значительной степени сформировать его в нечто подходящее для вашего домена.
Ответ 8
Существует четыре довольно распространенных языка для вложения (в определенном порядке):
Из них Lisp и Forth, возможно, являются наименее удобными для конечных пользователей. В настоящее время Lua является наиболее популярным (он очень популярен в игровом мире), Tcl, возможно, является самым простым для изучения (всего 12 правил для всего языка) и является языком дефакто в мире EDA.
Ответ 9
Надеюсь, это поможет вам
вложение perl script в c-приложениях
http://www.ibm.com/developerworks/linux/tutorials/l-perlscript/index.html
Просто пойдите в Google для получения дополнительной информации. Я считаю, что perl помогает вам в поиске шаблонов (строк).
Чтобы изучить perl, пройдите этот учебник
http://mj12net.org/courses/perl/Teach%20Yourself%20Perl%20in%2021%20Days.pdf
Хороший учебник, вы можете исследовать больше, чем думаете.
Спасибо вам