Меню

Космос программирование 2 уровень

Программисты из SpaceX отвечают на вопросы про разработку

На Reddit есть инте­рес­ный тред, где про­грам­ми­сты из SpaceX отве­ча­ют на любые вопро­сы поль­зо­ва­те­лей. SpaceX — это та ком­па­ния, кото­рая постро­и­ла раке­ты Falcon и кораб­ли серии Dragon, а совсем недав­но запу­сти­ла пер­вый в сво­ей исто­рии пило­ти­ру­е­мый корабль с экипажем.

Вот они собра­лись на Reddit, что­бы поот­ве­чать на вопро­сы, а мы пере­ве­ли самое важ­ное. Если вы зна­е­те англий­ский — почи­тай­те в ори­ги­на­ле, там мно­го инте­рес­но­го.

На каком языке написана большая часть кода для ракет и корабля?

Весь софт, кото­рый дол­жен рабо­тать авто­ном­но, напи­сан на C++. Нам нра­вит­ся объектно-ориентированный под­ход в C++, но при этом мы ста­ра­ем­ся писать настоль­ко про­стой код, насколь­ко это вооб­ще воз­мож­но. Ещё мы исполь­зу­ем несколь­ко биб­лио­тек с откры­тым исход­ным кодом, но у нас очень жёст­кие тре­бо­ва­ния к их каче­ству, поэто­му нам про­ще напи­сать свои биб­лио­те­ки, где мы точ­но уве­ре­ны в каче­стве кода.

Расскажите о своём стеке

Весь софт, кото­рый отве­ча­ет за сам полёт, мы пишем на C и C++, для выво­да инфор­ма­ции на экра­ны мы исполь­зу­ем HTML, JavaScript и CSS. Python нам нужен для тестов. А ещё мы исполь­зу­ем стан­дарт­ные веб-компоненты. Всё просто.

Мы знаем, что весь интерфейс на мониторах в Crew Dragon отображается с помощью движка Chromium и JavaScript. А кроме этого вы используете какие-то библиотеки и компоненты, и если да — то какие?

Да, мы исполь­зу­ем тот же Chromium, кото­рый лежит в осно­ве бра­у­зе­ра Chrome, ещё есть соб­ствен­ные биб­лио­те­ки. При этом важ­но пони­мать, что мы исполь­зу­ем Chromium толь­ко как дви­жок для отоб­ра­же­ния интер­фей­са на экра­нах. То, что мы выво­дим на мони­то­ры, никак не вли­я­ет на сам полёт и отка­зо­устой­чи­вость системы.

Тем не менее у нас один и тот же про­цесс раз­ра­бот­ки любо­го кода, неза­ви­си­мо от его при­ме­не­ния и язы­ка про­грам­ми­ро­ва­ния. Мы парал­лель­но учим наших раз­ра­бот­чи­ков писать код для дви­га­те­ля на язы­ке C++ и при­дер­жи­вать­ся того же под­хо­да к надёж­но­сти во всех проектах.

Вооб­ще этот про­ект начи­нал­ся как симу­ля­тор полё­тов для NASA, что­бы пока­зать, как ещё может выгля­деть полёт­ный интер­фейс. Потом мы попро­бо­ва­ли запу­стить его на насто­я­щем обо­ру­до­ва­нии, кото­рое ста­вят в кос­ми­че­ские кораб­ли, и там наш интер­фейс тоже отлич­но работал.

Нам нра­вят­ся все эти шту­ки, кото­рые уме­ют совре­мен­ные бра­у­зе­ры, а ещё у нас рабо­та­ет мно­го талант­ли­вых ребят. Мы не боим­ся делать что-то новое — нам нра­вит­ся быть пер­вы­ми в чём-то, даже если это не соот­вет­ству­ет стан­дар­там в отрасли.

Как работает система безопасности полёта?

За эту систе­му отве­ча­ет спе­ци­аль­ный набор чипов, кото­рый рабо­та­ет неза­ви­си­мо от основ­но­го ком­пью­те­ра. Эти чипы напря­мую полу­ча­ют и сиг­на­лы с основ­ных дат­чи­ков, и дан­ные с бор­то­во­го ком­пью­те­ра. Если они пой­мут, что раке­та летит не туда, теря­ет ско­рость или будет что-то подоб­ное, то эта систе­ма сра­зу закон­чит полёт и поста­ра­ет­ся поса­дить раке­ту на Землю.

Как вы отслеживаете и исправляете ошибки, которые возникают во время полёта?

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

Что будет, если во время полёта что-то пойдёт не по плану — например, если откажут двигатели или что-то подобное?

Что­бы исклю­чить любую непред­ви­ден­ную ситу­а­цию, мы почти всё, что мож­но, ста­вим в трой­ном объ­ё­ме — дат­чи­ки, при­во­ды, мик­ро­схе­мы и всё осталь­ное. Даже если в полё­те сло­ма­ет­ся один или даже два из них, систе­ма будет рабо­тать как обычно.

Наши кос­ми­че­ские кораб­ли спро­ек­ти­ро­ва­ны так, что им не стра­шен даже отказ одно­го из дви­га­те­лей или меха­низ­мов управ­ле­ния — их ком­пен­си­ру­ют алго­рит­мы, кото­рые пере­рас­пре­де­лят нагруз­ку. Кро­ме того, у нас есть отдель­ные алго­рит­мы для обра­бот­ки дей­стви­тель­но кри­ти­че­ских ситу­а­ций. Напри­мер, Crew Dragon может сам пре­рвать полёт и при­зем­лить­ся обрат­но, если сбой в рабо­те будет слиш­ком большим.

SpaceX использует искусственный интеллект внутри своего ПО?

Нет, искус­ствен­но­го интел­лек­та у нас нет. Вме­сто это­го корабль исполь­зу­ет алго­рит­мы ком­пью­тер­но­го зре­ния и рас­по­зна­ва­ния, напри­мер, для ори­ен­та­ции в про­стран­стве. Но кто зна­ет, воз­мож­но, в новых кос­ми­че­ских кораб­лях мы поста­вим искус­ствен­ный интел­лект, что­бы он ими управлял 🙂

Если я ещё учусь в школе, что мне нужно сделать, чтобы когда-нибудь прийти к вам работать программистом?

Полу­чи­те про­филь­ное обра­зо­ва­ние или по-настоящему заин­те­ре­суй­тесь ком­пью­те­ра­ми. Най­ди­те вре­мя, что­бы разо­брать­ся в том, как всё рабо­та­ет. Наши инже­не­ры, кото­рые рабо­та­ют в SpaceX, отлич­но раз­би­ра­ют­ся в том, как рабо­та­ет их код, как устро­е­на сеть, зачем нужен Linux, раз­би­ра­ют­ся в желе­зе и так далее. Отлич­ный вари­ант — лич­ные про­ек­ты или ста­жи­ров­ки в круп­ных ком­па­ни­ях, что­бы полу­чить опыт созда­ния ново­го и реше­ния слож­ных проблем.

А вооб­ще что­бы раз­ра­ба­ты­вать ПО, нуж­но сосре­до­то­чить­ся на двух важ­ных вещах:

  • алго­рит­мы и струк­ту­ры данных;
  • пони­ма­ние того, как ком­пью­тер рабо­та­ет на самых низ­ких уровнях.

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

Какую версию Linux вы используете?

Мы не исполь­зу­ем обыч­ные вер­сии Linux — мы взя­ли само ядро и немно­го пере­де­ла­ли его под себя, что­бы полу­чить луч­шую про­из­во­ди­тель­ность в режи­ме реаль­но­го вре­ме­ни. Мы года­ми допи­ли­ва­ли ядро, но это были очень малень­кие изме­не­ния — строч­ка кода там, две тут. Един­ствен­ное гло­баль­ное изме­не­ние — мы встро­и­ли в него свои драй­ве­ра для желе­за, что­бы рабо­тать с ним напрямую.

Что за процессор стоит в Crew Dragon? Я понимаю, что там их много из-за требований надёжности, но всё-таки? Он мощнее, чем, скажем, Intel i9 9900k?

Мы исполь­зу­ем рас­пре­де­лён­ный четы­рёхя­дер­ный про­цес­сор с про­из­во­ди­тель­но­стью как у теле­фо­на пяти­лет­ней давности 🙂

Читайте также:  Космос прямой эфир со спутника наса

Приведите пример нестандартной ситуации, которую нужно предусмотреть вам как разработчикам

О, класс­ный вопрос. Вооб­ще нам нуж­но преду­смот­реть всё 🙂

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

Или это может быть одно­вре­мен­ный отказ несколь­ких под­си­стем, кото­рые отве­ча­ют за нави­га­цию, связь, жиз­не­обес­пе­че­ние и дви­га­те­ли. Отлич­ный при­мер — ката­пуль­ти­ро­ва­ние или пожар в кабине. За очень корот­кое вре­мя посту­па­ет мно­го раз­ных сиг­на­лов со всех дат­чи­ков, кото­рые нуж­но как-то одно­вре­мен­но обра­бо­тать и при­нять пра­виль­ное решение.

Источник

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

12 апреля весь мир традиционно празднует День космонавтики, в связи с этим мы хотели бы рассказать вам что-нибудь интересное о космосе с точки зрения программирования. Мало кто задумывается о программистах, когда наблюдает за очередным запуском ракеты. Ещё меньше людей думают о языках программирования, благодаря которым вся эта техника вообще взлетает (не учитывая двигатели и корпус).

Как программируется отечественный космос?

С чего началась история программирования в отечественной космонавтике?

Когда началась холодная война между СССР и США, тогда началось и создание «Бурана» — орбитального многоразового космического корабля. В те 70-е годы вычислительная техника была очень слабой и программистам приходилось работать примерно со следующими мощностями:

  • 4МГц;
  • 128 КБайт оперативной памяти;
  • 16 КБайт постоянной программной памяти.

Как вы понимаете, программировать что-либо на этом сложно, а тем более для такой техники. Кроме того, надо было повышать производительность программистов, как и их численность. Поэтому ассемблер тут точно не подошёл бы. Тогда исследователи из разных институтов объединились и начали создавать собственные средства программирования специально для космолёта.

Что было создано:

  • ПРОЛ2 — язык для разработки комплексных бортовых программ в реальном времени;
  • ДИПОЛЬ — проблемно-ориентированный язык для создания программ для наземных испытаний;
  • ЛАКС — язык для моделирования;
  • САПО — система отладки и автоматизации процесса программирования;
  • БЦВМ — бортовая цифровая вычислительная машина;
  • Пролог-диспетчер — операционная система для взаимодействия с БЦВМ.

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

Изображение «Бурана», поднимаемого ракетой в космос.

Роскосмос

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

В ДРАКОНе учёные РАН реализовали все лучшие стороны таких узконаправленных языков, как ПРОЛ2, ДИПОЛЬ и ЛАКС.

ДРАКОН применяется и в настоящее время в ракетоносителях Протон-М и иногда его используют [PDF] для тестов в Германском Аэрокосмическом Центре. Решение о продолжении использования языка приняли благодаря его надёжности и функциональности. Изначально создатели хотели, чтобы он был понятным не только для программистов, но и для людей других специальностей. И у создателей языка это получилось. ДРАКОН-схемы вполне удобны и читаемы для обычных людей. А программисты могут использовать гибриды, о которых было упомянуто выше. Создание такой технологии, конечно, не запуск первого человека в космос, но тем не менее, важное для отечественной науки событие. Что бы сейчас использовал Роскосмос для своих ракет? Кстати, ДРАКОН расшифровывается следующим образом: Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность.

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

Протон-М на старте

И ещё немного о ДРАКОНе

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

Пример реализации алгоритма Дейкстры с помощью ДРАКОНа

А как насчёт других отечественных компаний?

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

SpaceX

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

Читайте также:  Как рисуется космос с планетами

Falcon Heavy на взлёте

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

Заключение

После прочтения статьи, вы, возможно вдохновились тем, что программисты делали и делают сейчас в сфере космоса. Мы не хотим, чтобы у вас это вдохновение исчезло. Если вы ещё не пишите код, то предлагаем вам ознакомиться с нашей статьёй, в которой мы рассказываем о том, как быстрее начать программировать.

Источник

Alpha Centauri

Fr1Zz · SpaceX · 28 января, 2020 17239

На чём пишут ПО для космических аппаратов?

Предисловие

При обсуждении готовящихся к запуску или уже запущенных космических аппаратов, так или иначе мы обращаем внимание на то, каким образом эти аппараты работают. Зачастую такие обсуждения ограничиваются затрагиванием общей конструкции аппарата, установленных на него приборов или других модулей, служащих определённой цели. Мы всё время повторяем: «Инженеры установили то… Разработали это… Сконструировали другое», тем самым уделяя всё внимание им.

Конструкторы собирают Mars 2020 (Я голосовал за Clarity).

Однако, отдавая должное инженерам и конструкторам многие забывают, что даже со всем аппаратным обеспечением, модулями, приборами и т.д. и т.п., аппарат не будет выполнять свои функции без программного обеспечения, которое, как правило, создаёт другая группа людей — программисты. Если железяки являются телом аппарата, то ПО является его интеллектом, оно вдыхает жизнь в эту груду металла, позволяет людям управлять ей, даже находясь на другом конце Солнечной системы. Как говорил мой преподаватель по программированию… Магия! Не вникая в суть невозможно понять масштаб работы, которую нужно проделать для реализации этой «магии», однако каждый, кто в изучении программирования уходил хотя-бы на несколько ступеней выше знаменитого «Hello World!», понимает, что это неимоверный труд. Поэтому я и решил затронуть эту тему и ниже я вкратце распишу какие языки и методы программирования используют в различных космических компаниях, а именно в NASA, SpaceX и Роскосмосе, и как эти языки менялись, меняя за собой всю отрасль.

Как кодят в NASA?

История этого ведомства, скорее всего, является самой необычной и насыщенной уймой странностей и необъяснимых вещей. Именно поэтому раздел о нём будет самым длинным. Дело в том, что в NASA не особо любят заниматься переписыванием одного и того же кода от миссии к миссии и часто там практикуется повторное использование компонентов кода, успешно зарекомендовавших себя в предыдущих миссиях. Казалось бы, это правильное решение и в целом с этим нельзя не согласиться. Это увеличивает надёжность будущего аппарата и сокращает время разработки ПО под него. Однако вот незадача… Технологии идут вперёд. И код, подходящий для одной архитектуры, нужно переделывать, чтобы он заработал на более новой. Делать это, конечно, никто не торопился. Именно поэтому миссии THEMIS и STEREO, запущенные в 2007 и 2006 годах соответственно, работали с использованием модулей от предыдущих миссий на процессорах Intel 8085, выпущенных ещё в 1976 году. Код для них очевидно писался на машинно-ориентированных языках по типу Ассемблера. Простым для чтения, а уж и для переноса на другие системы, такой код точно не назовёшь, однако его использование невероятно сильно ускоряло работу ПО. Команды обращаются к процессору как бы напрямую, без посредников.

Одна и та же программа на Ассемблере и многим известном Паскале.

Естественно, что в то время уже существовали языки и более высокого уровня, тот же Fortran. Однако использовался он не так активно и преимущественно для компьютеров, которые будут находиться на Земле, а не в полёте. К тому же, просто использовать Fortran тогдашнее руководство не захотело и во время раскрутки программы Space Shuttle в 70-ые года было принято решение разработать на основе Fortran новый язык программирования, отвечающий новым требованиям стандартов, которые так были необходимы для упорядочивания всей накопившейся к тому времени кодовой каши. Было решено разработать два языка: HEL/S для ПО космических аппаратов, и HEL/G для наземного оборудования. Однако с HEL/S создатели явно перемудрили, сделав код абсолютно не читабельным даже для программиста выше среднего уровня. Вот простейший пример.

И вот что под ним имеется в виду (i — индекс):

Вот уж где точно магией не пахнет. Таким образом, язык HEL/S был оставлен в прошлом, а HEL/G даже не появился на свет. В итоге NASA начало временно использовать язык программирования Ada, разработанный до этого под нужды ВВС США. Изначально он использовался для управления военными объектами, снарядами, самолётами, кораблями и другими безделушками в реальном времени. Как вы уже могли догадаться, единственным языком в NASA он не стал. Всё также кто-то где-то использовал Fortran, кто-то Pascal, а кто-то вообще Visual Basic или Bliss. Ко всей этой солянке в начале нулевых добавились знаменитые С, С++ и Perl. Стали, наконец, появляться операционные системы в привычном нам понимании. К слову, многие аппараты до этого вообще путешествовали по космическим просторам без каких либо операционных систем (Пионер вам в пример). Таким образом приоритет захватил быстрый и удобный язык С. Именно на нём сейчас работает большая часть космических аппаратов, в том числе всем известный любимчик — марсоход Curiosity. Под роверы на С была написана универсальная операционная система VxWorks. Все марсоходы начиная от Pathfinder и заканчивая Curiosity работают на ней.

Читайте также:  Катастрофы связанные с космосом

С триумфом С солянка языков программирования никуда не делась и для разных миссий/задач всё ещё используются различные языки, в том числе обожаемый многими нынче Python. Никуда так и не делся кошмар любого любителя ООП (объективно ориентированное программирование) — Ассемблер. Кстати таким же, как я, фанатам языков по типу Java или C#, работающих с помощью виртуальной машины, в космическом программировании ловить нечего, ибо слишком большое время отклика у таких программ для космических расстояний. Ну зато программа, написанная на утюг, будет работать и на Tesla.

Как кодят в SpaceX?

Если NASA — это ваш 60-летний сосед, пользующийся кнопочным телефоном, время от времени читающий газеты (те самые, бумажные) и прогуливающийся до рынка, чтобы прикупить себе что-нибудь модное, то SpaceX — это молодой паренёк со смартфоном в руках, в котором есть всё, начиная от звонков и новостей, заканчивая интернет магазинами с доставкой. Компания Илона Маска также использует несколько языков программирования, однако их в разы меньше, чем у NASA и все они являются современными высокоуровневыми языками, код которых на минимальном уровне, в принципе, может прочитать даже тот, кто ни разу не знакомился с программированием.

Красота же, правда?

Для программного обеспечения на всех ракетах серии Falcon, на всех кораблях Dragon используется шикарнейший язык С++, который какое-то время в универе я считал идеальным языком программирования (пока не познакомился с Java). Язык максимально универсален и, плюс ко всему, относительно машинных языков прост в изучении. На нём пишут практически всех современных роботов, все системы дистанционного управления и всё, что только можно. По заявлениям сотрудников SpaceX, этот язык занимает основную позицию, среди всех других языков в компании. Своё место нашли C# и JavaScript. На них работают большая часть внутренних инструментов и услуг компании. Например кофеварка в кабинете Илона Маска, вероятнее всего, работает на C# (если она у него есть). Для других технологических задач также используются Knockout, Handlebars, Python, LESS. Моделирование же проводится в LabVIEW с помощью графического языка программирования G. Из операционных систем же для своих аппаратов, SpaceX отдали предпочтение Linux.

В общем, у SpaceX, в отличие от тех же NASA, с разработкой ПО всё намного проще и практичнее. Но всё же стоит учесть через что пришлось пройти NASA, перед тем как появились современные языки программирования и этот путь не может не сказываться на нынешних делах этого ведомства. SpaceX же фактически пришли в идеальный момент, когда все трудности за них уже преодолело NASA и сильно запариваться с машинными языками программирования команде Илона не пришлось, когда уже есть С++.

Как кодят в Роскосмосе?

«С? С++? Что за бред? Какой-то набор скобочек и запятых? Зачем нам это?» — подумали российские инженеры, когда эти языки начали появляться на свет. И правильно сделали. Ведь ещё в СССР был разработан универсальный способ писать ПО для ракет и космических кораблей. Всё началось с разработки всемирно известного Бурана.

В представлении не нуждается.

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

Алгоритм Дейкстры реализованный на ДРАКОН’е.

Но на этом его создатели решили не останавливаться. Всё-таки одними схемами сыт не будешь и ДРАКОН стал гибридным языком программирования, что значит, что он способен как-бы сливаться с другими языками программирования, образуя таким образом ДРАКОН-Java, ДРАКОН-Python и так далее. Вот это я понимаю магия. Язык оказался настолько надёжным и мощным, что используется он и по сегодняшний день, причём не только в Роскосмосе. Некоторые проекты ESA реализованы на нём, планируемый в будущем «Морской старт» от S7 тоже будет реализован на ДРАКОН’е.

По мелочи, конечно, использовались и другие языки программирования. Мой преподаватель (тот что шутил про магию), рассказывал как для разработки ПО серии аппаратов «Венера» использовался язык Fortran, однако основой после Бурана всё же остался максимально универсальный ДРАКОН.

Конец

На этом всё, спасибо всем, кто дочитал до конца. Буду рад любым отзывам и оценкам.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Adblock
detector