Привет. Стоит задача сделать так, чтобы на готовых устройствах предоставить пользователю написать свой код, но при этом не прошивать его в устройство, а лишь исполнить, загрузив с SD-карты.
Решил, что для этого подойдет какой-нибудь интерпретатор простого, но достаттчно выразительного языка программирования.
Кто что может посоветовать для решения такой задачки?
Я смотрел в эту сторону, но по-моему eLua слишком прожорливый 128кб памяти и 64 кб оперативы... Ну и автоматическая сборка мусора, немного лишнее в контроллере.
Хотелось бы чего-то более простого и легковесного, можно и байт-код кстати.
Добавлено спустя 5 минут 24 секунды: А что из урезанной джавы есть на примете?
Если это под LPC24xx и задачи не "вычислительные", а "конфигурационные". То есть типа "если на входе 2 больше семи, включить реле 1", то я бы поискал готовые решения:
http://armpit.sourceforge.net/ - типа того. Они ищутся достаточно спокойно. Из простенького байткода можно взглянуть на древние интерпретаторы (cflea например). Они еще не обезображены ресурсоемкими "объектно-ориентированностью, сборщиками мусора и прочими перегруженными типами". Но вкручивать их придется "восемь раз вокруг ноги, через шею в сапоги"
Добавлено спустя 7 минут 26 секунд: из джавы - сейчас не скажу. Но попадались всякие (правда платные часто)
Features of the PyMite VM: Requires roughly 55 KB program memory Initializes in 4KB RAM; print "hello world" needs 5KB; 8KB is the minimum recommended RAM. Supports integers, floats, tuples, lists, dicts, functions, modules, classes, generators, decorators and closures Supports 25 of 29 keywords and 89 of 112 bytecodes from Python 2.6 Can run multiple stackless green threads (round-robin) Has a mark-sweep garbage collector Has a hosted interactive prompt for live coding Licensed under the GNU GPL ver. 2
Последний раз редактировалось MiBBiM 18 июл 2011, 15:10, всего редактировалось 1 раз.
А точно нужен полный настоящий язык? Может какой-то свой упрощенный на пару десятков команд придумать? Общая задача то какая, чем этот МК с интерпретатором будет управлять?
Да я собственно поняв, что ничего толкового нет уже начал писать сам. Только вот решу надо ли запихивать компилятор в контроллер или достаточно виртуальной машины...