Мова складання використовується в системі літальних апаратів


9

Сьогодні мій викладач зазначив, що система літаків програмується мовою складання через те, що програма, написана, має менше помилок. Чи правдиве це твердження? Тому що, коли він запитав про нашу думку, я сказав, що складання може створити більш швидку програму, тому це є гарною мовою для програмно-орієнтованих в режимі реального часу літальних апаратів. Я шукаю Google, але не можу знайти статтю, що роз'яснює заяву мого лектора.


24
Або ви неправильно зрозуміли свого лектора, або ваш лектор - ідіот.
Пол Р

3
Ви не хочете писати в зборі програмне забезпечення для управління критичним обладнанням. Є набагато кращі мови для розробки програмного забезпечення в реальному часі та для критичної розробки програмного забезпечення.
CVn

5
Просто цікаво про вік вашого лектора. У всякому разі, він, можливо, лише намагався вказати, (нібито не вдалося, мабуть), що низка сучасних мов, наприклад, java, є поза межами (java це написано в супровідній ліцензії, btw) для літаків, пов'язаних з місією -критичні програми.
ZJR

1
@ZJR: Власне, німецький виробник БПЛА AFAIK використовує Java для системи управління польотом. Може, вони купили іншу ліцензію?
Йорг W Міттаг

1
@ JörgWMittag: БПЛА може бути вбитим людей іншими методами, але "U" означає збій управління польотом, це означає, що це не відразу загрожує життю людини. Ліцензія Java говорить, що вона не підходить для критично важливих систем, але це не заважає нікому робити такий вибір.
DaveE

Відповіді:


29

Заява вашого викладача є помилковою. Joint Strike Fighter код управління «s написана на C ++. 777 від Boeing використовує 99% + ADA . JPL використовує переважно C для керування космічними кораблями.

Я впевнений, що є більше прикладів, але я підозрюю, що багато є власником або класифікуються.

Ось документ, який детально розглядає тему програмного забезпечення авіоніки на більш загальному рівні.


У деяких проектах NASA в минулому також використовувались діалект Ліспа. Німецький виробник БПЛА навіть використовує Java.
Йорг W Міттаг

Нещодавно переписувались бомбардувальники B2 у C. Джерело: tech.slashdot.org/story/08/07/14/1934228/…
користувач16764

Ще в темні віки (на початку 1980-х років) F-16A / B використовував мову складання для набору магазинів управління і JOVIAL J3B для комп’ютера Firecontrol. F-16C / D використовував JOVIAL J73 для всього протягом перших кількох блоків, і я вважаю, що вони перейшли на Ада в наступні роки. Я не знаю, що вони сьогодні використовують.
Джон Р. Стром

5

Я працюю над OBOGS, який є компонентом, який потрапляє в різні літаки. Зазвичай ми використовуємо C для пристроїв, що літають, але, переглядаючи історичні файли, є кілька проектів складання.

Це мода, чесно кажучи. Мови піднімаються і падають. Причини, якими люди користуються тим чи іншим, різняться в усьому світі і є переважно суб'єктивними. Я вважаю цілком правдоподібним те, що хтось в якийсь момент стверджував, що збірка - це правильний вибір для якогось проекту десь цілком, оскільки вона матиме менше помилок, ніж будь-яка інша мова. І він, мабуть, мав рацію, але це тому, що хлопець не знав, як кодувати в C вартій чортів. На сьогоднішній день найкраща мова для роботи - це та, яку ви знаєте. (І найкраща мова для вашого особистого зростання - це та, яку ви не знаєте.)

Ви можете об'єктивно сказати, що збірка ближче до апаратних засобів, менш абстрагована, більш пряма, з більшою кількістю інструкцій до тієї ж речі в інших мовах. Можна навіть сказати, що саме в цій царині можливих можливостей скласти збірку, щоб вирізати накладні витрати і швидко палити. Якщо ти знаєш, що ти робиш. А як щодо схильності до помилок, швидкості розвитку, читабельності та здатності вилікувати рак? Все, що залежить від можливостей програміста і того, над чим вони працювали протягом останніх 20 років. Вимірювання яких проектів, з якими мова має X кількість помилок, підлягають соціологічним факторам, значною мірою роблячи їх нікчемними показниками. Ні, це все просто так багато моди.

Добре знати, на що зводиться ваш код, тому я хочу сказати, що важливо навчитися складання. Якби трохи. Але я б не писав у ньому жодної авіоніки.


1
Зрештою, написання складання означає менше машинного коду в цілому, якщо ви знаєте, що ви робите, і ви майже точно знаєте, як буде виглядати отриманий машинний код; вам не доведеться довіряти компілятору, щоб зрозуміти його правильно.
Хоукен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.