Языки программирования в космонавтике - Студенческий научный форум

XV Международная студенческая научная конференция Студенческий научный форум - 2023

Языки программирования в космонавтике

Новиков А.В. 1
1ФГБОУ ВО «Брянский государственный университет имени академика И. Г. Петровского», г. Брянск, Россия
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

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

Действительно, в 70-80-е годы в космической отрасли были сосредоточены огромные средства и применялись технологии, в тот момент недоступные широкому потребителю. В современном мире ситуация изменилась. Мощные компьютеры стали общедоступными. А для космических аппаратов используют часто скромные по нынешним меркам устройства.

Дело в том, что при проектировании космических аппаратов все системы управления прячутся под многочисленными слоями защиты. И здесь «железо» должно быть в первую очередь:

компактным,

безотказным,

устойчивым к внешним воздействиям.

Как итог, инженеры выбирают довольно простые решения. Например, в MER’ах стоят чипы частотой всего 20 20 MHz и 128 Мб ОЗУ.

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

NASA

Итак, по информации из открытых источников, подавляющее большинство программных решений в этих проектах пишется на С. Для вспомогательных программных продуктов иногда применяются C++ и Java. При написании драйверов или в случае необходимости максимальной оптимизации обращаются к машинным кодам, т.е. применяют Assembler.

Математическое моделирование чаще всего выполняют в MatLab, но также есть любители среды Mathematica. Написанные на скриптовых языках решения, а также такие языки как Python, Ruby, Perl не соответствуют требованиям отрасли.

Популярность C в этой сфере вполне обоснована. Язык быстрый, на нем можно писать на низком уровне (близко к «железу»), при этом под C существует очень много различных библиотек. Его легко компилировать, при этом можно быть уверенными, что программа одинаково корректно будет работать на самых разных компьютерах, чего нельзя сказать с такой же уверенностью о многих современных языках.

Даже любимый многими С++ в случае написания программ для космоса заметно проигрывает чистому C по надежности и ресурсоемкости. Как известно, код, сгенерированный на C++, славится своими совсем не маленькими объемами. Даже для довольно современных космических аппаратов с их ограничениями по «железу» это действительно важный фактор.

SpaceX

Для программного обеспечения на всех ракетах серии Falcon, на всех кораблях Dragon используется язык С++. Язык максимально универсален и, плюс ко всему, относительно машинных языков прост в изучении. На нём пишут практически всех современных роботов, все системы дистанционного управления и всё, что только можно. По заявлениям сотрудников SpaceX, этот язык занимает основную позицию, среди всех других языков в компании. Своё место нашли C# и JavaScript. На них работают большая часть внутренних инструментов и услуг компании.

Роскосмос и другие отечественные проекты

Об инструментах, которые используют российские разработчики программных продуктов для космической отрасли, достоверную информацию найти сложнее. Скорей всего, здесь также популярен С и Assembler. Но кроме них, достоверно известно о применении особого языка – ДРАКОН.

На нем написана значительная часть ПО для ракетоносителей Протон-М, иногда им пользуются в Германском Аэрокосмическом Центре для проведения тестов.

Посадка, завершающая полёт проекта «Буран-Энергия» изображена на рисунке 1. Для реализации данного проекта был разработан ПРОЛ2 — язык для разработки комплексных бортовых программ в реальном времени. Сразу за ним подоспели ДИПОЛЬ — проблемно-ориентированный язык для создания программ для наземных испытаний и ЛАКС — язык для моделирования. Все это было создано под БЦВМ — бортовую цифровую вычислительную машину. Для неё также была написана отдельная операционная система, получившая название «Пролог-диспетчер».

Рис. 1 «Проект Буран»

Разработкой ДРАКОН занимались ученые РАН в период СССР, усовершенствования и доработки продолжились и после распада Советского Союза. В этом необычном языке ученые сумели объединить лучшие качества отечественных разработок 60-70-хх годов: ДИПОЛЬ, ПРОЛ2 и ЛАКС.

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

Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность.

Рис. 2 «Графическое изображение Дракона»

Создатели языка считали, что алгоритм для космической системы намного лучше сумеет разработать инженер-ракетостроитель, чем программист без глубоких знаний в области ракетостроения и космоса. В результате появился графический ДРАКОН. Язык, где алгоритмы реализованы в виде блок-схем. При этом он прекрасно компилируется и совмещается с традиционными языками программирования, образуя оригинальные гибриды: ДРАКОН-C, ДРАКОН-Python, ДРАКОН-Java и так далее.

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

Список использованной литературы

Маров Михаил Яковлевич Космос. От Солнечной системы вглубь Вселенной / Под ред. Маров М. Я. - «ФИЗМАТЛИТ», 2017

Опытно-технологический малый космический аппарат «АИСТ-2Д» / Кирилин А.Н., Ахметов Р. Н. – «СамНЦ РАН», 2017

На чём пишут ПО для космических аппаратов? - Alpha Centauri [Электронный ресурс]. – URL: https://thealphacentauri.net/na-chem-pishut-po-dlya-kosmicheskih/ (Дата обращения: 03.12.2022)

Просмотров работы: 68