Есть написанная мною библиотека с некоторым количеством API. Поставили задачу: К каждой ф-ции придумать опкод, чтоб можно было использовать на разных платформах. Ну, к примеру, выглядит это так: Есть класс CLASS из пакета PACKAGE. У него есть метод VOID, который возвращает результат RESULT типа TYPE В разных ОС, есть разные способы реализации метода VOID. Надо чтоб был один. Говорят, что каждой инструкции (class, void, return, new и т. д.) надо придумать опкод, тогда достаточно создать интерпретатор опкодов для конкретной ОС и выполнять эти инструкции без проблем. То есть: Пусть class=0x1, new=0x2, return=0x3.... Декларация типов данных может быть: int = 0x10, String = 0x20 и так далее. Получим на выходе файл, который будет читаться интерпретатором и выполняться. _________________ Есть ли примеры? Какие существуют алгоритмы? Кто сталкивался с подобным?
Любой байткод: java, parrot, msil, etc. Может проще взять готовое? Питон, например, имеет связь со многими ЯП.
device Ты только что примерно описал устройство Java Да и любого другого языка с промежуточным представлением.
Stiver Ну там не только по ОСям совместимость. Тут щас предложили сервер сделать (кстати, прикольная задумка) В общем, слушаем порт, например 1234 на сервере 213.135.18.250 Клиент отсылает серверу опкоды (по сути сцылко на ф-цию), сервер запускает интерпретатор и присылает клиенту ответ. Этакий хостинг для библиотек и API ф-ций. Можно на локалхосте запускать. Опкоды-то одинаковые. Предлагают делать именно так. Для клиентских программ можно сделать компонент (класс) с функциями общения с серваком. Библиотеки на сервере идентифицировать по ID (присваивать после публикации). Вот чо предлагают. Начитаются блин фигни всякой и решают у себя внедрить ( хотят прогу продать дороже)
device може тебе CORBA подойдёт? это распределённый фраймеворк. mico.org это не сложно. смысл в том, что пишеш один раз свой универсальный сервер для какой-то платформы и он обрабатывает вызовы с любых платформ и языков на основе IDL допустим(есть ещё вариант посложнее). Но если ты на самом сервере хочеш поменять платформу или язык то да, придётся его переписывать. Вообщем слазай по ссылке и посмотри примеры. Если тебе это не подойдёт - то напрягай яву
CORBA - весчь суперская, спасибо - Обязательно буду копать. прикол в сети: Код (Text): #./a.out # Starting MAIN proces... (debug): invoke createChildA, 7,7 (debug): invoke joinChild, 0 ***WARN: A "SEVEN" ThreadGroup can not run Child process before run Child process in Child process of Child process во отладчик загнул