Россия, г. Санкт-Петербург |
Методическое обеспечение САПР. Математический и лингвистический виды обеспечений
Классификация языков программирования представлена на рис. 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 через несколько лет станет наиболее популярным среди всех языков программирования.
Язык Ада можно назвать наиболее универсальным среди созданных языков. Однако трансляторы с этого языка пока не получили достаточного распространения.
Язык Алгол — общепризнанный язык для публикации алгоритмов решения научных задач, построен на четких и полных определениях. Для Алгола характерны строгие, но негибкие структуры данных и программ. Алгол труден для реализации на большинстве ЭВМ, поэтому используются неполные варианты языка или его расширения.
Язык Кобол, разработанный для решения экономических задач, будучи широко распространен на больших и средних ЭВМ прошлых лет, на персональных ЭВМ почти не применяется. На ЭВМ имеются интегрированные системы, базы данных и другие типы прикладных систем, используемые в задачах экономического и управленческого характера.
Самыми распространенными на ЭВМ являются различные версии языка Бейсик, простота которого делает его превосходным средством для начинающих программистов. В языке встроены удобные функции для работы с экраном дисплея, клавиатурой, внешними накопителями, принтером, каналами связи. Это позволяет относиться к Бейсику как к продолжению аппаратуры ПЭВМ. Системы Бейсика работают в режиме интерпретации, что способствует сокращению характерного цикла в работе программиста: составление программы — пробное исполнение — исправление ошибок — повторное исполнение. Бейсик наряду с Паскалем принят во многих учебных заведениях как базовый язык для изучения программирования.
Язык АПЛ применяется для обработки структурных данных (векторов, матриц) и использует иероглифическую запись программных текстов. Из-за большого числа иероглифов (около 100) его иногда называют китайским Бейсиком.
К классу проблемно-ориентированных языков можно отнести Лого, CPSS, Форт и Смолток.
Язык Лого — диалоговый процедурный язык, реализованный на принципе интерпретации и работающий со списками, текстами, графическими средствами и т. д. Язык очень перспективен для обучения, создания электронных игрушек и т. д.
Развитием проблемно-ориентированных языков является объектно-ориентированный подход (языки Смолток, Форт, Модула и Ада). Отличительными особенностями таких языков можно назвать модульность построения процедур, абстракцию данных, динамическую связку программ (позволяет отказаться от перекомпилирования всей программы при внесении изменений в отдельные модули) и использование механизма наследования иерархического типа.
К недостаткам таких языков относятся некоторая замедленность выполнения программ из-за их динамической связи и сложность трансляторов.
Язык Смолток предназначен для решения нечисловых задач при построении систем искусственного интеллекта. В языке Форт применены структурное программирование и очень компактный машинный код.
Для разработки систем искусственного интеллекта также используются функциональные языки Лисп, Пролог и СНОБОЛ. Эти языки ориентированы на обработку символьной информации, требуют больших массивов данных и стали применяться в ПЭВМ в связи с появлением дешевой полупроводниковой памяти, позволяющей довести объем ОЗУ до нескольких мегабайт. Языки этого класса относятся к так называемым языкам представления знаний.
Язык Лисп применяется для программирования интеллектуальных задач — общение на естественном языке, доказательство теорем, принятие решений и т. п.
Язык Пролог приобрел в последние годы большую популярность в связи с японским проектом создания вычислительных систем пятого поколения. Он предназначен для создания широкого класса систем искусственного интеллекта, в том числе и персональных экспертных систем.
При использовании САПР приходится не только решать задачи вычислительного характера и обработки данных, но и автоматизировать описание объектов, процессы ввода, вывода и редактирования данных, ввода графических изображений, схем, чертежей и т. п. Для этой цели служат языки проектирования.
Классификация языков проектирования приведена на рис. 8.2.
Языки проектирования делят на: входные, выходные, сопровождения, промежуточные и внутренние.
Входные языки служат для задания исходной информации об объектах и целях проектирования. Во входных языках можно выделить две части: непроцедурную, служащую для описания структур объектов, и процедурную, предназначенную для описания заданий на выполнение проектных операций.
Языки сопровождения служат для непосредственного общения пользователя с ЭВМ и применяются для корректировки и редактирования данных при выполнении проектных процедур. В диалоговых режимах работы с ЭВМ средства языков входного, выходного и сопровождения тесно связаны и объединяются под названием диалогового языка. Современные диалоговые языки широко используют средства машинной графики (графический диалог). Диалог с ЭВМ может быть пассивным, когда инициатор диалога — система и от пользователя требуются только простые ответы, и активным при двусторонней инициативе диалога. Наиболее распространенная форма пассивного диалога — это система встроенных, в том числе иерархических, директивных меню.
Недиалоговые системы языков сопровождения ориентированы на пакетный режим работы ЭВМ.
Промежуточные языки используются для описания информации в системах поэтапной трансляции исходных программ. Введение таких языков облегчает адаптацию программных комплексов САПР к новым входным языкам, т.е. делает комплекс открытым по отношению к новым составляющим лингвистического обеспечения.
Внутренние языки устанавливают единую форму представления данных (текстовой и графической информации) в памяти ЭВМ по подсистемам САПР. Принимаются определенные соглашения об интерфейсах отдельных программ, что делает САПР открытой по отношению к новым элементам программного обеспечения.
В качестве примера современного языка проектирования можно указать язык VHDL (VHSIC — hardware description language) — язык описания аппаратуры на базе сверхвысокоскоростных интегральных схем. Этот язык принят в качестве стандарта как инструментальное средство автоматизации проектирования СБИС, ориентированное на методологию нисходящего проектирования. Он является достаточно универсальным, чтобы охватить все аспекты проектирования изделий в области цифровой электроники.
Контрольные вопросы и упражнения
- Что включает в себя методическое обеспечение САПР?
- Входят ли в состав методического обеспечения документы, посвященные созданию САПР?
- На основе чего создаются компоненты методического обеспечения?
- Что составляет основу математического обеспечения САПР?
- Каковы пути совершенствования математического обеспечения?
- Назовите языки лингвистического обеспечения САПР.
- Для чего служат языки программирования?
- Для чего служат языки проектирования?
- Для чего служат языки управления?
- Что называется исходной программой?
- Каково назначение исходной программы?
- Каково назначение языкового процессора?
- Что называется трансляцией?
- Что называется ассемблером?
- Что называется системой программирования?