Автоматизация сбора и первичной обработки информации

78 В качестве основы для проектирования языков систем реального времени разработчиками учитываются прежде всего следующие шесть характеристик: 1. Надежность при проектировании языка является мерой степени автоматического обнаружения ошибок , которое может выполнено либо компилятором, либо системой, поддерживающей выполнение скомпилированной программы. ПО РВ должно функционировать надежно даже с учетом невозможности исчерпывающего тестирования; 2. Удобочитаемость зависит от широкого спектра факторов. Главная задача состоит в выборе такой четкой нотации языка, которая позволяла бы при чтении текста программы легко выделять основные понятия каждой конкретной части программы, не обращаясь к сопровождающим программу блок-схемами словесным описаниям; 3. Гибкость. Язык должен предоставлять программисту достаточно различных возможностей для выражения всех необходимых операций и не заставлять прибегать к вставкам машинного кода или различного рода ухищрениям; 4. Простота, уменьшающая вероятность программистских ошибок. Обычно простота языка уменьшает и размер компилятора, облегчает получение более эффективного объектного кода и увеличивает мобильность компилятора. Важным при этом является и снижение затрат на обучение программиста; 5. Мобильность заключается в возможности легкого переноса ПО на разные платформы. На практике это трудно достижимый результат именно в СРВ; 6. Эффективность , заключающаяся в обеспечении высокой вычислительной пропускной способности, т.е. следует избегать языковых конструкций, ведущих к непредсказуемым издержкам прогона программ. Основными критериями при выборе алгоритмического языка для разработки приложения реального времени являются: 1.Получение наивысшей производительности приложения реального времени. Из этого требования как правило вытекает, что язык должен быть компилируемого (как С, С++), а не интерпретируемого (как Java) типа, и для него должен существовать компилятор с высокой степенью оптимизации кода. Отметим, что для современных процессоров качество компилятора особенно важно, поскольку для них его оптимизация может ускорять работу программы в несколько раз по сравнению с неоптимизированным вариантом, причем часто оптимизирующий компилятор может породить код более быстрый, чем написанный на ассемблере человеком. Технологии оптимизации развиваются достаточно медленно, поэтому обычно для более старых и с более простой структурой языков имеются более качественные компиляторы, чем для достаточно молодых и сложно устроенных языков; 2.Получение доступа к ресурсам оборудования либо посредством языковых конструкций, либо посредством имеющихся для выбранного языка библиотечных функций; 3.Возможность вызова процедур, написанных на другом языке, чаще на языке ассемблера. Из этого требования вытекает, что последовательность вызова подпрограмм (механизм именования объектов, передачи аргументов и получения возвращаемого значения) должна быть документирована для выбранного языка; 4.Переносимость приложения, под которой обычно понимают как возможность его компиляции другим компилятором, имеющимся на той же платформе, так и возможность его компиляции на другой платформе и(или) другой операционной системой; 5.Поддержка объектно – ориентированного подхода стала в последнее время необходимостью, зачастую выходя в списке требований на первое место. Это объясняет, например, использование языка Java в ОСРВ. Часто помимо перечисленных выше технических требований выбор языка разработки диктуется организационно – финансовыми мотивами:

RkJQdWJsaXNoZXIy MTY0OTYy