Как лучше организовать перевод данных из формата в формат?

Тема в разделе "WASM.HEAP", создана пользователем device, 14 мар 2008.

  1. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF
    Есть написанная мною библиотека с некоторым количеством API.

    Поставили задачу:
    К каждой ф-ции придумать опкод, чтоб можно было использовать на разных платформах.

    Ну, к примеру, выглядит это так:
    Есть класс CLASS из пакета PACKAGE.

    У него есть метод VOID, который возвращает результат RESULT типа TYPE

    В разных ОС, есть разные способы реализации метода VOID.
    Надо чтоб был один.

    Говорят, что каждой инструкции (class, void, return, new и т. д.) надо придумать опкод,
    тогда достаточно создать интерпретатор опкодов для конкретной ОС и выполнять эти инструкции без проблем.

    То есть:
    Пусть class=0x1, new=0x2, return=0x3....
    Декларация типов данных может быть: int = 0x10, String = 0x20 и так далее.
    Получим на выходе файл, который будет читаться интерпретатором и выполняться.
    _________________
    Есть ли примеры? Какие существуют алгоритмы? Кто сталкивался с подобным?
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Любой байткод: java, parrot, msil, etc. Может проще взять готовое? Питон, например, имеет связь со многими ЯП.
     
  3. Stiver

    Stiver Партизан дзена

    Публикаций:
    0
    Регистрация:
    18 дек 2004
    Сообщения:
    812
    Адрес:
    Germany
    device

    Ты только что примерно описал устройство Java :) Да и любого другого языка с промежуточным представлением.
     
  4. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF
    Stiver
    Ну там не только по ОСям совместимость.
    Тут щас предложили сервер сделать (кстати, прикольная задумка)

    В общем, слушаем порт, например 1234 на сервере 213.135.18.250

    Клиент отсылает серверу опкоды (по сути сцылко на ф-цию), сервер запускает интерпретатор и присылает клиенту ответ.
    Этакий хостинг для библиотек и API ф-ций.
    Можно на локалхосте запускать. Опкоды-то одинаковые. Предлагают делать именно так.

    Для клиентских программ можно сделать компонент (класс) с функциями общения с серваком.
    Библиотеки на сервере идентифицировать по ID (присваивать после публикации).
    Вот чо предлагают. Начитаются блин фигни всякой и решают у себя внедрить ( хотят прогу продать дороже)
     
  5. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    device
    може тебе CORBA подойдёт?
    это распределённый фраймеворк.
    mico.org
    это не сложно.
    смысл в том, что пишеш один раз свой универсальный сервер для какой-то
    платформы и он обрабатывает вызовы с любых платформ
    и языков на основе IDL допустим(есть ещё вариант посложнее).
    Но если ты на самом сервере хочеш поменять платформу или язык
    то да, придётся его переписывать.
    Вообщем слазай по ссылке и посмотри примеры.
    Если тебе это не подойдёт - то напрягай яву:)
     
  6. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF
    CORBA - весчь суперская, спасибо - Обязательно буду копать.

    прикол в сети:
    Код (Text):
    1. #./a.out
    2. # Starting MAIN proces...
    3.       (debug): invoke createChildA, 7,7
    4.       (debug): invoke joinChild, 0
    5. ***WARN: A "SEVEN" ThreadGroup can not run Child process before run Child process in Child process of Child process
    во отладчик загнул:)
     
  7. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    device
    там в той ссылки движок для Ся

    а здесь для явы
    jacorb.org
     
  8. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF