На чем пишется софт для КА?

Автор hudvin, 06.05.2009 15:28:09

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

Туман Андромедов

ЦитироватьНесмотря на примитивность языка.

1. Этот язык не примитивен. Он (а вернее его специальные версии - "технологические трансляторы") очень удобен для написания реальных систем управления техническими объектами. Когда операндами являются исполнительные органы, а логика построена на Булевой алгебре.
2. Надо различать несколько принципиально разных задач "написания программ для КА", вот основые из них:
- наведение и навигация (баллистические вычисления на борту)
- "развёртывание" циклограммы конкретного участка полёта
- управление отдельными системами с собственной логикой и обратной связью:  ориентация, регилирование соотношения компонентов и т.д. и т.п.
- управление конкретными исполнительными органами и механизмами (включить-выключить, повернуть, открыть-закрыть  и т.д. и т.п.)

для всех этих задач используются различные инструменты как собственно программирования, так и загрузки (почему-то прижилось это слово) ПО в память разнообразных вычислительных средств и устройств на борту КА. Ну и в добавок не забываем, что отдельные системы КА производятся различными организациями, в том числе, расположенными в разных странах.

yos

ЦитироватьВсе ити попытки формализации тихонько зачахли еще лет 20 назад. Вместе с попытками написать ИИ. Язык программирования роли не играет. Так же как и язык общения. Написание программы - это правильный подбор кадров и правильная организация техпроцесса.
Извините, но вы просто не в курсе. С помощью формальных методов создаётся реальное ПО и работы в этой области ведутся.
Другое дело, что внедрить формальные методы в массы действительно не удалось и они используются в основном в специальных областях: космос, авиация, транспорт. А в академических кругах (в коих сейчас я, оттуда и знания предмета) ничего не зачахло.

yos

Цитировать[Надо различать несколько принципиально разных задач "написания программ для КА", вот основые из них: ...
Это всё управление железяками. А самое главное это функция КА. Самое главное, это чтобы вычисления в Ураганх были правильными, чтобы "модуляция" цифрового сигнала в КА связи была правильной, чтобы протоколы связи были без ошибок, чтобы не "висли" паралельные программы и т.д. Вот это основные цели формальных методов в программировании (КА).

Вадим Семенов

ЦитироватьПопытки формализации (написать программу которая пишет программу) уперлась в ту же проблему что и "генераторы текстов" - "Война и Мир" никак не получается. Пиши хоть в машинных кодах хоть на чем то прологообразном - принципы в основе те же.
Ну так этого и не требуется. Программу пусть человек пишет. Требуется максимально автоматизированным образом проверить, что программа соотвествует спецификации. А для этого нужно как минимум иметь средства выразить эту спецификацию на языке программирования. К сожалению, существующие языки програмирования не позволяют выразить даже такие простые вещи как "указатель не может быть нулем" или "переменная может принимать такой-то диапазон занчений"

ЦитироватьТочно так же как ученые и инженеры могут делать свое дело на русском, китайском, английскои м тд. Попытки в свое время создать суперязык общения разбились о ту же проблему - не в языке дело.
Никто и не предлагает разрабатывать суперязык. Есть разные прикладные области и в каждой тот или иной язык может быть более или менее адекватен. Как и вообще для каждой задачи наиболее подходит свой инструмент. К сожалению, подходящего языка для высоконадежного программирования пока нет. А то, что и отверткой теоретически можно забить гвоздь сомнений нет. Но молотком это делать намного эффективнее.
Гипотеза о боге дает ни с чем не сравнимую возможность абсолютно все понять, абсолютно ничего не узнавая.
А. и Б. Стругацкие "Пикник на обочине".

KBOB

Цитировать
Цитировать
ЦитироватьВсе ити попытки формализации тихонько зачахли еще лет 20 назад. Вместе с попытками написать ИИ. Язык программирования роли не играет. Так же как и язык общения. Написание программы - это правильный подбор кадров и правильная организация техпроцесса.
Да, к сожалению, дело пошло по пути грубой силы, увеличения трудоемкости и стоимости, вместо устранения причин.
Причина в другом - из линейного выполнения, ветвления, цикла и разновидностей оных больше ничего не выжмешь. Попытки формализации (написать программу которая пишет программу) уперлась в ту же проблему что и "генераторы текстов" - "Война и Мир" никак не получается. Пиши хоть в машинных кодах хоть на чем то прологообразном - принципы в основе те же. Точно так же как ученые и инженеры могут делать свое дело на русском, китайском, английскои м тд. Попытки в свое время создать суперязык общения разбились о ту же проблему - не в языке дело.

Ну почему-же? Суперязыки существуют во всех областях. Например язык химических формул уже давно интернационален. Формулу спирта поймет химик любой национальности. Непоследнюю роль в создании языка химических формул сыграла организация IUPAC.
И вообще становление ЛЮБОЙ НАУКИ связано с возникновением какого-то специфического, присущего этой науке языка.
Програмирование в настоящий момент наукой не является, а представляет на мой взгляд, некую сумму технологий производства товаров массового потребления, то что некоторые из этих товаров становятся произведениями искуства ничего особо не меняет, единого языка в програмировании так до сих пор и нет, потому, что с точки зрения производства и потребления отсуствие научной основы с ее специфическим языком не является проблеммой вообще.
C другой стороны программы для КА не являются предметом массового потребления их главная роль - делегирование отвественности. Отвественность оператора дистанционно управляющего КА частично или полностью делегирована копьютерной программе. Можно думать, что делегирование отвествености программе подразумевает наложение этой отвественности  только на програмистов, тестировщиков и их менеджеров, но это не так! В тех случаях когда цена ошибки копьютерной программы высока т.е. измеряется миллиардами долларов, есть желание делегировать отвественность на более широкий круг лиц!
Действительно в чем может быть виновать программист, чей программный код привел к сбою в работе КА ценой миллиарды долларов, если человечество до сих пор не изобрело универсальный язык программирования? Не вольно чуствуешь себя отвественным!
Интересная ситуация возникает, когда мы хотим делегировать отвественность на компьютерную программу как таковую! Очевидно это означает, что компьютерная программа должна быть настолько сложной, что могла бы самостоятельно осознавать всю отвественность которая возложена на нее! Коротко это называется искуственный интелект.
Россия больше чем Плутон.

Not

Вы меня конечно извините, но порете жуткую чушь.  :D
ЦитироватьЯзык программирования роли не играет. Так же как и язык общения. Написание программы - это правильный подбор кадров и правильная организация техпроцесса.
Правда что ли язык не важен? Ну давайте, пишите программу реального времени на Прологе. Как надоест бороться с недетерминированностью времени выполнения операторов - вернемся к разговору. Касательно же персонала и техпроцесса - ну да, это важно. Равно как и наличие электричества и освещения.
ЦитироватьПричина в другом - из линейного выполнения, ветвления, цикла и разновидностей оных больше ничего не выжмешь.
А много можно выжать из языка, скажем топологических преобразований? А ведь выжимали, выжимают и будут выжимать новое. Может в консерватории что-то поменять?  :D
ЦитироватьПопытки формализации (написать программу которая пишет программу) уперлась в ту же проблему что и "генераторы текстов" - "Война и Мир" никак не получается.
Да не нужна "Война и мир", нужна надежная программа среднего уровня. И никто вас не просит сгенерировать программу из ТЗ. В большинстве случаев достаточно уметь генерировать ее из корректного формального описания. Пример - генерация программы лексического -  синтаксического разбора из формальной грамматики.

ЦитироватьПиши хоть в машинных кодах хоть на чем то прологообразном - принципы в основе те же.
Ухохочешься. Вы действительно считатаете, что декларативное и процедурное программирование используют общие принципы?

ЦитироватьПрограмирование в настоящий момент наукой не является, а представляет на мой взгляд, некую сумму технологий производства товаров массового потребления
Вы батенька вообще специалист в этой области, чтобы так безаппеляционно программирование к ногтю пришпиливать? Вы про науку информатику слышали? Она же Computer Science. Это во-первых. Во-вторых, программирование тесно сплетается с мат. логикой, алгеброй и многими другими разделами математики. Безусловно, "программирование" можно понимать по-разному. Это и наука (почитайте например книжку "Теоретическое программирование" Ершова, или труды Кнута), это и инженерия - разработка больших проектов, это и кодирование - вот тут да,  особой науки не требуется. Но ведь то же самое присутствует и в других областях. Создание машины - это и материаловедение, механика, сопромат (науки), и инженерия - проектирование, расчет прочности  и собственно работа напильником. Вы видимо про напильник рассуждаете?  :D


Цитироватьединого языка в програмировании так до сих пор и нет, потому, что с точки зрения производства и потребления отсуствие научной основы с ее специфическим языком не является проблеммой вообще.
Сами то поняли, что сказали?  :D Единого языка в программировании нет и не будет, точно так же как нет единого языка в математике. Для каждой математической задачи определяется свой язык, состоящий из строго определенных терминов и аксиом, и заключений, строго выведенных из этих аксиом.

ЦитироватьC другой стороны программы для КА не являются предметом массового потребления их главная роль - делегирование отвественности. Отвественность оператора дистанционно управляющего КА частично или полностью делегирована копьютерной программе. Можно думать, что делегирование отвествености программе подразумевает наложение этой отвественности  только на програмистов, тестировщиков и их менеджеров, но это не так! В тех случаях когда цена ошибки копьютерной программы высока т.е. измеряется миллиардами долларов, есть желание делегировать отвественность на более широкий круг лиц!
Действительно в чем может быть виновать программист, чей программный код привел к сбою в работе КА ценой миллиарды долларов, если человечество до сих пор не изобрело универсальный язык программирования? Не вольно чуствуешь себя отвественным!
Интересная ситуация возникает, когда мы хотим делегировать отвественность на компьютерную программу как таковую! Очевидно это означает, что компьютерная программа должна быть настолько сложной, что могла бы самостоятельно осознавать всю отвественность которая возложена на нее! Коротко это называется искуственный интелект.
Простите, конечно, но я в ваших "логических" построениях ни искусственного интеллекта не вижу, ни естественного  :D

KBOB

Цитировать
ЦитироватьПрограмирование в настоящий момент наукой не является, а представляет на мой взгляд, некую сумму технологий производства товаров массового потребления
Вы батенька вообще специалист в этой области, чтобы так безаппеляционно программирование к ногтю пришпиливать? Вы про науку информатику слышали?
Я даже слышал про научный Коммунизм и про продажную дефку капитализма - кибернетику.  :lol:
Мода бывает во всем. Модно стало последние 30 лет компьютерами баловаться - побалуются и перестанут.
Россия больше чем Плутон.

Дмитрий Виницкий

Это как? Вы перестали баловаться водопроводом? :D
+35797748398

KBOB

ЦитироватьЭто как? Вы перестали баловаться водопроводом? :D
Информатика это паровозостроение 21-го века.
Россия больше чем Плутон.

Дмитрий Виницкий

А что же является элекктровозом? Телепатия???
+35797748398

KBOB

ЦитироватьА что же является элекктровозом? Телепатия???
В 2029г увидим! (производительность суперкомпьютеров увиличивается в 1000 раз каждые 10-11 лет)
http://www.heise.de/english/newsticker/news/106017
Россия больше чем Плутон.

yos

ЦитироватьПрограмирование в настоящий момент наукой не является, а представляет на мой взгляд, некую сумму технологий производства товаров массового потребления, то что некоторые из этих товаров становятся произведениями искуства ничего особо не меняет, единого языка в програмировании так до сих пор и нет, потому, что с точки зрения производства и потребления отсуствие научной основы с ее специфическим языком не является проблеммой вообще.
Ндааа.... Программирование имеет О-Г-Р-О-М-Н-У-Ю теоретическую, самую настоящую научную базу, которая охватывает многие области математики и из-за которой возникли новые специальные области, которые называют теоретической информатикой.

Другое дело, что это не очень заметно ибо "средний" программист ничерта об этом не знает (и, обьективно говоря, оно ему и не нужно). А на самом деле, науки хотя-бы в языках программирования (только в их свойствах!) ооочень много. А ещё есть куча всяких других вещей из которых состоит информатика, за которыми стоят огромнейшие и разные теории.

KBOB

Цитировать
ЦитироватьПрограмирование в настоящий момент наукой не является, а представляет на мой взгляд, некую сумму технологий производства товаров массового потребления, то что некоторые из этих товаров становятся произведениями искуства ничего особо не меняет, единого языка в програмировании так до сих пор и нет, потому, что с точки зрения производства и потребления отсуствие научной основы с ее специфическим языком не является проблеммой вообще.
Ндааа.... Программирование имеет О-Г-Р-О-М-Н-У-Ю теоретическую, самую настоящую научную базу, которая охватывает многие области математики и из-за которой возникли новые специальные области, которые называют теоретической информатикой.

Другое дело, что это не очень заметно ибо "средний" программист ничерта об этом не знает (и, обьективно говоря, оно ему и не нужно). А на самом деле, науки хотя-бы в языках программирования (только в их свойствах!) ооочень много. А ещё есть куча всяких других вещей из которых состоит информатика, за которыми стоят огромнейшие и разные теории.

Вот именно блин! Что-бы написать программу и продать ее никаких теориев знать не нужно. В задачу програмиста только входит овладение инструментами - языками програмирования.
А тот кто разрабатывает инструмент тоже без теориев обходится, потому что ему нужен инструмент понятный большинству, поэтому паскаль как самый простой в изучении язык и всякие там дельфи наего основе. Плюс интерпретаторы как более простые в отладке. Плюс "сборка мусора" для тех кто нехочет думать про выделение памяти. Плюс нежесткая типизация для тех кто вообще нехочет думать.
К счастью разработчики процессоров на которых исполняется байткод особо не огорчают.
Россия больше чем Плутон.

yos

ЦитироватьВот именно блин! Что-бы написать программу и продать ее никаких теориев знать не нужно.
Да, но относится это только к наивному программированию ширпотреба. Да и то, качество этого ширпотреба -- известная проблема.
Не относится к разработкам специального ПО для самолётов, транспорта, космической техники и т.д.
ЦитироватьА тот кто разрабатывает инструмент тоже без теориев обходится, потому что ему нужен инструмент понятный большинству, поэтому паскаль как самый простой в изучении язык и всякие там дельфи наего основе. Плюс интерпретаторы как более простые в отладке. Плюс "сборка мусора" для тех кто нехочет думать про выделение памяти. Плюс нежесткая типизация для тех кто вообще нехочет думать.
Нет, нет, нет! Как раз инструменты и содержат большую часть науки. Все вещи, которые вы назвали от балды не пишутся, без специальных знаний. Вот все пользуются компиляторами, но это не значит, что "большинству", как вы пишете, понятно, как они работают. Т.е. в инструментах очень много теории, но она не обязательно видна пользователю, т.е. программисту. Это же простой и общий принцип: не все люди знают, как работает двигатель в автобусе, на котором они едут, не говоря уже об АЭС, а ведь ток это нормально...

yos

ЦитироватьВ задачу програмиста только входит овладение инструментами - языками програмирования.
Забыл сказать, что это абсолютно не соответствует реальности. Такой программист, хоть и будет знать языки программирования, не сможет написать ничего кроме тривиальных "учебных" программ-упражнений, от которых нет пользы. Чтобы быть "минимальным" но полезным программистом выше уровня увлечённого старшекласника, нужно знать намного больше.

Вадим Семенов

ЦитироватьВот именно блин! Что-бы написать программу и продать ее никаких теориев знать не нужно. В задачу програмиста только входит овладение инструментами - языками програмирования.
А тот кто разрабатывает инструмент тоже без теориев обходится, потому что ему нужен инструмент понятный большинству, поэтому паскаль как самый простой в изучении язык и всякие там дельфи наего основе. Плюс интерпретаторы как более простые в отладке. Плюс "сборка мусора" для тех кто нехочет думать про выделение памяти. Плюс нежесткая типизация для тех кто вообще нехочет думать.
Да вобщем-то и для того, чтобы ракету сделать ничего знать не нужно. Достаточно денег и желания. Правда, в таком случае она вряд ли полетит. Ну так и программа у незнающих и недумающих будет полна багов... :)
Гипотеза о боге дает ни с чем не сравнимую возможность абсолютно все понять, абсолютно ничего не узнавая.
А. и Б. Стругацкие "Пикник на обочине".

KBOB

Цитировать
ЦитироватьВот именно блин! Что-бы написать программу и продать ее никаких теориев знать не нужно. В задачу програмиста только входит овладение инструментами - языками програмирования.
А тот кто разрабатывает инструмент тоже без теориев обходится, потому что ему нужен инструмент понятный большинству, поэтому паскаль как самый простой в изучении язык и всякие там дельфи наего основе. Плюс интерпретаторы как более простые в отладке. Плюс "сборка мусора" для тех кто нехочет думать про выделение памяти. Плюс нежесткая типизация для тех кто вообще нехочет думать.
Да вобщем-то и для того, чтобы ракету сделать ничего знать не нужно. Достаточно денег и желания. Правда, в таком случае она вряд ли полетит. Ну так и программа у незнающих и недумающих будет полна багов... :)
Не буду напоминать про отечественные автомобили, но за определенную цену даже их покупают, не сомневаюсь, что их конструировали знающие и думающие люди.
Россия больше чем Плутон.

sychbird

То КВОВ

Это очень старая тема. Средний ремесленник может сделать скрипку для цыганского оркестра. Но скрипки Страдивари и Амати воспроизвести не удается.  В их время не писали комментариев к программам. :)

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

В процессе совершенствоания искуства программироания человечество существенно продвинулось в вопросах понимания принципов функционирования собственного сознания и методов  рационального описания и осмысления действительности.

Но массовое производство вычислительной и телекомуникационной аппаратуры и создание техносферы информатизации всех без исключения сторон человеческой деятельности выдвигают специфические для массового производства и обучения массовым профессиям проблемы.
И не стоит путать эту специфическую по целям и условиям деятельности область техногии с фундаментальными областями знания и технологическим искуством, лежащими в основании.
Ответил со свойственной ему свирепостью (хотя и не преступая ни на дюйм границ учтивости). (C)  :)

yos

ЦитироватьЯ лично сомневаюсь, можно ли отнести, гигантский опыт   и знания, накопленные в теории программирования, к области науки.
Интересно, на чём базируются ваши сомнения? Информатика это несомненно наука, просто новая. Но зато очень обьёмная и богатая.

Вадим Семенов

ЦитироватьИ не стоит путать эту специфическую по целям и условиям деятельности область техногии с фундаментальными областями знания и технологическим искуством, лежащими в основании.
Я согласен, что это технология. Как и ракетостроение. Но -- возвращаясь к теме -- это никак не отменяет необходимости использовать адекватные инструменты. Либо иметь геморой.
Гипотеза о боге дает ни с чем не сравнимую возможность абсолютно все понять, абсолютно ничего не узнавая.
А. и Б. Стругацкие "Пикник на обочине".