Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СРС1_МЭ_САПР.doc.DOC
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
9.39 Mб
Скачать

5.2. Процедурно-ориентированные языки программирования

Существует большое количество (несколько сотен) различных ПОЯ, среди которых наиболее известными являются примерно два десятка инструментальных языков.

ФОРТРАН (Formula Translation) - один из самых старых языков высокого уровня, разработанных в 1957 г. Дж.Бэкусом (фирма IBM), который имеет несколько версий и предназначен для задач численного анализа. На базе этого языка создавались и графические пакеты. В настоящее время ФОРТРАН применяется главным образом при разработке прикладных программ в областях, где уже накоплены обширные стандартные библиотеки программ.

АЛГОЛ разработан, как и ФОРТРАН, в конце 50-х годов и также ориентирован на программирование научно-технических задач. На его базе разработаны более современные языки, имеет несколько версий.

ПЛ/1 (PL/1) представляет дальнейшее развитие языка АЛГОЛ и является универсальным языком для научно-технических и экономических задач. Язык пригоден для создания сложных программ типа мониторов и компиляторов с других языков, однако громоздок и труден с точки зрения создания для него эффективных трансляторов.

КОБОЛ разработан в 1960 г. и предназначен главным образом для решения задач экономического и управленческого характера.

АПЛ появился в 1961 г. (фирма IBM), более компактный по сравнению с ФОРТРАНОМ и наиболее пригодный для инженерных расчетов. Особенно легко реализуются задачи, связанные с операциями над векторами и матрицами. На этом языке создаются также специальные прикладные системы, такие как системы машинной графики. Язык обеспечивает компактную запись алгоритма и эффективные вычисления. Однако для работы с языком требуется большой набор спецсимволов, что приемлемо лишь при систематическом использовании языка.

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

БЕЙСИК разработан в 1965 г. и исторически стал одним из самых популярных языков для персональных ЭВМ. Очень прост в освоении и использовании. В язык встраивают удобные функции для работы с экраном дисплея, клавиатурой, внешними накопителями, принтером, коммуникационными каналами. Язык имеет богатые возможности для программирования прикладных систем. В настоящее время существует много реализаций этого языка, но наиболее популярная версия БЕЙСИКА для ОС типа MS-DOS.

ЛОГО появился в конце 60-х годов как язык, обучающий основам алгоритмического мышления и программирования. В отличие от БЕЙСИКА, в ЛОГО используется концепция прямого управления движущимся на экране объектом. ЛОГО может быть использован в качестве языка управления роботами.

ЛИСП (List Processing - обработка списков) - идеальный язык для построения программ с использованием методов искусственного интеллекта. Особенность языка в удобстве динамического создания новых объектов, в качестве которых могут выступать и сами программы (функции). Это открывает возможности, которых нет в других языках, - построение адаптирующихся и самоизменяющихся программ и др. Память используется динамически, не требуется ее заблаговременного резервирования. Язык также применяется для управления роботами и анализа текстов на естественном языке.

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

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

Язык СИ появился в 1972 г. и был ориентирован на разработку системных программ. Он стал основным инструментом создания ОС MS-DOS и UNIX. В этом языке имеются более гибкие средства для эффективного использования особенностей аппаратуры, чем в ПАСКАЛЕ. Программы более компактны и работают быстрее. Однако чтение программ требует определенного навыка (синтаксис менее прозрачен, больше вероятность ошибок). В настоящее время является наиболее распространенным языком программирования среди профессионалов. Современными версиями языка СИ являются СИ++ и СИ#.

МОДУЛА-2 - язык, предложенный автором ПАСКАЛЯ Н.Виртом, который стремился к созданию подлинно универсального и эффективного инструмента системного программирования. Наследуя лучшие черты ПАСКАЛЯ, в том числе его ясный синтаксис, МОДУЛА-2 обладает лучшими средствами для разработки больших программных комплексов и позволяет более эффективно использовать особенности аппаратуры. По мере появления хороших трансляторов этот язык может занять ведущее место в иерархии языков высокого уровня.

АДА предложен как универсальный инструмент для разработки больших программных систем, в первую очередь для решения задач реального времени. Язык базируется на ПАСКАЛЕ и включает элементы языков АЛГОЛ-68 и ПЛ/1, однако чрезмерно сложен и широкого применения пока не нашел.

Интересны высказывания известного специалиста в области создания программного обеспечения профессора Дейкстры по поводу ряда устаревших языков:

АПЛ - ошибка, доведенная до совершенства;

ПЛ/1 - “роковая болезнь”;

КОБОЛ - калечит ум, его изучение должно рассматриваться как криминальное преступление;

ФОРТРАН - слишком неуклюж, опасен и дорог, чтобы его применять, безнадежно неадекватен применению на ЭВМ;

БЕЙСИК - программисты, ориентированные первоначально на БЕЙСИК, умственно оболванены без надежды на исцеление.

В настоящее время наиболее перспективными процедурно-ориентированными языками можно считать современные версии языков СИ, ПАСКАЛЬ, МОДУЛА-2, ЛИСП, ПРОЛОГ, АДА.

В частности, одной из последних версий языка СИ является разработка фирмы Microsoft (разработчики Андерс Хейльсберг (Anders Hejlsberg) – создатель Турбо-Паскаля и Дельфи, перешедший в 1996 г. в Microsoft, и Скотт Вилтамут (Scott Wiltamuth)) - язык СИ # (СИ-диез; # – как два пересекающихся плюса, что подчеркивает его родство с СИ ++). Больше всего новый язык похож на Java. СИ # - простой современный объектно-ориентированный язык, ведущий происхождение от СИ и СИ++, сочетающий продуктивность Visual Basic и мощность СИ++. Однако первые впечатления говорят о том, что язык избыточен, и, как следствие, сложен в использовании и реализации. Сомнения усиливаются при сравнении с языками, созданными Н.Виртом, в первую очередь с Обероном. В языке не получила воплощения простая и ясная концепция модуля. Вместо этого использованы пространства имен – средство, появившееся на поздних стадиях стандартизации СИ++.

Важным этапом в развитии языков объектного моделирования явилось создание Унифицированного Языка Моделирования (Unified Modeling Language - UML), развитие которого началось в 1994 году. UML был принят консорциумом Object Management Group (OMG) – организации, ответственной за принятие стандартов в области объектных технологий и баз данных – в ноябре 1997 года в качестве официальной объектно-ориентированной системы обозначений моделирования при описании доменов приложений.

Авторы и разработчики UML представляют его как язык для определения, представления, проектирования и документирования программных систем, бизнес-систем и других систем различной природы. Универсальный язык объектного моделирования UML не зависит от языков программирования и, вследствие этого, может поддерживать любой объектно-ориентированный язык программирования. Он является открытым и позволяет расширять ядро.

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

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

Практически все мировые производители CASE-средств заявили о реализации поддержки UML в ближайших версиях своих продуктов. Но уже сегодня существуют множество CASE-средств, автоматизирующих процесс анализа и проектирования в UML (Rational Rose, Paradigm Plus, Select Enterprise, Microsoft Visual Modeler for Visual Basic и др.), поддерживающих множество языков программирования, таких, как C++, Java, Delphi, Power Builder, Visual Basic, Centura, Forte, Ada, Smalltalk, а также позволяющих осуществлять генерацию базы данных для большинства из существующих SQL-серверов.

UML – это язык объектно-ориентированного моделирования, который уже фактически стал стандартом. Разработку UML поддержали и уже используют в качестве стандартов такие гранды рынка информационных технологий, как Microsoft, IBM, Hewlett-Packard, Oracle, DEC, Sybase, Logic Works и множество других. Число средств, поддерживающих UML, быстро увеличивается. И, что более важно, поддержка UML будет развиваться и дальше.

Выбор языка программирования для САПР не может быть решен однозначно. Он определяется назначением программы, существующим программным обеспечением, в среде которого будет использоваться разрабатываемая программа, и многими другими факторами.