Пан (язык программирования)
Парадигма | Декларативный язык |
---|---|
Стабильная версия | 10.3 5 октября 2016 г.
|
Дисциплина набора текста | Сильный , динамичный |
ТЫ | Кросс-платформенный |
Лицензия | Лицензия Апач 2.0 |
Расширения имен файлов | .pan, .tpl (устарело) |
Веб-сайт | quattor.org |
Основные реализации | |
панк |
Язык pan конфигурации позволяет определять информацию о конфигурации машины и связанную с ней информацию. схема с простым, доступным для человека синтаксисом. Компилятор языка Pan преобразует конфигурацию информацию, содержащуюся в наборе шаблонов панорамирования, в удобный для машины формат XML или JSON.
Язык панорамирования используется в наборе инструментов Quattor для определения желаемой конфигурации для одного или больше машин. Язык в первую очередь является декларативным , в котором элементы расположены в иерархическом порядке. для дерева установлены определенные значения. Синтаксис панорамирования удобен для человека и довольно прост, но позволяет системе администраторы могут одновременно устанавливать значения конфигурации, определять общую схему конфигурации и проверьте окончательную конфигурацию на соответствие схеме.
Выполнение
[ редактировать ]Компилятор panc служит де-факто эталонной реализацией языка и реализован на Java , хотя в настоящее время невозможно выполнить компилятор с помощью OpenJDK .
Конфигурация определяется набором файлов, называемых шаблонами, написанных на языке pan. Эти шаблоны одновременно определяют параметры конфигурации, схему конфигурации и функции проверки. Каждый шаблон имеет имя и содержится в файле с тем же именем. Синтаксис файла шаблона прост:
[ object | declaration | unique | structure ] template template-name;
[ statement … ]
Эти файлы могут содержать комментарии, которые начинаются со знака решетки («#») и заканчиваются следующей новой строкой. или конец файла.
Типы
[ редактировать ]В языке pan есть пять примитивных атомарных типов:
- логическое значение
- длинный
- двойной
- нить
- связь
Существует два примитивных типа коллекций:
- список (упорядоченный список/массив элементов)
- nlist (Именованный список связывает строковый ключ со значением, аналогично хешам, словарям или ассоциативным массивам)
Пользователи могут создавать новые типы, созданные на основе примитивных типов с дополнительными функциями проверки, чтобы обеспечить соблюдение определенных ограничений для определенных полей.
Типы шаблонов
[ редактировать ]Существует пять различных типов шаблонов, которые идентифицируются модификатором шаблона:
Обычные шаблоны
[ редактировать ]Обычный шаблон не использует модификатор шаблона в объявлении. Эти шаблоны могут содержать любые оператор pan, но операторы должны работать только с абсолютными путями.
Шаблоны объектов
[ редактировать ]Шаблоны объектов можно рассматривать как корень каждого сгенерированного профиля конфигурации XML. Компилятор pan сгенерирует профиль XML для каждого шаблона обрабатываемого объекта. Во всем остальном они такие же, как и обычные шаблоны.
Шаблоны деклараций
[ редактировать ]Эти шаблоны могут содержать только те операторы панорамирования, которые не изменяют профиль машины. Шаблон объявления будет выполняться только один раз для каждого шаблона обрабатываемого объекта, независимо от того, сколько раз он будет включен.
Уникальные шаблоны
[ редактировать ]Шаблон, определенный с помощью модификатора unique, ведет себя как обычный шаблон, за исключением того, что он будет включен только один раз для каждого шаблона обрабатываемого объекта.
Шаблоны структур
[ редактировать ]Шаблоны структур являются удобной альтернативой созданию списков и используются через функцию создания. Шаблон, объявленный с модификатором структуры, может содержать только операторы включения и операторы присваивания, которые работают с относительными путями. Любые операторы включения могут ссылаться только на другие шаблоны структур.