Языки моделирования и описания цифровой аппаратуры, страница 3

До сих пор мы говорили о так называемых процедурных языках, которые представляют алгоритм решения задачи большим количеством мелких шагов, выполняемых последовательно команда за командой. Другими словами, чтобы решить задачу, надо не только сформулировать (поставить) её, но и указать в деталях, как получить решение.

Если пользователь не является программистом и математиком, то в такой ситуации он не может надеяться на успех. Вот здесь-то самое время вспомнить о другой группе языков программирования, называемых непроцедурными, описательными или дескрипторными (от англ. description - описание).

Они позволяют описать задачу, ситуацию или объект исследования, указать условия, в которых он работает, и сформулировать, каким экспериментам он должен быть подвергнут. При этом у пользователя «не болит голова» как всё это будет достигнуто. Такие языки, ориентированные на задачи, проблемы (от англ. problem - задача), принято называть проблемно-ориентированными (уровень 4).

Для нас особый интерес представляет подмножество этих языков, называемое языками проектирования. Обычно оно включает и две другие важные для нас разновидности языков программирования – языки моделирования и языки описания аппаратуры (рис.1).

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

Первую группу составляют все языки ассемблера, макроассемблера и процедурно-ориентированные языки общего применения, такие как Фортран, Алгол, Бейсик, Паскаль и Си. В разные времена предпринимались попытки устранить «лингвистический хаос» и решить проблему «вавилонского столпотворения». Результатом таких действий явились языки ПЛ/1 и Ада.

В качестве примеров специальных языков можно назвать Лисп и Пролог (языки искусственного интеллекта), Форт (язык управления), Симула-67, GPSS, Симскрипт, Форос, VHDL (языки моделирования).

Лингвистическое обеспечение САПР и СМ включает обе группы языков. Универсальные языки программирования являются инструментом разработчика САПР. На них создаются прикладные программы для решения отдельных проектных задач, которые затем объединяются в пакет (программный комплекс), называемый системой автоматизированного проектирования. Пользователя эти языки ни коим образом не касаются, он даже может не знать о языке написания системы.

Пользователь (обычно это инженер-разработчик) работает с другими языками, называемыми языками проектирования (рис.2). Как видно, это специализированные языки – процедурно- или проблемно-ориентированные. В первом случае речь идёт о языках моделирования, которые описывают функцию, поведение объекта.

Во втором случае подразумевается структурное описание объекта в виде списков элементов и цепей (в текстовой или табличной форме) или непосредственно в графической форме (например, в виде структурной, функциональной или


принципиальной схем).

Рис.2. Языки проектирования – разновидность специализированных
языков программирования

Языки проектирования делят на входные, выходные и языки сопровождения. Первые служат для задания исходной информации об объектах и целях проектирования, вторые – для представления результатов исполнения программ САПР или СМ. Языки сопровождения предназначены для непосредственного общения пользователя с системой в интерактивном режиме.

Языки проектирования, так же как и прикладные программы, составляют неотъемлемую часть САПР или СМ и, как правило, являют собой весьма ответственный этап в разработке подобных систем. Правда, в последнее время и в этом «лингвистическом хаосе» тоже наводится определённый порядок, например для моделирования и описания электронной аппаратуры в качестве стандарта принят единый язык VHDL.