Существует ли привязка данных Анализатор / генератор заголовочных файлов C (и / или jar-файлов Java) для генерации [возможно] привязки данных XML для использования / импорта (или создания оболочек) на «другие» языки ? (например, python , Haskell , Go! и others ) Этот синтаксический анализатор будет использоваться для сокращения:
- процедуры обмена в библиотеках
- шунтирование данных на / с диска
- межпроцессные сообщения
В простейшем случае: существует ли уже поддерживаемая «привязка данных XML» для glibc ? (Может быть, в GCC есть опция magic , которая генерирует привязки данных XML?)
Фоновый пример: на Tandem Guardian имеется компилятор DDL («Язык определения данных»), в основном язык DDL содержит множество определений записей , которые можно «скомпилировать» с помощью DDL-компилятор для генерации C / struct , TAL / struct, Pascal / Record , Fortran / named-commons или COBOL / Record объявлений, которые могут затем быть "включены" при компиляции программы C (или TAL / Pascal / Fortran / COBOL). Язык DDL упрощает создание и совместное использование библиотек на разных языках. Вывод DDL может также использоваться как для шунтирования данных на / с диска, так и в межпроцессных сообщениях , что позволяет легко обмениваться данными между программами, написанными на разных языках.
Некоторые близкие современные примеры:
C ++ разрешает прямой импорт файлов заголовков C, например:
extern "C" {
#include "header.h"
}
Python специально разрешает синтаксический анализ библиотек GTK C и генерацию модулей оболочки Python с PyGTK-Codegen через файлы "Defs":
(define-object name
(in-module "module")
(docstring "doc")
(parent "parent")
(c-name "name")
(gtype-id "id")
(fields
("type" "name")
...
)
(implements "interface")
)
В некотором смысле RPC s половина решают проблему IPC между различными архитектурами ЦП. Но не проблема объявления локальных привязок данных к другим языкам.
В первом случае был бы полезен синтаксический анализ с открытым исходным кодом только для C, генерирующего XML (и один из java - реальный бонус). Если этот парсер уже в крупном дистрибутиве Linux, то даже лучше.
Я обнаружил сводку Parser по адресу: Инструменты привязки данных XML