Материал: Автоматизация проектирования систем и средств управления. Учебное пособие. Кисурин А.А., Беспаленко В.Д

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

3

Автокоды,

Ассемблеры, АЛМО и др.

Машинно-

 

ЭПЛИЛОН

 

ориентирован-

 

 

 

ные языки (про-

 

 

 

граммных и

 

 

 

объектных мо-

 

 

 

дулей)

 

 

 

 

4

 

Интерпретаторы ЭВМ

Машинные язы-

 

 

 

ки (языки объ-

 

 

 

ектных и абсо-

 

 

 

лютных моду-

 

 

 

лей)

 

 

 

 

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

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

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

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

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

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

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

33

с которой предусматривается наиболее просто и эффективно трансляция на следующий уровень.

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

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

Грамматики классифицируются по сложности построения правил для построения допустимых для ЭВМ предложений на следующие виды:

1)грамматики с конечным числом состояний, соответствующие конечным автоматам и отражающие внутреннюю структуру ЭВМ, их систему команд, адресов и т.д.;

2)контекстно-свободные грамматики, соответствующие автоматам с бесконечной «магазинной» памятью и позволяющие строить предложения, не зависящие от смысла и содержания предыдущих и последующих предложений;

3)контекстно-связные грамматики, которые приближаются к грамматикам естественных языков, но становятся сложными при их машинной ориентации.

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

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

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

где «::=»» равно по определению,

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

34

Так, приведенная ранее фраза естественного языка в форме Бекуса будет иметь вид

< выбрать одно из устройств >::=< стеклянный термометр > | < манометрический термометр > | < биметаллический термометр > | < термопары > | < оптический пирометр >.

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

Системные программы прикладного программного обеспечения

Можно выделить следующие основные черты инструментальных систем программирования:

- наличие средств генерации программ по описаниям, не содержащим явного алгоритма решения задачи;

-ориентацию на решение задач, описываемых на проблемноориентированном языке;

-использование банка данных, содержащего большое количество программ

иданных;

-наличие средств расширения входных языков;

-эффективное использование базовых ОС для написания и отладки программных модулей.

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

В структуре пакета можно выделить тело пакета и управляющую программу, которую и называют монитором. Тело пакета содержит все программы и сведения о предметной области. Эти сведения определяют семантику входного языка и образуют модель предметной области. Монитор руководит работой всего пакета при решении задач. Он переводит описание задачи с входного языка на внутренний язык, определяет последовательность выполненных программ для каждой задачи, т.е. планирует решение задачи и организует выполнение программ, планируя правильное взаимодействие модулей.

Технология построения ППП в САПР - это деятельность, в которой должны

принимать участие специалисты различных областей. Специалисты в предметной области реализуют идеологию проектных процедур, которая является результатом модульного анализа объекта автоматизации.

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

35

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

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

Построение ППП может быть автоматизировано с помощью системной части ППО, основанной на упомянутой инструментальной системе программирования СПИН.

Инструментальная система программирования СПИН включает в себя систему построения трансляторов (СПТ), которая делится на две составные части: «Конструктор» и «Синтаксический управляемый транслятор» (СУТ). Основной задачей «Конструктора» в ППО является выработка по заданной грамматике ПОЯ совокупности информационных таблиц для настройки СУТ на этот язык. СУТ предназначен для синтаксического анализа входных предложений, составленных на ПОЯ, поступающих из «Конструктора».

Функционирование ППО происходит следующим образом. Проектировщик вводит описание задачи, фактически являющейся программой действия на ПОЯ. Управляющая программа распознает, к какому ПОЯ из имеющихся в системе должна быть отнесена данная задача, соответствующим образом «настраивает» СУТ и передает ему управление. СУТ анализирует синтаксис программы и формирует последовательность действий на удобном промежуточном языке. Эта последовательность представляет собой список, элементы которого включают в себя номера вызываемых модулей и адреса параметров, которые в этих модулях используются. Если СУТ не обнаружил ошибок в описании задачи, управляющая программа передает управление программе ИНИЦИАТОР, которая в указанной во входных данных последовательности вызывает соответствующие ППП проектировщика (разработчика, конструктора, технолога, испытателя) и обрабатывающие

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

Информационное обеспечение САПР

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

36

тующих деталях, узлах, материалах, технологической оснастке и оборудовании, типовых проектных решениях, текущем состоянии выполняемых проектов, сведения из ГОСТов и нормалей, описания типовых проектных процедур и др.

Система управления информационным фондом организует хранение и доступ к информации. Значительная часть информационного фонда предназначена для многоразового использования различными лицами из коллектива проектировщиков и различными прикладными программами в маршрутах проектирования.

Программное обеспечение САПР

Разработка программного обеспечения (ПО) является наиболее длительной и дорогостоящей частью проектирования САПР. От свойств ПО в значительной мере зависят возможности и показатели эффективности САПР.

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

В настоящее время весь комплекс ПО делится на системные и пользовательские программы. Системное программное обеспечение выполняет функции «организатора» всех частей ПК, а также подключенных к нему внешних устройств. Программы для пользователей служат для выполнения каких - либо конкретных задач во всех сферах человеческой деятельности.

Классификация и структура ПО: системное, общего назначения, специальное.

По функциональному признаку различают следующие виды ПО:

Системное;

Общее;

Специальное.

Под системным (базовым) понимается ПО, включающее в себя операционные системы, сетевое ПО, сервисные программы, а также средства разработки программ (трансляторы, редакторы связей, отладчики и пр.).

Основные функции операционных систем (ОС) заключаются в управлении ресурсами (физическими и логическими) и процессами вычислительных систем. Физическими ресурсами являются: оперативная память, процессор, монитор, печатающее устройство, магнитные и оптические диски. К логическим ресурсам можно отнести программы, файлы, события и т.д. под процессом понимается некоторая последовательность действий, предписанная соответствующей программой и используемыми ею данными.

Сетевое ПО предназначено для управления общими ресурсами в распределенных вычислительных системах: сетевыми накопителями на магнитных дисках, принтерами, сканерами, передаваемыми сообщениями и т.д. к сетевому ПО отно-

37