Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_СРВ.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.23 Mб
Скачать

§ 4.3. Требования к языкам рв

программирование в РВ требует специальных средств, которые не в полном объеме встречаются в обычных языках. Язык для программирования в РВ в совокупности с ОСРВ должен предоставлять следующие возможности:

  1. Описание параллельных процессов;

  2. Переключение процессов на основе динамических приоритетов;

  3. Синхронизация процессов;

  4. Обмен данными между процессами;

  5. Функции, связанные с часами и таймерами, абсолютное и относительное время ожидания;

  6. Прямой доступ к внешним аппаратным портам;

  7. Обработка прерываний;

  8. Обработка исключений.

Некоторые компании разрабатывали специальные языки для поддержки своих собственных аппаратных средств. Они не претендуют на универсальность и ориентированы на конкретные компьютеры и их интерфейсы. Обычно подобные языки базируются на существующих (FORTRAN, BASIC) с расширениями, включающими функции РВ, о чем свидетельствует их название типа «Process Basic» или «Real-Time Fortran». Некоторые языки не поддерживают программирование в РВ в строгом смысле, но они легко расширяются (С++).

В 70-е годы выдвигалась концепция единого переносимого многоцелевого языка программирования в РВ, а именно языка ADA. Его главная идея состоит в том, что среда программирования должна быть полностью отделена от аппаратных средств. Программист не должен сталкиваться с деталями аппаратного уровня, а работать только в терминах абстрактных структур и типов данных. Опыт показал (не реалистичность) низкую эффективность этого подхода. Поскольку универсальные сильно типизированные языки существенно ограничивают гибкость. А быстрое развитие технических средств диктует новые требования, которые не могут быть предусмотрены в типизированном универсальном языке.

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

С и С++

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

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

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

Basic

Простота этого языка часто критикуется, поскольку он не является хорошим средством для создания больших структурных систем. Однако на Basic можно разработать приложения значительно быстрее, чем на других языках. Кроме того, Basic имеется почти на всех мини и микро компьютерах.

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

FORTRAN

Благодаря тому, что Fortran имеет устойчивое применение в научных приложениях, нередко информация в СРВ обрабатывается существующими Fortran-программами, а новые программы анализа и статистики также пишутся на Fortran.

Pascal и Modula 2

Эти языки предполагают, что программист постоянно остается в ограниченной среде, предоставленной программой, что совсем не соответствует реальной практике. Гибкость использования этих языков существенно выше, если программы для специальных приложений (обработчики прерываний, драйверы и др.) написаны на языке Assembler. Оба языка поддерживают подключение внешних модулей на Assembler, Pascal и Modula 2 являются хорошим средством для разработки встроенных систем, но не подходят для сложных приложений в распределенных компьютерных системах.