Вобщем задумка такая: есть скриптик. Описание преметивной логики:
if(a>0 and a<5)
return 1;
else
return 0;
endif
Можно ли его как-то вогнать в память и уже из памяти к нему обращаться как функции.
В теории его можно перегнать в бинарный вид. Но что дальше делать... ?Использовать внешнии обработчик - это долго.
В условии скорость работы. Как можно быстрей.
Поэтому постоянно парсить скрипт, и вычислять результат, просто нет времени.
Также вызов внешних программ (напрмер sh) тоже кретично.
Ключевой вопрос - откуда использовать-то?
Если из шеллу, можно немножко извратиться и чуток докрутить напильником
собственно шелловский интерпретатор, чтоб у него такая функция встроенная
появилась.
>Вобщем задумка такая: есть скриптик. Описание преметивной логики:
>if(a>0 and a<5)
> return 1;
>else
> return 0;
>endif
>Можно ли его как-то вогнать в память и уже из памяти к
>нему обращаться как функции.
>В теории его можно перегнать в бинарный вид. Но что дальше делать...
>?
>
>Использовать внешнии обработчик - это долго.
>В условии скорость работы. Как можно быстрей.
>Поэтому постоянно парсить скрипт, и вычислять результат, просто нет времени.
>Также вызов внешних программ (напрмер sh) тоже кретично.Затейка действительно безумная!!! но для любителей скорости придумали, Си, и динамически линкуемые библиотеки.
А для любителей еще большей оптимизации есть Юникс сокеты, и сервера.
Запусти свой скрипт как демон, и пусть он читает какой нибудь юникс сокет, и возвращает в него данные, любое приложение сможет воспользоваться его сервисом.
1. Это используется не из шела. Скрипт находится в виде текста. Программа на Си обрабатывает этот скрипт.2. Как демон тоже не запустить. Во первых это не баш и ничего. Это просто скрипт моей программы.
Вобщем щас читаю про полиморфные вирусы. Там моя проблемка немного открывает.
Вобщем пробую так:
1.скрипт преобразуется в бинарный формат.
2.полученый результат вгоняется в память.
3.в программе устанавливается ссылка на этот кусок памяти.
4.когда нужно использовать этот скрипт то просто выхывается обычная процедура (ссылка на память с кодом) и код исполняется.
Пока проблема в пунктах 2 и 3.
А если добавить к ядру ОС еще один системный вызов с требуемой логикой? Можно оформить как модуль ядра.
>А если добавить к ядру ОС еще один системный вызов с требуемой
>логикой? Можно оформить как модуль ядра.Скрипты создаются динамически и также динамически цепляются к проге.
>1. Это используется не из шела. Скрипт находится в виде текста. Программа
>на Си обрабатывает этот скрипт.
>
>2. Как демон тоже не запустить. Во первых это не баш и
>ничего. Это просто скрипт моей программы.
Пардон, а почему вы думаете что вы изобретете лучший язык чем баш??? или чем перл???
Кто потом бует изучать этот язык??? А сопровождать вашу программу??
я в свое время тоже бредил созданием собственных языков(пока не столкнулся с юникс)>
>Вобщем щас читаю про полиморфные вирусы. Там моя проблемка немного открывает.
ну это вы зря, в мире и без полиморфных вирусов полно важных проблем, ждущих вашего решения.>Вобщем пробую так:
>1.скрипт преобразуется в бинарный формат.
бинарный?? это что за формат такой??? вы пытаетесь создать компилятор???
или бинарный это байт-код??? значит интерпертатор байт-кода???ни дать не взять, перл или ява, или бейсик(чур меня ;-)) ).
>2.полученый результат вгоняется в память.
вот уж не думаю что с этим может возникнуть проблема.>3.в программе устанавливается ссылка на этот кусок памяти.
и это проблема не большая.>4.когда нужно использовать этот скрипт то просто выхывается обычная процедура (ссылка на
>память с кодом) и код исполняется.
>Пока проблема в пунктах 2 и 3.
так а в чем проблема???