ПОИСК Статьи Чертежи Таблицы Анализ структуры, синтаксиса и семантики и формализация входного языка комплексной САПР МЭА из "Теоретические основы построения базовых адаптируемых компонентов САПР МЭА " Формализация языка есть ни что иное, как задание соответствующей грамматики G и отображения ф и, по возможности, наиболее полное описание множества sem и отображения tl). [c.86] Ведущиеся в настоящее время работы по созданию лингвистического обеспечения САПР связывают описание синтаксиса входных языков САПР с использованием контекстно-свободных грамматик (КС-грамматик). При этом применяют металингвистические формулы Бэкуса — так называемую форму Бэкуса — Наура (БНФ) [57, 58]. [c.86] Анализ возможных конструкций языков САПР показывает [23, 57], что они полностью описываются хорошо изученными теоретически (1)-грамматиками. [c.86] САПР без значительного объема работ по перепрограммированию и отладке программного обеспечения. [c.87] В [59] отмечается, что описание синтаксиса языков программирования было достаточно четко формализовано уже на заре теоретического программирования (Хомский, Бекус), что позволило развернуть широкие исследования различных классов языков, грамматик, анализаторов и связей между ними [60, 61, 63]. [c.87] Грамматику G, по крайней мере чисто теоретически, можно выбирать более сложной или более простой. В зависимости от этого упрощается или усложняется отображение ф. Принципиально можно с помощью грамматики G породить множество sint, достаточно близкое к sem. При этом, однако, она становится необозримо сложной. Существует несколько способов учета семантик, и которые дают возможность включить в описание языка множество семантических ограничений, связав его определенным образом с грамматикой G. [c.87] В настоящее время в теоретическом программировании проводятся интенсивные исследования методов задания семантики [63, 4] языков программирования. Разнообразие подходов и целей решения данной задачи говорит об определенных трудностях исполь-аования теории в прикладных задачах, таких как входные языки САПР. [c.87] Выделим ряд основных аспектов при создании теоретических моделей языков САПР. [c.87] Во-первых, необходимо достаточно простое и доступное для прикладных исследований формализованное представление синтаксиса входных языков САПР. Это достигается применением КС-грамматик с использованием БНФ. [c.87] Усложнение описания синтаксиса с целью сближения множеств sint и sem привело бы к неоправданному усложнению восприятия (наглядности) описания языка для специалистов-прикладников и, соответственно, к увеличению сроков и затрат на разработку лингвистического обеспечения комплексных САПР МЭА. [c.87] Вторым аспектом является создание наиболее наглядных и полных способов описания семантики. Это осуществляется за счет разработки хорошо продуманного языка описания контекстных ограничений, связанных с внешним языком L (описание синтаксиса). В этом случае схема (2.1) реализуется с помощью двух грамматик G2), порождающих соответственно внешний входной язык L Gi) и внутренний язык L G , реализующий семантические правила. [c.87] Все это говорит о том, что описание внутреннего представления предметной области должно стать неотъемлемой частью средств описания входного языка САПР. По смыслу задачи оно должно быть отражено в грамматике 6 внутреннего языка ( г)- Правила описания внутреннего представления модели предметной области целесообразно представить как некоторые семантические правила языка и соответствующие контекстные ограничения. [c.88] Методы задания семантики языков программирования с достаточно подробным разбором каждого из подходов достаточно полна отражены в [26, 59]. [c.88] С точки зрения практических приложений наибольший интерес представляют так называемые атрибутные грамматики. Они предложены Кнутом [26] в 1963 г. как дгетод описания языков программирования. [c.88] В атрибутной грамматике синтаксис языка задается КС-грам-матикой (выше приводились соображения по целесообразности исключительного использования КС-грамматик для описания синтаксиса языков САПР с точки зрения его разработки прикладными специалистами САПР). Семантика языковых конструкций задается значениями или множеством значений для определенных символов языка из алфавита V, так называемых атрибутов. [c.88] Чтобы КС-грамматика языка программирования (описания в САПР) была однозначной, в ней должны отсутствовать упоминания о видах величин (значений) грамматических терминов, встречающихся в текстах, и вообще всякие сведения, извлекаемые из определяющих вхождений. По этой причине порождаемое множества возможных предложений языка наряду с правильными фразами (цепочками) содержит и неверные. [c.88] Внутренний язык L G и будет представлять собой совокупность правил и контекстных ограничений, реализуемых в виде соот-ветствуюш их контекстных вставок в язык L G ), описываюш ий синтаксис. Источником семантической информации в этом смысле может служить синтаксическое дерево вывода. Целесообразность применения подобного подхода видна из работы советских авторов по созданию системы Супер-81 [65]. [c.89] В [25] входной язык комплексной САПР предложено задавать помощью атрибутных грамматик, причем синтаксис задается с помощью LL (1) КС-грамматики. [c.89] Соответствующее семантическое правило, определяющее значение атрибута а, обозначим через к). [c.90] Рассмотрим особенности входных языков комплексной САПР применительно к алгоритмам (формулам) вычисления атрибутов. Известно [66], что алгоритмы вычисления атрибутов делятся на два класса детерминированные и недетерминированные. К классу детерминированных алгоритмов относятся такие, в которых порядок вычисления атрибутов определяется до начала вычисления атрибутов. В недетерминированных алгоритмах этот порядок определяется в процессе вычисления атрибутов. [c.90] Вернуться к основной статье