Двунаправленное преобразование
-
Основы двунаправленных преобразований
- Двунаправленные преобразования (bx) позволяют одному и тому же коду выполнять разные функции в зависимости от направления.
- Пример: преобразование входных данных в выходные и наоборот.
-
Модели двунаправленных преобразований
- Двунаправленные модели вводят модель в программу, которая может быть использована для различных целей.
- Некоторые языки являются биективными, что ограничивает их возможности.
- Lens — более общий язык, который преобразует конкретные данные в абстрактные и обратно.
-
Использование двунаправленных преобразований
- Поддерживают согласованность нескольких источников информации.
- Обеспечивают «абстрактное представление» данных для манипуляций и записи обратно.
-
Определение двунаправленных преобразований
- Объектив — это пара функций, связанных с источником и прекрасным видом.
- Линзы должны соответствовать трем законам для хорошего поведения.
- Призмы отличаются от линз тем, что не всегда могут дать изображение и не требуют полного вида для создания источника.
-
Примеры реализаций
- Boomerang — язык для двунаправленной обработки текстовых данных.
- Augeas — библиотека для управления конфигурацией на основе Boomerang.
- biXid — язык для двунаправленной обработки XML-данных.
- XSugar — для перевода из XML в другие форматы.
-
Ссылки
- Статья содержит ссылки на дополнительные материалы и ресурсы по двунаправленности и другим связанным темам.
Полный текст статьи: