Програмиране в космоса

Автор: Гергана Карабельова

На 20 юли 1969 година света притаява дъх, вперил очи в небето и в телевизионния екран. На тази дата се случва едно историческо събитие от голяма висота, което се излъчва в глобален мащаб – за първи път човешки крак стъпва на Луната. Нийл Армстронг и Бъз Олдрин остават в историята.

На 26 ноември 2011 година NASA изпраща марсохода „Curiosity“ (дир. превод – любопитство), за да роувъра да събере данни и да проучи редица фактори на Марс. Този полет отнема 253 дни, години внимателно плануване и денонощна подготовка.

На 7 март 2020 година, след 51 години на различни космически подвизи, света отново притаява дъх с погед към небесата и, разбира се – телевизионните екрани. Случва се поредното събитие с висока важност и исторически фактор – за първи път частна компания изпраща хора в космоса, най-вероятно бележейки нова ера, в която не само тесен кръг учени и милиардери могат да си позволят разходка до Луната или до Международната космическа станция. 

Не всеки човек си дава сметка, че тези космически полети биха били невъзможни без машините, които ги осъществяват чисто физически. А пък тези машини (нещо, за което мислят още по-малко хора) не биха могли да излетят дори само на височината на обикновените пътнически самолети, ако не бяха много прецизно и правилно програмирани. 

Програмирането на сложните системи и уреди, необходими за пилотиране в космоса, не се случва на произволни или популярни в момента езици за програмиране като C# или Java. Често дори, това се случва на почти мъртви и неизползваеми за масови цели езици за програмиране. Да проследим някои от тях.

Един от най-често използваните езици за програмиране в космическите полети се казва HAL/S. “HAL/S е език за програмиране от високо ниво, поръчан за разработка от NASA в края на 60-те години. По това време програмите, използвани на борда на космическите апарати, са били написани или на асемблерни езици (сложни за разбиране, сложни за писане, близки до машинния код – само нули и единици, бел. авт.), или на интерпретирани езици (такива, които нямат нужда от интерпретатор, бел. авт.). Първите правят програмите трудни за писане и поддръжка, а вторите са недостатъчно стабилни и бавни.” [1] Тези причини са наложили използването на HAL/S при програмирането на системите на космическите кораби на NASA. “HAL/S езикът осигурява прости и интуитивни конструкции за функции, които обикновено са необходими и се изпълняват от аерокосмическите програмни приложения като аритметика, работа с вектори, както и матрици.” [2] В повечето езици за програмиране съществуват различни сложни конструкции (като „GOTO“ например), които “NASA смятат за симптоматични за ненадеждния софтуер”[3]. Те просто могат да превърнат един иначе елементарен и работещ код в така наречения „спагети код“, или казано по друг начин – толкова объркан код, че е невъзможно неговото проследяване или поправяне. Тези конструкции специално се премахват от езика HAL/S, за да той да бъде съвършен за нуждите на космическата агенция. До ден днешен близо 85% от космическите кораби на NASA използват по един или друг начин езика за програмиране HAL/S. Пример за космически апарат, използващ езика, е автономния Галилео, който е изстрелян през 1989 година, за да през 1995 година да достигне орбитата на Юпитер и да изследва тази интересна планета от нашата слънчева система. 

Цялата статия, както и много други, можете да прочетете в новият Брой 137 на списанието>>  

Издаваме вече 15 г. онлайн списание, което цели да покаже красотата на знанието. Стремим се с всеки брой да покажем най-новото в науката и да имаме нови български учени-автори, които да ви покажат своята работа чрез достъпно написани статии. В този брой има около 8 авторски статии, които са актуални, интересни и вярвам ще останат дълго в съзнанието ви, а някои от вас дори ще разказват прочетеното.

Важно е да отбележа, че от този брой абонамента става 49 лв. за година и 4,50 лв. за периодично плащане месец за месец. Също така вече може да четете списанието в е-четец – формати ePub и mobi, като запазваме PDF-a и дори в момента работим да бъде още по-добре изглеждащ. Може да видите демо на този брой по-долу.

Вижте този и всички предишни броеве, важно е да се знае!



2021-02-22 09:50:14

Програмиране в космоса