Эта статья , возможно, содержит оригинальное исследование . ( Июль 2011 г. ) |
Грамматики форм в вычислениях представляют собой особый класс систем производства , которые генерируют геометрические формы. Обычно формы являются 2- или 3-мерными, поэтому грамматики форм являются способом изучения 2- и 3-мерных языков. Грамматики форм были впервые представлены в основополагающей статье Джорджа Стини и Джеймса Гипса в 1971 году. [1] Математические и алгоритмические основы грамматик форм (в частности, для линейных элементов в двух измерениях) были разработаны в "Изображениях и формальных аспектах форм и грамматик форм" (Birkhäuser Basel, 1975) Джорджа Стини. Приложения грамматик форм были впервые рассмотрены в "Грамматиках форм и их использовании" (Birkhäuser Basel, 1975) Джеймса Гипса. Эти публикации также содержат две независимые, хотя и эквивалентные, конструкции, показывающие, что грамматики форм могут имитировать машины Тьюринга .
Грамматика формы состоит из правил формы и механизма генерации , который выбирает и обрабатывает правила. Правило формы определяет, как существующая (часть) формы может быть преобразована. Правило формы состоит из двух частей, разделенных стрелкой, указывающей слева направо. Часть слева от стрелки называется левой стороной (LHS). Она изображает состояние в терминах формы и маркера. Часть справа от стрелки называется правой стороной (RHS). Она изображает, как должна быть преобразована форма LHS и где расположен маркер. Маркер помогает найти и сориентировать новую форму.
Грамматика формы как минимум состоит из трех правил формы: начального правила , как минимум одного правила преобразования и правила завершения . Начальное правило необходимо для начала процесса генерации формы. Правило завершения необходимо для остановки процесса генерации формы. Самый простой способ остановить процесс — применить правило формы, которое удаляет маркер. Грамматики формы отличаются от грамматик Хомского в важном отношении: правила производства могут применяться последовательно (как в грамматиках Хомского) или параллельно (не допускается в грамматиках Хомского ), аналогично тому, как «производства» выполняются в L-Systems .
Система грамматики формы дополнительно имеет рабочую область, где отображается созданная геометрия. Механизм генерации проверяет существующую геометрию, часто называемую Текущей рабочей формой (CWS), на наличие условий, которые соответствуют LHS правил формы. Правила формы с совпадающими LHS допускаются к использованию. Если применяется более одного правила, механизм генерации должен выбрать, какое правило применять. В альтернативном сценарии механизм сначала выбирает одно из правил грамматики, а затем пытается найти все совпадения LHS этого правила в CWS. Если совпадений несколько, механизм может (в зависимости от его конфигурации/реализации)
Грамматики форм наиболее полезны, когда они ограничены небольшой, четко определенной проблемой генерации, такой как планировка жилья и уточнение структуры. Поскольку правила форм обычно определяются для небольших форм, грамматика форм может быстро содержать много правил. Грамматика форм палладианских вилл, представленная Уильямом Митчеллом [2], например, содержит 69 правил, которые применяются на протяжении восьми этапов.
Параметрические грамматики формы являются расширением грамматик формы. [3] Новая форма в правой части правила формы определяется параметрами , чтобы она могла учитывать больше контекста уже существующих форм. Это обычно влияет на внутренние пропорции новой формы, чтобы можно было создать большее разнообразие форм. Таким образом, предпринимаются попытки заставить грамматики формы реагировать на структурные условия, например, ширину балок в конструкциях крыши, которая зависит от пролета.
Несмотря на свою популярность и применимость в академических кругах, грамматики форм не нашли широкого применения в общих приложениях автоматизированного проектирования .
Грамматики форм были первоначально представлены для живописи и скульптуры [1], но изучались в частности в архитектуре ( компьютерное архитектурное проектирование ), поскольку они обеспечивают формализм для создания новых проектов. Другими важными областями, в которых применялись грамматики форм, являются декоративно-прикладное искусство, промышленный дизайн и инженерия. [4]
Это список прототипов программного обеспечения, доступных в Интернете (некоторые из них, строго говоря, представляют собой довольно устоявшиеся системы грамматики [5] [6] ):