Какие языки программирования используются в космических программах.

  • Автор темы HapkoMaH
  • Дата начала
  • Просмотров 3956 Просмотров

HapkoMaH

Местный
191
122
7 Май 2018
Мало кто задумывается о программистах, когда наблюдает за очередным запуском ракеты. Ещё меньше людей думают о языках программирования, благодаря которым вся эта техника вообще взлетает (не учитывая двигатели и корпус).
Как программируется отечественный космос?
С чего началась история программирования в отечественной космонавтике?
Когда началась холодная война между СССР и США, тогда началось и создание «Бурана» — орбитального многоразового космического корабля. В те 70-е годы вычислительная техника была очень слабой и программистам приходилось работать примерно со следующими мощностями:
4МГц;
128 КБайт оперативной памяти;
16 КБайт постоянной программной памяти.
Как вы понимаете, программировать что-либо на этом сложно, а тем более для такой техники. Кроме того, надо было повышать производительность программистов, как и их численность. Поэтому ассемблер тут точно не подошёл бы. Тогда исследователи из разных институтов объединились и начали создавать собственные средства программирования специально для космолёта.
Что было создано:
ПРОЛ2 — язык для разработки комплексных бортовых программ в реальном времени;
ДИПОЛЬ — проблемно-ориентированный язык для создания программ для наземных испытаний;
ЛАКС — язык для моделирования;
САПО — система отладки и автоматизации процесса программирования;
БЦВМ — бортовая цифровая вычислительная машина;
Пролог-диспетчер — операционная система для взаимодействия с БЦВМ.
Однако после своего единственного беспилотного пуска программа была закрыта и разработку корабля прекратили. При этом наработки учёных не перестали использовать, а наоборот — даже немного усовершенствовали, создав на их базе новый язык программирования под названием ДРАКОН

Роскосмос
На просторах Интернета довольно сложно найти информацию о языке программирования, который используется в госкорпорации. Но есть основания полагать, что пишут в Роскосмосе в том числе и на ДРАКОНе. Этот язык был разработан ещё в советские времена и до сих пор применяется в аэрокосмической отрасли. Он может сливаться с другими ЯП в единое целое, образуя такие гибриды, как ДРАКОН-C, ДРАКОН-Python, ДРАКОН-Java и так далее.
В ДРАКОНе учёные РАН реализовали все лучшие стороны таких узконаправленных языков, как ПРОЛ2, ДИПОЛЬ и ЛАКС.
ДРАКОН применяется и в настоящее время в ракетоносителях Протон-М и иногда его используют для тестов в Германском Аэрокосмическом Центре. Решение о продолжении использования языка приняли благодаря его надёжности и функциональности. Изначально создатели хотели, чтобы он был понятным не только для программистов, но и для людей других специальностей. И у создателей языка это получилось. ДРАКОН-схемы вполне удобны и читаемы для обычных людей. А программисты могут использовать гибриды, о которых было упомянуто выше. Создание такой технологии, конечно, не запуск первого человека в космос, но тем не менее, важное для отечественной науки событие. Что бы сейчас использовал Роскосмос для своих ракет? Кстати, ДРАКОН расшифровывается следующим образом:
Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность.
Так сложились обстоятельства, что этот язык имел особую философию — программирование без программистов. Поэтому, после развала СССР работа над ДРАКОНом продолжилась. Да-да, именно так. Считалось, что инженеры лучше смогут понять, что нужно эксплуатируемой ими технике, чем далёкие от физики процесса программисты. А замена на любой другой ЯП только усложнила бы всё. Зачем отказываться от гибридного языка? Представьте, если бы у нас были такие звери как Java-Python, JavaScript-C++, вот бы зажили! Но от программистов полностью никто не спешил отказываться, они всё ещё нужны были для реализации некоторой части задач (не забываем о возможности слияния с другими языками).

И ещё немного о ДРАКОНе
Этот язык программирования доступен всем людям, а не только специалистам аэрокосмической отрасли. Для него есть даже редактор (не от Роскосмоса, но всё же), в котором можно составлять свои алгоритмы и схемы.

А как насчёт других отечественных компаний?
Пока что серьёзных конкурентов у Роскосмоса на территории России (и СНГ) нет. Даже S7, которая начнёт запускать ракеты с «Морского Старта», нельзя назвать конкурентом из-за малой активности. Кроме того, точно не удаётся выяснить, на чём именно программируют в этой компании. Однако известно, что на площадке «Морской старт» все действия в большой степени выполняются на ДРАКОНе благодаря его надёжности.
SpaceX
В последние пару лет компания стала даже популярнее Роскосмоса в плане доставки гражданских грузов на орбиту. Кроме того, благодаря запуску новой ракеты Falcon Heavy у компании появились новые поклонники как среди простых людей, так и компаний, которые до сих пор выбирают между Роскосмосом и SpaceX. К сожалению для отечественной госкорпорации, цены у конкурента в некоторой степени привлекательнее. В российских исследовательских центрах и конструкторских бюро уже готовят ответ Илону Маску, но, увы, этот ответ был найден в чертежах 60-х годов прошлого столетия. На действительно впечатляющие инновации нам нужно надеяться, видимо, в чуть более отдалённом будущем. Но на каком же языке программируют в SpaceX? Западные коллеги используют C++ почти для всех задач. Для наземного моделирования применяется
LabVIEW— среда разработки и платформа для выполнения программ, созданных на графическом языке программирования «G».

NASA
Здесь ситуация похожа на SpaceX: многое программируется на C, ещё больше на C++, совсем мало на Java и некоторые простые и «безопасные» программы пишутся на Python и других языках. Кстати, NASA на фоне SpaceX выглядит довольно тускло и там, как и в Роскосмосе, интересных инноваций не наблюдается, за исключением некоторых программ освоения космоса.
[automerge]1530194331[/automerge]
Вроде как и без полезная инфа, (смотря для кого) но мне лично было интересно ознакомиться.
 

episkob

Новорег
11
2
29 Июн 2018
круто, обольше ы таких поучительных постов) Спасибо