Программа управления самолётом в режиме автопилотаСтраница 2
Выбор и обоснование языка программирования.
Выбор языка программирования должен осуществляться по следующим критериям:
1. Читабельность языка, легкость чтения и понимание программ на нем.
а) Простота
б) Ортогональность
2. Ограниченное количество управляющих операторов.
а) Количество операторов безусловного перехода
б) Точки перехода никогда не должны находиться слишком далеко.
в) Количество операторов безусловного перехода должно быть ограничено.
3. Типы и структура данных должны быть хорошо описаны.
4. Анализ синтаксической структуры.
а) Формула идентификаторов.
б) Ограничение длины идентификаторов до очень маленьких размеров уменьшает читабельность.
в) Специальные слова.
г) Форма и значении
5. Легкость создания программ.
а) Простота и ортогональность
б) Поддержка абстракции
в) Выразительность
6. Надежность
а) Проверка типов.
б) Обработка исключений
в) Совмещение имен
г) Легкость чтения и использования.
Для данной программы был выбран язык «С++». «C++» - это усовершенствованный вариант «С», основные отличия от «С» заключаются это объектное ориентирование «С++», поддержка абстракции данных поддержка обработки ошибок с помощью исключений и возможности перегрузки операций. Также «С++» является одним из наиболее часто употребляемых объектно-ориентированных языков, по причине оптимального сочетания функциональности и быстродействия. «С++» появился как видоизменённый «С». В нём появились новые функции, упростился процесс разработки программных продуктов. Вот только некоторые из преимуществ «С++» над другими языками:
Программы на «С++» получаются компактными и быстро выполняемыми. Фактически язык «С++» обладает такими прекрасными возможностями управления, которые обычно присущи языкам Ассемблера. Программы на языке «С++» можно по желанию настраивать либо на максимальное быстродействие, либо на экономное использование доступной памяти. Языку «С++» присуща высокая степень переносимости. Это означает, что программы на языке «С++», написанные для одной операционной системы, могут выполняться в других системах с небольшими изменениями (или вообще без таковых). Если модификация программы необходима, то зачастую она может быть выполнена путем простой замены нескольких записей в заголовочном файле для основного модуля. Язык «С+» является мощным и гибким. Например, большая часть мощной и гибкой операционной системы UNIX написана на языках «С++» и «С» (предшественнике «С++»). Многие компиляторы и интерпретаторы для других языков программирования, таких как FORTRAN, APL, PASCAL, LOGO и BASIC, написаны на языке «С++». Язык «С++» сориентирован на удовлетворение потребностей программистов. Он предоставляет доступ к аппаратным средствам и позволяет оперировать отдельными битами оперативной памяти.
Выбор и обоснование операционной системы.
Операционная система будет управлять работой нашей программы, выполнять запросы программы, выделять ей ресурсы. Для данной программы мы выбрали операционную систему QNX. Это масштабируемая ОС «жесткого» реального времени. Применяется в наиболее критичных областях (Mission Critical Appliances). На базе QNX строятся высоконадёжные решения для управления промышленным и медицинским оборудованием а также бортовыми системами. QNX содержит ряд следующихфункций:
1. Совместимость (Compatibility). На ОС QNX внешний вид может различаться, т.к. внешний вид данной ОС зависит от установленной графической оболочки, QNX обеспечивает поддержку многих файловых систем, к примеру, таких как NTFS и FAT. Большинство приложений, написанных под WIN9x, WINNT, *NIX, а также некоторые программы под OS/2 и POSIX запускаются и функционируют без проблем, а если проблемы и появляются, то их можно устранить без проблем. При проектировании QNX учитывалась возможность работы системы в различных сетевых средах, поэтому в поставку входят средства для работы в *NIX и WINDOWS сетях.
2. Переносимость (Portability). Система работает на различных процессорах семейства х86 (для релиза RTP 6.1.0) а также с архитектурами MIPS, PowerPC, Hitachi CH4, INTEL StrongARM. Реализация поддержки процессоров других архитектур возможна т.к. QNX практически нетребовательна к системным ресурсам.