Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Основы построения САПР и АСТПП

..pdf
Скачиваний:
9
Добавлен:
12.11.2023
Размер:
6.91 Mб
Скачать

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

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

В любом случае пользователь ЭС не должен тратить свое вре­ мя на изучение универсальных и проблемно-ориентированных языков программирования вместе с техникой манипулирования файлами данных. Для экспертных систем характерно то, что зна­ ние формулируется на непроцедурном языке программирования.

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

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

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

91

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

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

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

ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ

1.Какое существует разделение САПР согласно техническим средствам?

2.Какие основные различия существуют между интегрированными САПР

исистемами сквозного автоматизированного проектирования?

3.Какие отличительные черты характеризуют гибкие системы автомати­

зированного проектирования?

4.В чем состоит основное различие между системами автоматизирован­

ного проектирования и системами автоматического проектирования?

Глава 4

СИСТЕМНОЕ, ИНФОРМАЦИОННОЕ И ЛИНГВИСТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ САПР

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

В главе рассматриваются общие принципы построения и на­ значения ОПО; изучаются его основные составляющие: систем­ ное, информационное и лингвистическое обеспечение САПР.

$ 4.1. ОБЩЕЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ И ЕГО РОЛЬ В САПР

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

Рис. 4.1. Структура общего программного обеспечения

контроля вычислительного процесса на ЭВМ в момент ее функ­ ционирования в рамках САПР.

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

93

стью вызова прикладных программ, подсистем и систем. Совре­ менные ЭВМ уже содержат значительную часть системного и информационного обеспечения, что облегчает создание проблем­ но-ориентированных САПР. Кроме указанных составляющих ОПО (рис. 4.1) существует комплекс программ технического обслуживания, который обеспечивает взаимодействие системно­ го, информационного и лингвистического ПО с прикладным при функционировании САПР в системе пользователь — САПР.

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

Этапы развития системного ПО совпадают с этапами разви­ тия технических средств (ЭВМ). При использовании ЭВМ перво­ го поколения (на электронных лампах) потребности в системном ПО были незначительны. Применение данных ЭВМ ограничива­ лось решением сложных математических задач, при этом про­ граммирование велось за пультом ЭВМ. Но в этот период были разработаны некоторые идеи построения ассемблеров и компи­ ляторов, использования макрокоманд, библиотечных и служеб­ ных подпрограмм.

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

94

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

ипрограммы-загрузчики. Многие возможности языка управления задания сформировались как средство связи программиста с эти­ ми специальными модулями математического обеспечения. Но рост быстродействия ЭВМ, особенно центрального процессора (ЦП), привел к несоответствию скорости выполнения операций

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

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

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

Появление ИС большой (БИС) и сверхбольшой (СБИС) сте­ пени интеграции привело к появлению ЭВМ четвертого поколе­ ния и еще больше усугубило проблему различия быстродействия ЦП и устройств ввода—вывода. Обнаружилось, что размещение 10 или 15 программ в памяти ЭВМ не решает задачу повышения производительности ЦП. Решение нашлось путем использования концепций виртуальной памяти, когда программа разбивается на сегменты или страницы и хранится в устройстве прямого досту­ па. В оперативную память вызываются только активные части программы, а пассивные страницы или сегменты удерживаются в виртуальной памяти, ожидая вызова в оперативную. Другой важный аспект появления ЭВМ четвертого поколения — возмож­ ность хранения и обработки больших объемов информации (дан­ ных) как одного из видов ресурсов, в результате чего появились банки данных. Развитие ОС, виртуальной памяти и банков дан­

95

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

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

i 4.2. СТРУКТУРА СИСТЕМНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

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

К ПО машинной графики (рис. 4.2, г) относятся языки обще­ ния пользователя с САПР, математические модели изделий и графических документов, методы, алгоритмы и программы, ис­ пользуемые для преобразования моделей. В процессе функциони­ рования САПР накапливаются архивы графической информации многократного пользования, образующие информационные сред­ ства машинной графики.

Программное обеспечение телеобработки предназначено для передачи и обработки информации на значительные расстояния от одной ЭВМ к другой (обслуживание сетей ЭВМ), между ЭВМ и удаленными оконечными устройствами (различными термина­ лами), между ЭВМ и приборами для научных исследований (в системах автоматизации научных исследований).

Системы программирования. Системы программирования СП (рис. 4.2, б) разделяются на три класса: машинно-ориентирован­ ные, проблемно-ориентированные и вспомогательные. Машинно­ ориентированные системы содержат входной язык, присущий именно этой ЭВМ, например системы программирования для двухадресных ЭВМ. Командами такого языка служат триады, содержащие код операции (сложить, вычесть, умножить, запом­ нить и т. д.), адреса первой и второй ячеек. К этому классу отно­ сятся также системы символического кодирования, автокоды, макрогенераторы.

96

Одна из первых систем, созданная для автоматизации про­ граммирования с использованием входного языка, — это систе­ ма символического кодирования. Уровень символического коди­ рования имеет обозначение «один в один». Этот уровень пред-

61

Рис. 4.2. Структура системного программного обеспечения (а.. .г)

полагает, что одной символической инструкции

соответствует

одна машинная команда

или константа.

Смысл

применения

данной системы состоит

в использовании

символической нота­

ции вместо машинной, в применении автоматического распреде­ ления памяти и присвоения действительных адресов. Системы

4-1415

97

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

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

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

Алгоритмические языки носят целевой характер и разделяют­ ся для решения различных задач: научно-технических (АЛГОЛ, ФОРТРАН, ПЛ-1 и их модификации), экономических (КОБОЛ, АЛГЭК, АЛГЭМ и др.), информационных (ЛИПС и др.), моде­ лирования (СИМУЛА, СИМСКРИПТ), задач на мини-и микроЭВМ (БЕЙСИК, ПАСКАЛЬ).

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

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

98

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

После подготовки программы на языке ФОРТРАН. ПЛ-1 КОБОЛ или автокод она должна с помощью ОС и трансляторов (программ для перевода входного языка на машинный) проити ряд этапов, прежде чем будет разрешено ее использование. Про­ грамма, написанная на одном из вышеуказанных языков, назы­ вается исходным модулем и выполняться не может. Исходный модуль читается и транслируется, в результате чего появляется программа на машинном языке, называемая объектным модулем. Другая программа — редактор связей или загрузчик — подготав­ ливает программу к исполнению в командах машины и формиру­ ет загрузочный модуль.

Отметим некоторые функции транслятора. Транслятор может быть компилятором, или ассемблером, или интерпретатором. Компилятор представляет собой программу, обеспечивающую пе­ ревод с алгоритмического языка на машинный без одновремен­ ного выполнения получаемой программы. Ассемблер представля­ ет собой транслирующую систему с языка Ассемблер. Если одному оператору входного языка соответствует одна машинная команда, то такой ассемблер называется абсолютным или авто­ кодом. Если существуют макрокоманды, которые переводятся в группу машинных команд, то транслирующая система называет­ ся макроассемблером. Интерпретатор — транслирующая система, в которой трансляция исходной программы на входном языке совмещается с выполнением данной программы.

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

Операционная система. Операционные системы приобретают важное значение на современном этапе развития ТС САПР. Они обеспечивают условия взаимодействия пользователя и разработ­

4*

99

чика САПР с ЭВМ. Средства ОС поддерживают весь цикл работ по созданию ПО, а также управляют самой ЭВМ (рис. 4.2, в).

На ранних стадиях развития САПР ОС использовалась в ос­ новном как средство подготовки текстов, трансляции, исполнения и отладки, создания файла. В настоящее время роль современной ОС значительно расширилась, да и сама она видоизменилась.

Операционная система представляет собой совокупность про­ грамм, позволяющих автоматизировать процесс составления про­ блемных программ и подготовки их к выполнению на ЭВМ, осу­ ществляющих управление системой во время ее работы. Часть ОС, постоянно находящаяся в основной памяти, называется резидентной или ядром системы. Программы, вызываемые в ос­ новную память для выполнения определенных функций и не хра­ нящиеся там постоянно, называются транзитами. Вся область основной памяти, занимаемая ядром и транзитами, называется

областью управляющей программы. Остальная часть основной памяти образует область проблемных программ. Одна из задач ОС — распределение ресурсов. К ресурсам ЭВМ относятся ЦП, объем оперативной и долговременной памяти, Г10 для управле­ ния устройствами ввода—вывода, каналы, таймер, экран опера­ тора.

Единицей работы ОС служит задание. Поток заданий пред­ ставляет собой совокупность нескольких заданий, озаглавленных управляющими операторами, тексты программ и массивы дан­ ных. Составная часть задания, выполняемая самостоятельно, называется шагом задания. Задания описываются с помощью языка управления заданиями и содержат следующие операто­ ры: задания, выполнения, описания данных, процедуры, коман­ ды, ограничения, пустой. Операционная система является мо­ дульной, т. е. может быть приспособлена к конкретным конфи­ гурациям ТС. Процесс создания конкретной ОС называется генерацией системы. Основная память для прикладных программ согласно конкретно сгенерированной ОС делится на 3...15 раз­ делов. После распознавания управляющей программой шага задания и выделения требуемых ресурсов формируется задача. Задача — это единица действия в ОС. Чтобы выполнить работу в ЭВМ, необходимо ввести задания на выполнение этой работы. Работу по подготовке программы к выполнению исполняет про­ грамма ОС, называемая редактором. Так, например, задание на выполнение какой-либо программы Р включает в себя следую­ щие шаги: компиляцию программы Р, редактирование и выпол­ нение.

Основу ОС составляет управляющая программа, назначение которой — автоматизировать управление работой ЭВМ, подгото­ вить ОС к функционированию, принять задание и подготовить его к выполнению, управлять ходом его выполнения, управлять устрс 'ствами ввода—вывода. Это осуществляется с помощью сле­

100