Как стать автором
Обновить

Космическая разработка: какие языки программирования используют NASA, SpaceX и Роскосмос

Время на прочтение 5 мин
Количество просмотров 15K
Всего голосов 44: ↑40 и ↓4 +36
Комментарии 26

Комментарии 26

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

Пока я тут проблем не вижу.

А нет ли ссылочки на эту рекомендацию.

https://habr.com/ru/companies/hexlet/articles/303160/

Ссылка на документ из статьи (JPL Standard C) не доступна, но можно здесь взять https://github.com/abougouffa/awesome-coding-standards/tree/master

Там же и MISRA, что примерно то же самое

Забавно, что в 2016 году в комментариях первый вопрос также про Rust

А как это связано с Ржачкой?


Плюсы и Цешку ж не запрещают

Плюсы Rust-а в упрощении работы с динамической памятью и конкуренцией при многопоточности. Ни-то, ни-то в системах реального времени не приветствуется в принципе.

Плюсы Rust-а в упрощении работы с динамической памятью и конкуренцией при многопоточности.

Звучит так, как будто вы нт разу не писали на Раст.

Интересно, а почему в статье обойдён вопрос использования Форт (Forth) языка для программирования научного оборудования т.к. и для него есть и аппаратные процессоры.


Forth in Space Applications


Сейчас самой странички http://forth.gsfc.nasa.gov/ на сайте нет, но в Веб архиве она сохранена.
(странно, что даже в каких то репозиториях от Nasa сей факт наличия Форт кода не стал публичным и зачем то была удалена даже официальная страница с сайта)


Чужие: странная архитектура инопланетных компьютеров


P.S. Стековые процессоры есть и у России и Беларуссии, но используются ли они в Космосе
публичных сведений нет.

Intel 8085 (или аналоги), 2006 год

assembly language

На примере "Вояджеров" - идеальный вариант.

Назвать Ada, разработанный в 1980 году, "одним из старейших языков" и не упомянуть возраст созданного на 10 лет раньше C, по меньшей мере странно.

Не надо вводить людей в заблуждение, я видел рекламу в ютубе - "I want to work for NASA, so I'm learning Javascript, Python and React", полгода её крутили, реклама не врет!

в космос ты это не отправишь

слишком до хрена кода, корректность которого никак не верифицируешь

Хосспадя. Ну закопайте вы уже стюардессу с именем "ДУРАКОН".
Графит-Флокс — система с использованием оного "инструмента" — держится только и исключительно потому, что есть еще несколько одногодков Паронджанова, и только им он и нужен. И поэтому — писали уже то-ли на oberon.su, то-ли на хабре — разрабами используется "на отвали", "чтобы старперы отвязались". А в работе используют нормальные современные IDE.


При помощи этой среды можно видеть всё, что происходит и работает, на одном экране.

при помощи этой, хм, ~~студенческой поделки ~~ "среды" видеть кроме статических картинок ничего нельзя.

Типа вот бы ещё рассказывали какие российские ИТ-продукты юзают. Все три Труконф)

Интересный документ попался: https://epizodsspace.airbase.ru/bibl/vestnik-lavochkina/2016/2016-1.pdf
48 стр - " Основные принципы построения программной системы подготовки и функционирования блока управления и специализированного языка программирования "

> ПО для Центра принятия решений миссии Аполлон-11. Основная часть кода написана на языках С и С++. Разобраться в коде будет гораздо проще, чем в Ассемблере.

Apollo 11 это 1969, C даже в проекте не было, хотя автор вероятно не в курсе, предшественник ada jovial не упомянут, что характеризует уровень статьи

Со слов автора, он есть на хабре. https://pl1.su/question/

Используется ли сейчас этот компилятор?

Да, с успехом используется в РКК «Энергия». Например, на Российском сегменте МКС на лэптопах (ноутбуках) экипажа постоянно запущена программа, информирующая экипаж о полетной обстановке. Экраны с этой программой часто попадает в кадры хроники с МКС. Она создана с помощью данного компилятора и в данный момент продолжает развиваться.

Что касается Ada, этот язык применялся для управления объектами в режиме реального времени. Но чуть позже стали использовать более современные  С, С++ и Perl. 

очень хотелось бы посмотреть на систему реального времени, писанную на Перле. Сколь угодно мягкую.

Роскосмос использует для запуска космических кораблей ДРАКОНа.

Блин, звучит как строка из фэнтези. :)

В этой организации код ещё пару десятков лет назад писался почти исключительно на ассемблере, поскольку и чипы с рядом компонентов были не самые новые. Так, например, в 2006 году миссии THEMIS и STEREO работали на базе процессоров Intel 8085, выпущенных ещё в 1976 году.
Степень новизны чипов не объясняет, почему нельзя было использовать кросс-компиляцию, например, с Си? Разве что сами программы настолько примитивны, что решили не тратить время на инструментарий.

Я также не понимаю, почему упоминание ассемблера процессора Intel 8085 автор статьи проиллюстрировал ассемблерным кодом процессора MOS 6502

А ещё Дружелюбный Русский Алгоритмический язык иллюстрирован не по русски.

Говоря о языке С, в статье следовало упомянуть его версию для ответственных применений MISRA C, к которым относится и аэрокосмическая отрасль.

Википедия сообщает, что MISRA C – это не версия языка Си, а набор рекомендаций (правил) по программированию на Си.

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.