Лингвистическое обеспечение САПР
Это совокупность языков, используемых в процессе разработки и эксплуатации САПР для обмена информацией между человеком и ЭВМ. Термином "язык" в широком смысле называют любое средство общения, любую систему символов или знаков для обмена информацией.
Лингвистическое обеспечение САПР состоит из языков программирования, проектирования и управления.
Языки программирования служат для разработки и редактирования системного и прикладного программного обеспечения САПР. Они базируются на алгоритмических языках — наборе символов и правил образования конструкций из этих символов для задания алгоритмов решения задач.
Языки проектирования — это проблемно-ориентированные языки, служащие для обмена информацией об объектах и процессе проектирования между пользователем и ЭВМ.
Языки управления служат для формирования команд управления технологическим оборудованием, устройствами документирования, периферийными устройствами ЭВМ.
Существуют различные уровни языков программирования: высокие, более удобные для пользователя, и низкие, близкие к машинным языкам.
Программа, записанная на некотором языке программирования высокого уровня, называется исходной. Прежде чем исходная программа будет исполнена, она должна быть преобразована в машинную форму, соответствующую ЭВМ данного типа. Подобные преобразования осуществляются специальными программами, называемыми языковыми процессорами.
Основные типы языковых процессоров — трансляторы и интерпретаторы; соответственно преобразования программ называют трансляцией и интерпретацией.
Трансляцией называют перевод всего текста программы на исходном языке (исходной программы) в текст на объектном языке (объектную программу). Если исходный язык является языком высокого уровня, а объектный — машинным, то транслятор называют компилятором. Если исходный язык — машинно-ориентированный (в автокоде), а объектный — машинный, то транслятор называют ассемблером. Если исходный и объектный языки относятся к одному уровню, то транслятор называют конвертером.
По методу трансляции (компиляции) сначала исходная программа переводится на машинный язык, а затем скомпилированная рабочая программа исполняется.
При интерпретации перевод исходной программы в рабочую совмещены во времени; очередной оператор исходной программы анализируется и тут же исполняется.
В большинстве случаев применение трансляторов приводит к меньшим затратам машинного времени, но к большим затратам машинной памяти, чем при интерпретации.
Совокупность языка программирования и соответствующего ему языкового процессора называют системой программирования.
Классификация языков программирования представлена на рис. 8.1.
Класс машинно-зависимых языков представлен Ассемблером (макроассемблером). Он относится к языкам низкого уровня и применяется для написания программ, явно использующих специфику конкретной аппаратуры.
К машинно-ориентированным языкам относится язык СИ (разработан в 1972 г.). В нем объединяются достоинства низкоуровневых возможностей ассемблеров и мощных выразительных средств языков программирования высокого уровня. Язык СИ является одним из претендентов на роль основного языка программирования в САПР и ориентирован на разработку системных программ. Он, в частности, послужил главным инструментом для создания операционных систем для ЭВМ UNIX и MS DOS.
Язык Фортран является первым универсальным языком высокого уровня (с 1954 г.). Наиболее эффективен при численных расчетах, прост по структуре и удобен при выполнении программ. Несмотря на свои недостатки, этот язык получил большое распространение при разработке прикладных программ для решения научных задач. Самая популярная в настоящее время версия этого языка — Фортран-77.
Идеи Фортрана получили развитие в языке PL/I (создан в 1964 г.). В нем сделана попытка преодолеть некоторые недостатки, свойственные языкам для больших ЭВМ, и использованы идеи структурного программирования. В настоящее время имеются различные версии этого языка: PL/M, PL/Z, PL/65 и др. Как язык программирования PL/M, в частности, значительно уступает конкурирующим с ним языкам Паскаль и Модула-2.
Язык Паскаль является одним из наиболее популярных языков программирования и применяется для разработки системных и прикладных программ, в частности, для персональных ЭВМ. Язык Паскаль создан вначале исключительно для учебных целей и изящно реализовал большинство идей структурного программирования.
Достоинства языка оказались столь значительными, что он приобрел огромную популярность для самых различных приложений.
В частности, компилятор Turbo Pascal, снабженный интерактивным редактором, позволяет создавать достаточно сложное программное обеспечение — системы управления базами данных, графические пакеты и т. д.
Развитием Паскаля являются языки Модула-2 (в Европе) и Ада (в США). Язык Модула-2 обладает лучшими средствами для обработки больших программных комплексов и позволяет более эффективно использовать особенности аппаратуры. Таким образом, этот язык призван заполнить ниши между Паскалем и СИ. По оценке специалистов, язык Модула-2 через несколько лет станет наиболее популярным среди всех языков программирования.
Язык Ада можно назвать наиболее универсальным среди созданных языков. Однако трансляторы с этого языка пока не получили достаточного распространения.
Язык Алгол — общепризнанный язык для публикации алгоритмов решения научных задач, построен на четких и полных определениях. Для Алгола характерны строгие, но негибкие структуры данных и программ. Алгол труден для реализации на большинстве ЭВМ, поэтому используются неполные варианты языка или его расширения.
Язык Кобол, разработанный для решения экономических задач, будучи широко распространен на больших и средних ЭВМ прошлых лет, на персональных ЭВМ почти не применяется. На ЭВМ имеются интегрированные системы, базы данных и другие типы прикладных систем, используемые в задачах экономического и управленческого характера.
Самыми распространенными на ЭВМ являются различные версии языка Бейсик, простота которого делает его превосходным средством для начинающих программистов. В языке встроены удобные функции для работы с экраном дисплея, клавиатурой, внешними накопителями, принтером, каналами связи. Это позволяет относиться к Бейсику как к продолжению аппаратуры ПЭВМ. Системы Бейсика работают в режиме интерпретации, что способствует сокращению характерного цикла в работе программиста: составление программы — пробное исполнение — исправление ошибок — повторное исполнение. Бейсик наряду с Паскалем принят во многих учебных заведениях как базовый язык для изучения программирования.
Рис. 8.1. Классификация языков программирования
Язык АПЛ применяется для обработки структурных данных (векторов, матриц) и использует иероглифическую запись программных текстов. Из-за большого числа иероглифов (около 100) его иногда называют китайским Бейсиком.
К классу проблемно-ориентированных языков можно отнести Лого, CPSS, Форт и Смолток.
Язык Лого — диалоговый процедурный язык, реализованный на принципе интерпретации и работающий со списками, текстами, графическими средствами и т. д. Язык очень перспективен для обучения, создания электронных игрушек и т. д.
Развитием проблемно-ориентированных языков является объектно-ориентированный подход (языки Смолток, Форт, Модула и Ада). Отличительными особенностями таких языков можно назвать модульность построения процедур, абстракцию данных, динамическую связку программ (позволяет отказаться от перекомпилирования всей программы при внесении изменений в отдельные модули) и использование механизма наследования иерархического типа.
К недостаткам таких языков относятся некоторая замедленность выполнения программ из-за их динамической связи и сложность трансляторов.
Язык Смолток предназначен для решения нечисловых задач при построении систем искусственного интеллекта. В языке Форт применены структурное программирование и очень компактный машинный код.
Для разработки систем искусственного интеллекта также используются функциональные языки Лисп, Пролог и СНОБОЛ. Эти языки ориентированы на обработку символьной информации, требуют больших массивов данных и стали применяться в ПЭВМ в связи с появлением дешевой полупроводниковой памяти, позволяющей довести объем ОЗУ до нескольких мегабайт. Языки этого класса относятся к так называемым языкам представления знаний.
Язык Лисп применяется для программирования интеллектуальных задач — общение на естественном языке, доказательство теорем, принятие решений и т. п.
Язык Пролог приобрел в последние годы большую популярность в связи с японским проектом создания вычислительных систем пятого поколения. Он предназначен для создания широкого класса систем искусственного интеллекта, в том числе и персональных экспертных систем.
При использовании САПР приходится не только решать задачи вычислительного характера и обработки данных, но и автоматизировать описание объектов, процессы ввода, вывода и редактирования данных, ввода графических изображений, схем, чертежей и т. п. Для этой цели служат языки проектирования.
Классификация языков проектирования приведена на рис. 8.2.
Языки проектирования делят на: входные, выходные, сопровождения, промежуточные и внутренние.
Входные языки служат для задания исходной информации об объектах и целях проектирования. Во входных языках можно выделить две части: непроцедурную, служащую для описания структур объектов, и процедурную, предназначенную для описания заданий на выполнение проектных операций.
Рис. 8.2. Классификация языков проектирования
Языки сопровождения служат для непосредственного общения пользователя с ЭВМ и применяются для корректировки и редактирования данных при выполнении проектных процедур. В диалоговых режимах работы с ЭВМ средства языков входного, выходного и сопровождения тесно связаны и объединяются под названием диалогового языка. Современные диалоговые языки широко используют средства машинной графики (графический диалог). Диалог с ЭВМ может быть пассивным, когда инициатор диалога — система и от пользователя требуются только простые ответы, и активным при двусторонней инициативе диалога. Наиболее распространенная форма пассивного диалога — это система встроенных, в том числе иерархических, директивных меню.
Недиалоговые системы языков сопровождения ориентированы на пакетный режим работы ЭВМ.
Промежуточные языки используются для описания информации в системах поэтапной трансляции исходных программ. Введение таких языков облегчает адаптацию программных комплексов САПР к новым входным языкам, т.е. делает комплекс открытым по отношению к новым составляющим лингвистического обеспечения.
Внутренние языки устанавливают единую форму представления данных (текстовой и графической информации) в памяти ЭВМ по подсистемам САПР. Принимаются определенные соглашения об интерфейсах отдельных программ, что делает САПР открытой по отношению к новым элементам программного обеспечения.
В качестве примера современного языка проектирования можно указать язык VHDL (VHSIC — hardware description language) — язык описания аппаратуры на базе сверхвысокоскоростных интегральных схем. Этот язык принят в качестве стандарта как инструментальное средство автоматизации проектирования СБИС, ориентированное на методологию нисходящего проектирования. Он является достаточно универсальным, чтобы охватить все аспекты проектирования изделий в области цифровой электроники.
Контрольные вопросы и упражнения
1. Что включает в себя методическое обеспечение САПР?
2. Входят ли в состав методического обеспечения документы, посвященные созданию САПР?
3. На основе чего создаются компоненты методического обеспечения?
4. Что составляет основу математического обеспечения САПР?
5. Каковы пути совершенствования математического обеспечения?
6. Назовите языки лингвистического обеспечения САПР.
7. Для чего служат языки программирования?
8. Для чего служат языки проектирования?
9. Для чего служат языки управления?
10. Что называется исходной программой?
11. Каково назначение исходной программы?
12. Каково назначение языкового процессора?
13. Что называется трансляцией?
14. Что называется ассемблером?
15. Что называется системой программирования?
9. Лекция: Программное обеспечение САПР
Дата добавления: 2015-01-29; просмотров: 2850;