Подтвердить что ты не робот

Что такое хороший скриптовый язык для небольшой встроенной системы?

Я ищу язык сценариев, который можно включить во встроенную систему, чтобы пользователь мог предварительно настроить поведение устройства на основе системных событий (изменения порта ввода-вывода, события времени...). Необходимым элементом управления является

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.

4b9b3361

Ответ 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

Ответ 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

Хороший учебник, вы можете исследовать больше, чем думаете. Спасибо вам