logo
ОАП_Лекции

Лингвистическое обеспечение автоматизированного проектирования

Лингвистическое обеспечение включает в себя совокупность естественных языков проектировщиков с их проблемной ориентацией, алгоритмических языков программирования и машинно-зависимых языков кодирования управления работой (систему команд) технических средств САПР. Выполняя один из основных принципов создания инструментов САПР – многоязычность, определяющий доступность этих инструментов проектировщикам всех разрядов, специалистам только в своей предметной области, - разработчик САПР строит входной язык инструментов САПР как проблемно-ориентированный язык (ПОЯ). Этот проблемно-ориентированный язык основан на естественном языке проектировщиков. С другой стороны, все процессы в ЭВМ протекают как взаимодействие кодов, построенных из множеств “нулей” и “единиц” , соответствующих состоянию ЭВМ, которые находятся в одном из двух физических состояний (0 или 1). Дело, таким образом, состоит в том, чтобы по командам, сформулированным на естественном языке проектировщика, эти “0” и “1” “двигались” так, чтобы в результате их движения достигалось решение поставленной проектировщиком задачи.

В табл.1 приведена языковая иерархия, которая позволяет последовательно переходить от естественных языков проектировщиков (0-ой уровень) до машинных языков, на которых функционируют устройства ЭВМ (3-й и 4-й уровни). Такой подход возможен только при наличии трансляторов (от лат. Translator –переносчик) – программ, реализованных на ЭВМ и предназначенных для перевода описаний с одного формального языка на другой. Первый из этих языков называется входным, второй – выходным. Характерными функциями трансляторов является лексический разбор текста на входном языке , синтаксический анализ предложений и преобразование их в форму, удобную для хранения и дальнейшего использования в вычислительном процессе. В частности, синтаксически управляемый транслятор (СУТ) позволяет на основе формального описания синтаксиса входного языка осуществлять анализ предложений этого языка, а так же других входных языков, принадлежащих одному классу по грамматике.

В соответствии с таблицей 1 требуется по крайней мере четыре транслятора для всей иерархии языков.

Уровни языков

Разряды проектировщиков

Содержание уровней языков.

Разработчик

Конструктор

Технолог

Испытатель

0

Естетсв. Яз. разработчика

Естетсв. Яз. конструктора

Естетсв. Яз. технолога

Естетсв. Яз. испытателя

Естественный язык разработчика(научно-технические отчеты, публикации, проектные документы)

1

Естетсв. Яз. разработчика

Естетсв. Яз. конструктора

Естетсв. Яз. технолога

Естетсв. Яз. испытателя

Проблемно-ориентированные языки(входные и выходные языки инструментов САПР)

2

ПЛ/1, С,С++,Pascal, BASIC, СИМ-СКРИПТ

Fortran, C, ПЛ/1,DICAP,

VERB,СЛЭНГ

ПЛ/1,С,

ЛИСП,

СИМУЛА

ПЛ/1, СИ, PROCAL,

Pascal

Алгоритмические языки программирования(языки исходных модулей)

3

АВТОКАДЫ,

ЭПСИЛОН

Assembler-s, АЛМО и др.

Машино -ориентированные языки(программных и объектных модулей)

4

Итерпритаторы ЕС ЭВМ, СМ ЭВМ, ПЭВМ

Машинные языки(языки объектных и абсолютных модулей)

Естественные языки проектировщиков отличаются от общеразговорных, литературных и гуманитарных языков большей лаконичностью, однозначностью, четкостью построения предложений. Сам процесс проектирования “формирует” такой язык, являющийся некоторым подмножеством языка деловой прозы. Последний служит средством общения людей между собой, людей и машин во всей цепочке от идей до производства готового изделия.

Особенности языка проектирования в целом является наличие формализованных диалектов естественных языков разработчика, конструктора, технолога, испытателя, с ограниченным (как правило, не более нескольких сотен) набором базовых понятий – достаточно определенных структур построения предложений, с наличием хорошо формализованных выражений действий проектировщиков и “действий” проектируемых систем и устройств. Например, при выборе чувствительных элементов в контуре регулирования САУ ТГ в текст соответствующего отчета включается предложение: ”Для контроля и регулирования температуры поверхности рабочих лопаток турбины необходимо выбрать одно из следующих устройств: манометрические термометры, терморегулирующие устройства, биметаллические термометры, термопары, оптические пирометры”. На этом 0-ом уровне допускаются эвристические выражения, неполнота и избыточность информации, применение нестандартных символов. Стандартизация и унификация описаний на этом уровне является, по существу, начальным этапом формализации языка проектировщиков.

Проблемно-ориентированный язык программирования

Язык программирования, у которого само построение языка и/или структура данных отражают особенности разрабатываемых задач.

Практически все широкоизвестные универсальные языки программирования разрабатывались как специализированные, проблемно-ориентированные.

Например, язык Фортран - разрабатывался как язык для научных расчетов, Паскаль - для обучения, Си - для разработки системных программ, Кобол - для решения экономических задач, ЛИСП - для решения задач искусственного интеллекта, Фокс - для задач, связанных с СУБД, и т.д.

На каждом из них что-то делается лучше, проще, понятнее, но здесь ситуация очень похожа на ситуации с естественными языками: человек использует тот язык, который знает, и чем большим количеством языков он владеет, тем лучше.

Проблемно-ориентированные языки (ПОЯ) включают в себя описание объекта проектирования, описание задания на проектные процедуры и выходных результатов. В этом смысле ПОЯ, так как остальные уровни языков рассматриваются в базовых вузовских курсах по основам программирования и должны быть знакомы читателю. Требование к ПОЯ включают в себя следующие:

  1. возможность детального описания объектов, к которым применяется подсистема, инструмент САПР;

  2. максимальное приближение к естественному языку проектирования данной категории;

  3. максимальная лаконичность записи;

  4. однозначность интерпретации элементов записи;

По сравнению с 0-ым уровнем в этом случае уточняются эвристические выражения, устраняется неоднозначность описаний, вводятся правила и форма записи, с которой предусматривается наиболее просто и эффективно трансляция на следующий уровень.

Несмотря на отмеченные черты естественных языков проектировщиков от них до ПОЯ довольно длинный путь формализации. На этом пути необходимо выделить дескрипторный словарь, под которым понимается набор ключевых слов – лексических единиц языка с семантическим наполнением. При этом каждая единица должна представлять определенное понятие, действие.

Далее необходимо сформировать формальную “грамматику” ПОЯ – набор правил и директивных конструкций для формирования выражений. Следуя Н. Хомскому (известному специалисту по искусственным языкам) и другим специалистам в области машинной лингвистики, можно определить такую “грамматику” как конечное множество правил, устанавливающих, какие цепочки слов образуют “правильные” предложения. В ПОЯ такие предложения всегда имеют ясную цель – произвести требуемое изменение во внутреннем состоянии ЭВМ или заставить ее “прочитать”, “написать”, “начертить” содержание части информации, находящейся в устройствах ЭВМ.

Грамматики классифицируются по сложности построения правил для построения допустимых для ЭВМ предложений на следующие виды: 1) грамматики с конечным числом состояний, соответствующие конечным автоматам и отражающие внутреннюю структуру ЭВМ, их систему команд, адресов и т.д.; 2) контекстно-свободные грамматики, соответствующим автоматам с бесконечной “магазинной” памятью и позволяющие строить предложения, не зависящие от смысла и содержания предыдущих и последующих предложений; 3) контекстно-связанные грамматики, которые приближаются к грамматикам естественных языков, но становятся сложными при их машинной ориентации.

Применение контекстно-свободной грамматики применяется при построении ряда проблемно ориентированных языков в инструментах. “математические модели”, ”моделирование”, “анализ” и др.

Другой важной процедурой при создании ПОЯ является разработка транслятора с этого языка на язык программирования. Обычно это делается объединенными усилиями разработчиков САПР разных специальностей: системных программистов (в том числе специалистов по трансляторам), алгоритмистов (специалистов по алгоритмизации объектов проектирования и проектных процедур). В соответствии с отмеченными обстоятельствами при создании ПОЯ приходится выбирать между сохранении естественных форм языка деловой прозы и сжатием, однозначностью ПОЯ, его удобством для ведения диалога проектировщиками с помощью инструментов САПР.

Синтаксис, ПОЯ задается в виде хорошо известных и получивших общее признание правил Бэкуса в их классической форме. Нормальные формы впервые введены американским математиком Бэкусом для описания синтаксиса АЛГОЛ-60 и включает известные правила, обычно излагаемые в курсах по основам программирования. Например, определение идентификатора в форме Бэкуса записывается следующим образом:

<идентификатор>::=<буква>|< идентификатор ><Буква>

< идентификатор ><цифра>, где используются следующие знаки:

<<::=>>равно по определению,

<<|>>разделитель, имеющий смысл <<или>>.

Алгоритмические языки программирования (фортран, СИ, ПЛ/1) предназначены для решения широкого класса задач. Обладая большими удобствами для автоматизации программирования, эти языки, с другой стороны, значительно увеличивают расход средств на трансляцию. Так, трансляция с ФОРТРАНа в 2,5 раза дольше, чем с Ассемблера. Тем не менее, алгоритмические языки – это основные языки, на которых пишутся программы в программном обеспечении (ПО) САПР. В основу всех этих языков положен формульно-словесный способ записи алгоритмов со своим алфавитом, синтаксисом и тематикой.

Машинные языки полностью определяются системой команд, адресами ячеек, особенностями конфигурации ЭВМ. Машинные языки -это адресные языки, на них производится распределение памяти, условная адресация и другие внутренние операции в ЭВМ. Часто возникает необходимость в языках, которые, с одной стороны, учитывают особенности конкретной ЭВМ, а с другой – упрощают процесс составления программ за счет символических обозначений команд. Такие языки получили название автокодов и ассемблеров (от англ. Assembler – собирать, монтировать). Ассемблеры позволяют более эффективно использовать аппаратные возможности ЭВМ и широко применяются при создании системной части программного обеспечения – трансляторов, загрузчиков и т.д.(рис 1.) На ассемблере вместо цифровых обозначений машинных кодов операций и операндов используется буквенное, автоматизируется распределение памяти, используются макроопределения, микрокоманды – заранее подготовленные на том же ассемблере программные средства, настраиваемые в процессе разработки исходной программы.

Например, команда на Ассемблере пересылки 80-байтного поля с именем “Строка 1” на поле “Строка 2” – move chdracter имеет вид: MVC: : <СТР1,СТР2>. По сравнению с записью той же страницы в шестнадцатеричном машинном коде ДКОИ-8, т.е. в двоичном коде обмена информацией, запись MVC гораздо экономичнее.

Машинные – внутренние – языки ЦВМ определяются таблицами кодировки, например ДКОИ-8. В таких таблицах элементы кода строятся в соответствии с правилом: номер столбца и строки, на пересечении которых находится интересующий нас символ, определяют соответственно старшую и младшую цифры кода символа. Например, знак + имеет шестнадцатеричный код 4Е, что соответствует двоичному представлению 01001110. Такие таблицы обычно придаются к техническому описанию ЭВМ и используются системными программистами при разработке соответствующих компонентов инструментов САПР.

Поя “разработчика” содержит диалекты в соответствии со спецификой предметной области и конфигурацией предприятия.

Однако можно выделить такие инвариантные ПОЯ, как ПОЯ “Построения математических моделей”, ПОЯ “Моделирование”, ПОЯ ”Анализ”, ПОЯ “синтез”. Наряду с ними существуют специальные ПОЯ, такие как ПОЯ “Схематическое проектирование ЭВА”, ПОЯ “Конструирование планера самолета”, ПОЯ “Расчет гиростабилизатора”.

ПОЯ “Конструктор-технолог” содержит инвариантные к предметной области диалекты, такие как ПОЯ “Описание и редактирование машиностроительных чертежей“, ПОЯ “Геометрическое моделирование пространственных объектов”, ПОЯ “Технологии РЭА ЭВА”и специальные языки такие как ПОЯ “Расчет конструкции гиростабилизатора”,

“Компоновка силовой конструкции самолета”, ПОЯ “Технологический маршрут изготовления корпуса прибора”.

ПОЯ “Испытатель” содержит диалекты: инвариантные ПОЯ “Формирование возмущающего воздействия”, ПОЯ “Обработка”, ПОЯ “Управление испытаниями” и специальные ПОЯ “Управление динамическим модулирующим стендом”, ПОЯ “Обработка данных систем телеконтроля”.

Построение уровня динамики таких объектов проектирования как электромеханические и радиоэлектронные устройства, системы автоматизированного управления представляют собой обязательный этап в процессе их проектирования. От степени корректности полученной или выбранной ММ существенно зависит успех проектирования в целом, особенно учитывая большую сложность современных объектов проектирования. Построение ММ в виде уровней динамики объектов проектирования, как известно, требует проведения значительного объема аналитических выкладок, в частности аналитического дифференцирования громоздких выражений. До недавнего времени эта работа практически всегда проводилась вручную.

Программирование на ЭВМ алгоритмов аналитических преобразований даже в настоящее время является малораспространенным, в отличии от программирований численных расчетов. Существующие универсальные языки аналитических преобразований, например, MAXIMA не всегда могут удовлетворить специфические запросы пользователей, особенно в области промышленного проектирования приборов. В то же время весьма велика потребность именно в автоматизации аналитических преобразований в процессе построения ММ сложных современных объектов проектирования, так как эта работа чрезвычайно трудоемка связана с громоздкими вычислениями и потому чревата возможными ошибками.

Следует заметить также, что наличие только программных средств аналитических преобразований на ЭВМ не решают указанную проблему ввиду сложностей, связанных с обращением пользователя к этим программам. Лишь проблемно-ориентированный язык, рассчитанный на пользователя, не обладающего глубокими познании в программировании, в сочетании с упомянутыми программными средствами дает максимальный эффект применение САПР.

Проблемно ориентированный язык разработчика

Проблемно-ориентированный язык конструктора. Язык ОГРА /описания графики/ принадлежит к ПОЯ конструктора и, соответственно, ориентирован на графическую форму применяемой пользователем информации. Применение описанных выше кодировщиков графической информации оказывается удобным для ввода в ЭВМ сравнительно несложных графических образов. Большинство же реально применяемых в проектировании достаточно громоздких и сложных чертежей требует применение соответствующих языковых средств.

Для описания графических образов при помощи ПОЯ применяют два основных способа: конкретный и структурно символический /или метод типовых графических элементов/.

Первый способ основан на задании координат всех точек кодированного графического образа. При этом последовательность точек, выбираемых достаточно близки, представляет линии произвольной конфигурации. Этот способ прост в реализации, но трудоемок. Второй способ предназначен для графического материала, состоящего, в основном, из унифицированных элементов: типовые фрагменты, такие как рамки, штампы, и наиболее часто встречаемые составные части графического изображения – контуры детали печатной платы, корпуса микросхемы, экранирующего кожуха в радиоэлектронике, резьбовых соединений, зубчатых колес в машиностроении и т.п. В меньшей степени распространены аналитический и резекторный способы описания графической информации.

ПОЯ ОГРА относится к высокоразвитым лингвистическим компонентам САПР машиностроения, приборостроения и т.п. Его основной задачей является базовый ОГРА-1, на основе которого разработан ряд диалектов /версий/ этого ПОЯ. Служебные операторы базового языка описывают вспомогательные действия, непосредственно не связанные с выполнением графической работы: указывают типы устройств отображения графической информации, базовую систему координат и т.п.

Графические ПОЯ ОГРА представляют собой указания о местоположении в общем графическом образе рассматриваемого фрагмента /в этом случае оператор ПОЯ содержит символ * /. В общем случае оператор ПОЯ ОГРА содержит метку /этикетку/ оператора, код /символ/ оператора и собственно информационную его часть. Так, вычерчиванию окружности, которой мы условно на чертеже присваиваем номер 1, с центром в начале координат и диаметром 50 мм, соответствует оператор с меткой ОК1 и кодом ОКР вид

ОК1 ОКР*СТЛ: Д=50

КОНЦ:0

Пир этом КОНЦ:0 указывает не концентричность вычерчиваемой окружности любой другой с центром в начале координат.