Мобильная версия
Войти

Все форумы
Авиационный
Сослуживцы
Авторские

На каких язіках пишут ПО для ЛА и БПЛА, и космичесских аппаратов?

2 пользователя сделали закладку на эту тему форума
 ↓ ВНИЗ

123

J-Z
Старожил форума
07.03.2017 19:20
Заинтересовал сей вопрос. В частности Ф-22, 35, ПАК-ФА, и БПЛА типа Глобал Хока, Рипера с Предейтором и космоаппараты типа МКС, Х-37 и пр заветные и желанные вещи
Lee
Старожил форума
07.03.2017 20:17
на си, ада

а вообще есть специалисты в этой теме :-)

https://vk.com/wall-51873373_202293
ПЗ
Старожил форума
07.03.2017 22:43
Интересно, знает ли кто-то, в честь кого назван язык Ада?
Corvus
Старожил форума
07.03.2017 23:06
ПЗ
Интересно, знает ли кто-то, в честь кого назван язык Ада?
Знаем)
в 1980-е была статья в "Науке и жизни" на эту тему.
кое_кто_где_то_там
Старожил форума
08.03.2017 09:59
Авгу́ста А́да Кинг (урождённая Ба́йрон), графиня Ла́влейс (англ. Augusta Ada King Byron, Countess of Lovelace), более известная как Ада Лавлейс (10 декабря 1815, Лондон, Великобритания — 27 ноября 1852, там же) — математик. Известна прежде всего созданием описания вычислительной машины, проект которой был разработан Чарльзом Бэббиджем. Составила первую в мире программу (для этой машины). Ввела в употребление термины «цикл» и «рабочая ячейка», считается первым программистом в истории.
кое_кто_где_то_там
Старожил форума
08.03.2017 10:01
для ТС - http://dambiev.livejournal.com ...


статья
И ещё раз о выборе языка C++ в качестве основного при создании ПО для самолёта F-35

serg13b
Старожил форума
08.03.2017 11:02
Суровые "наши" программисты на асмблере
serg13b
Старожил форума
08.03.2017 11:03
Corvus
Старожил форума
08.03.2017 11:04
Статья в "Науке и жизни" называлась "Наследство леди Лавлейс".
Есть в интернете книга с таким же названием, автор Попель Л.
black roger
Старожил форума
08.03.2017 12:51
serg13b
Суровые "наши" программисты на асмблере
Самые суровые кодят в машинных кодах. Вот так будет «Hello, world!»

0x55 0x89 0xe5 0xe8 0xfc 0xff 0xff 0xff
0x83 0xf8 0x41 0x75 0x0d 0x68 0x00 0x00
0x00 0x00 0xe8 0xfc 0xff 0xff 0xff 0x83
0xc4 0x04 0xb8 0x00 0x00 0x00 0x00 0x89
0xec 0x5d 0xc3
В МАИ не учился
Старожил форума
08.03.2017 13:13
Что после Си, что после Фортрана или языка ассемблера.

Что в FMC Боингов-Аэрбасов, что в андроид-смартфонах или "мозгах" авто.

В конечном итоге, всё, что "хавают" современные процессоры считывается из памяти и исполняется ими только в виде машинных кодов:

1110001000110011
1100010001100101
1110001000110010
1100010001100101

Сори за банальность.
black roger
Старожил форума
08.03.2017 13:19
В МАИ не учился
Что после Си, что после Фортрана или языка ассемблера.

Что в FMC Боингов-Аэрбасов, что в андроид-смартфонах или "мозгах" авто.

В конечном итоге, всё, что "хавают" современные процессоры считывается из памяти и исполняется ими только в виде машинных кодов:

1110001000110011
1100010001100101
1110001000110010
1100010001100101

Сори за банальность.
Сейчас это делают программы-компиляторы, а когда их не было - приходилось каждый байт прописывать вручную, особенно при мизерном объёме памяти.
Termi Nemo
Старожил форума
08.03.2017 14:03
В МАИ не учился
Что после Си, что после Фортрана или языка ассемблера.

Что в FMC Боингов-Аэрбасов, что в андроид-смартфонах или "мозгах" авто.

В конечном итоге, всё, что "хавают" современные процессоры считывается из памяти и исполняется ими только в виде машинных кодов:

1110001000110011
1100010001100101
1110001000110010
1100010001100101

Сори за банальность.
Кому нужны критичные приложения, пишут на Ада. Даже для любительских беспилотников, поскольку очень удобно работать с данными с сенсоров (проверка на корректность и диапазон).

Аппарат Schiaparelli, который грохнулся на Марс, был написан на Ада. По иронии, после анализа обнаружилось, что не были использованы преимущества этого языка: отсутствие проверки данных с высотомера, который начал давать выходящие за диапазон показания, после чего все посыпалось.

Поскольку Ада программистов мало, часто народ не заморачивается и пишет или на Си, или на C++.
Termi Nemo
Старожил форума
08.03.2017 14:04
Сорри, цитата попала в ответ, раз так откомментирую цитату: машинным кодом дело не ограничивается, далее идет микрокод, который собственно и исполняется
Shakaran
Старожил форума
08.03.2017 17:18
не важен язык программирования - он все равно компилируется в машкоды - процессор работает в двоичной системе
21239
Старожил форума
08.03.2017 17:33
Shakaran
не важен язык программирования - он все равно компилируется в машкоды - процессор работает в двоичной системе
Важен. Часто производители, например, радстойских ПЛИС, рекомендуют или специализируют свои продукты под спецПО. Например VHDL.
Shakaran
Старожил форума
08.03.2017 18:18
21239
Важен. Часто производители, например, радстойских ПЛИС, рекомендуют или специализируют свои продукты под спецПО. Например VHDL.
Я - в широком смысле: некоторые почемуто думают, что программа работает именно на каком-либо ЯП, между тем все определятся только удобством для определенной задачи, прошиваемые Микроконтроллеры это одно, вся система в комплексе- другое..
Termi Nemo
Старожил форума
08.03.2017 18:24
Shakaran
не важен язык программирования - он все равно компилируется в машкоды - процессор работает в двоичной системе
Язык программирования очень важен. Он определяет архитектуру приложений, взаимодействие между ними, скорость, качество и надежность разработки.

Программирование на ассемблере уже нигде не используется, по причине больших трудозатрат и большей вероятности ошибок. Любой современный компилятор сформирует код лучше, чем вы попытаетесь писать на ассемблере
21239
Старожил форума
08.03.2017 18:27
Shakaran
Я - в широком смысле: некоторые почемуто думают, что программа работает именно на каком-либо ЯП, между тем все определятся только удобством для определенной задачи, прошиваемые Микроконтроллеры это одно, вся система в комплексе- другое..
Да, нашим разработчикам дана большая, назову "свобода творчества". В западной технике больше стандартизации, включая средств и инструментов решения задачи.
black roger
Старожил форума
08.03.2017 22:10
black roger
Самые суровые кодят в машинных кодах. Вот так будет «Hello, world!»

0x55 0x89 0xe5 0xe8 0xfc 0xff 0xff 0xff
0x83 0xf8 0x41 0x75 0x0d 0x68 0x00 0x00
0x00 0x00 0xe8 0xfc 0xff 0xff 0xff 0x83
0xc4 0x04 0xb8 0x00 0x00 0x00 0x00 0x89
0xec 0x5d 0xc3
В более читаемом виде:

BB 11 01 B9 0D 00 B4 0E 8A 07 43 CD 10 E2 F9 CD 20 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21

ПЗ
Старожил форума
08.03.2017 22:43
Discovery сняли фильм про Аду Лавлейс. Очень познавательное получилось кино.

А вообще, никто ведь на Боинге не сидит и не пишет ПО специально для Ф-35. Боинг получает готовые блоки сторонних производителей -локатор, инерциалку, сеи и т.д. В каждом зашито свое СПО, которое может быть написано на разных языках производителями блоков. Лишь бы работало, за что поставщики и отвечают.
21239
Старожил форума
08.03.2017 23:21
ПЗ
Discovery сняли фильм про Аду Лавлейс. Очень познавательное получилось кино.

А вообще, никто ведь на Боинге не сидит и не пишет ПО специально для Ф-35. Боинг получает готовые блоки сторонних производителей -локатор, инерциалку, сеи и т.д. В каждом зашито свое СПО, которое может быть написано на разных языках производителями блоков. Лишь бы работало, за что поставщики и отвечают.
Есть бортовые протоколы, интерфейсы. Они стандартизованы. Значит, кто-то пишет.
Shakaran
Старожил форума
08.03.2017 23:27
Программирование на ассемблере уже нигде не используется


используется кое-где . я не про вирусы . а про подпрограммы для того же С , полезно для кодинга вещей, критичных к быстродействию и размеру кода.
black roger
Старожил форума
09.03.2017 12:38
Shakaran
Программирование на ассемблере уже нигде не используется


используется кое-где . я не про вирусы . а про подпрограммы для того же С , полезно для кодинга вещей, критичных к быстродействию и размеру кода.
У того же Линукса (основы Андроид, iOS, Tizen, и ещё десятка два различных операционок) 80% кода на C/C++, остальные двадцать на Ассемблере. В старых OS (Windows 95/98 и т.д.) соотношение 50 на 50. В микроконтроллерах при ограниченном объёме флеш-памяти Ассемблер рулит однозначно.
black roger
Старожил форума
09.03.2017 12:51
ПЗ
Старожил форума

А вообще, никто ведь на Боинге не сидит и не пишет ПО специально для Ф-35. Боинг получает готовые блоки сторонних производителей -локатор, инерциалку, сеи и т.д.



А причём здесь Боинг ? Боинг сделал F-32, который по конкурсу проиграл F-35 от Локхид-Мартин (хотя по определению победителя конкурса есть баальшие вопросы). Всё ПО для "борта" пишут Локхиды и аутсортинговые софтверные компании. Знаю индусы с Бангалора - и те участвуют.
Baalu
Старожил форума
09.03.2017 15:32
black roger
В более читаемом виде:

BB 11 01 B9 0D 00 B4 0E 8A 07 43 CD 10 E2 F9 CD 20 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21

Уважаемый,
Вы бы хоть указали процессор, для которого это будет работать :)
x86, x96, Itanium, ATMega, MCS-8051, различные Soc - все имеют свой набор команд :)

Что касается низкоуровневых приложений реального времени, как уже правильно отмечали, C/C++ в связке с ассемблером.

ADA, конечно, классный язык, в нем, одном из первых, была реализована поддержка многопоточности на уровне языка, но сейчас используется, в основном, под заказы военных США, которые его разработку и заказали. Очень похож на Паскаль, но более элегантный, что-ли. Для ВВС США, таки да, пишут на ADA.
black roger
Старожил форума
09.03.2017 15:39
Baalu
Новичок-курсант

Уважаемый,
Вы бы хоть указали процессор, для которого это будет работать :)



Ессно х86. )) . Архитектуре скоро 40 лет стукнет, а до сих пор широко востребована, в том числе и в аэрокосмосе.
izki
Старожил форума
09.03.2017 18:36
== Программирование на ассемблере уже нигде не используется
Используется активно. Причём часто не в виде независимых приложений, а в виде вставок в код и библиотек.

== Есть бортовые протоколы, интерфейсы. Они стандартизованы.
Протоколы и интерфейсы для того и придумали, чтобы разные куски кода могли быть написаны на разных языках и разными людьми.
Если протоколу следуешь - пофиг, что у тебя внутри.
21239
Старожил форума
09.03.2017 20:34
izki
== Программирование на ассемблере уже нигде не используется
Используется активно. Причём часто не в виде независимых приложений, а в виде вставок в код и библиотек.

== Есть бортовые протоколы, интерфейсы. Они стандартизованы.
Протоколы и интерфейсы для того и придумали, чтобы разные куски кода могли быть написаны на разных языках и разными людьми.
Если протоколу следуешь - пофиг, что у тебя внутри.
Не совсем "пофиг"...Дальше идёт серия испытаний, стандартизированные по и оборудование от этого не избавляет. Поэтому многим техническим решениям уже по-многу десятку лет. Все военные консерваторы и замен не любят. Если "его" технических характеристик хватает с избытком и все надёжно работает, то зачем менять? 40 лет техническому решению, гы, -это юность. Ещё 40 лет пройдёт, вот тогда...может быть...
priladibudivnik
Старожил форума
09.03.2017 21:01
Ассемблер foreva!
Пример: лично писал на ассемблере ПО блоков управления периферийных приборов СУ "Союза-2". О.5 кслов для одного и около 2 для другого. Проц - клон TMS320C25.
Очень жалел, что больше задач не дали. Много можно было с центральной машины соскоблить.
В МАИ не учился
Старожил форума
09.03.2017 21:10
Тоже лично. Для изделия 11Ф... А толку? Про@рали страну...
mErLin
Старожил форума
09.03.2017 22:05
В конце 80х-начале 90х писал для БЦВМ на Модуле-2 (это такое развитие Паскакаля, если кто не в курсе). В те времена мы использовали исключительно DECовский MACRO-11. Об операционках реального времени или языках высокого уровня в боевых машинах на базе 588 или 1806ВМ2 даже речи не шло. И была тогда у столпов Минэлектронпрома красивая, но мёртворожденная идея повсеместно внедрить в отрасли модную Модулу. Специально полунаписали-полус314здили для этой цели компилятор, сгоношили библиотеки под архитектуру PDP-11 (основной целевой проц был 1806ВМ3, и вскоре планировали переползать на отечественный микроВАКС). Получили из Новосиба оконную кросс-среду для писюков а-ля Борланд (так и назвали - ТурбоМодула). А вершиной всего безобразия было намерение сделать этот, вообщем-то, неплохой язык основой программирования параллельных SIMD-машин, которые "мэйд ин Аргон". В т.ч. "Циклопа" (анализ картинки с БРЛС). Но потом всё похерилось. Советский микроВАКС так толком и не родили. Перешли на клоны x86 и ТМС. А там уже и все мозги из альмаматери советской бортовой вычтехники разбегаться начали кто куда.
priladibudivnik
Старожил форума
09.03.2017 22:05
В МАИ не учился
Тоже лично. Для изделия 11Ф... А толку? Про@рали страну...
На чем писал-то?
AAlfim
Старожил форума
10.03.2017 00:05
Termi Nemo
Кому нужны критичные приложения, пишут на Ада. Даже для любительских беспилотников, поскольку очень удобно работать с данными с сенсоров (проверка на корректность и диапазон).

Аппарат Schiaparelli, который грохнулся на Марс, был написан на Ада. По иронии, после анализа обнаружилось, что не были использованы преимущества этого языка: отсутствие проверки данных с высотомера, который начал давать выходящие за диапазон показания, после чего все посыпалось.

Поскольку Ада программистов мало, часто народ не заморачивается и пишет или на Си, или на C++.
Ээээ, я дико извиняюсь, это прямо в язык вложена проверка данных с измерителя?
Я по серости думал, что все эти проверки независимо от языка должны быть описаны в ТЗ на ПО и проверено при сдаче работы. Я закладывал аж несколько порогов таких проверок (типа встроенная диагностика причин ошибки) да ещё и обход в случае выявленного отказа независимо от языка.
Алик-1
Старожил форума
10.03.2017 00:44
2Baalu
ADA, конечно, классный язык, в нем, одном из первых, была реализована поддержка многопоточности на уровне языка, но сейчас используется, в основном, под заказы военных
------
Когда появился Ada, достаточно быстро перевели и издали книжки на русском. Читали нарасхват, называли "язык министерства обороны", "язык встроенных систем" - казалось круто, надежно, интересно. Дальнейшее развитие Паскаля. Искали у коллег нет ли у кого компилятора. Ходил анекдот про старушку, которая выбежала из трамвая от студента с книжкой "Язык Ада". А в получилось, что у Ada узкое, специфическое применение и мало где можно прихвастнуть опытом на нем.
В МАИ не учился
Старожил форума
10.03.2017 05:43
не учился: Тоже лично. Для изделия...
priladibudivnik: На чем писал-то?

Речь о наземном стенде с СМ-2М на нижнем уровне
Termi Nemo
Старожил форума
10.03.2017 12:25
AAlfim
Ээээ, я дико извиняюсь, это прямо в язык вложена проверка данных с измерителя?
Я по серости думал, что все эти проверки независимо от языка должны быть описаны в ТЗ на ПО и проверено при сдаче работы. Я закладывал аж несколько порогов таких проверок (типа встроенная диагностика причин ошибки) да ещё и обход в случае выявленного отказа независимо от языка.
Можно не извиняться. Строгая типизация - свойство языка Ада, и проверка соответствия данных типу заложена в язык.

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

Самостоятельная реализация подобных проверок будет точно хуже, чем это сделано на уровне языка, и к тому же будет содержать ошибки - ну перепутает вчерашний студент int с uint, с кем не бывает? И компилятор промолчит во время автоматического приведения типов.

К тому же в современной разработке ПО уходят от понятия ТЗ, поскольку к его утверждению, выделению финансирования и началу проекта оно уже устаревает (вечны только пункты ТЗ типа "маркировка и пломбирование"). Сейчас народ работает по технологии итеративной разработки, см. Scrum и подобное.
Termi Nemo
Старожил форума
10.03.2017 12:40
mErLin
В конце 80х-начале 90х писал для БЦВМ на Модуле-2 (это такое развитие Паскакаля, если кто не в курсе). В те времена мы использовали исключительно DECовский MACRO-11. Об операционках реального времени или языках высокого уровня в боевых машинах на базе 588 или 1806ВМ2 даже речи не шло. И была тогда у столпов Минэлектронпрома красивая, но мёртворожденная идея повсеместно внедрить в отрасли модную Модулу. Специально полунаписали-полус314здили для этой цели компилятор, сгоношили библиотеки под архитектуру PDP-11 (основной целевой проц был 1806ВМ3, и вскоре планировали переползать на отечественный микроВАКС). Получили из Новосиба оконную кросс-среду для писюков а-ля Борланд (так и назвали - ТурбоМодула). А вершиной всего безобразия было намерение сделать этот, вообщем-то, неплохой язык основой программирования параллельных SIMD-машин, которые "мэйд ин Аргон". В т.ч. "Циклопа" (анализ картинки с БРЛС). Но потом всё похерилось. Советский микроВАКС так толком и не родили. Перешли на клоны x86 и ТМС. А там уже и все мозги из альмаматери советской бортовой вычтехники разбегаться начали кто куда.
Вот этого нам и не хватало, среды разработки под x86 для 1806ВМ3. В последних версиях ДВК еще можно было работать с Си, и исполнительные модули после компиляции получалось зашивать в железо. Хорошим подспорьем были также библиотеки с плавающей точкой и тригонометрическими функциями.

Однако ДВК уже начали сыпаться, а обновления PDP линейки так и не случилось. Все начали переходить на Intel с его уродской системой команд.
Baalu
Старожил форума
10.03.2017 13:01
>> Можно не извиняться. Строгая типизация - свойство языка Ада, и проверка соответствия данных типу заложена в язык.

Ну, вообще, строгая типизация - свойство C++, Java, C# и большинства языков с ООП. И там тоже проверки типов на уровне компиляторов. А контроль на допустимый диапазон значений с датчиков хорошо покрывается Unit тестами, и по времени исполнения так-же эффективен, как и примененные во встроенных в компилятор Range Checking.

Жаль, что на той-же Java писать real time приложение для работы с железом - самоубийство :) Приятный язык :)
Termi Nemo
Старожил форума
10.03.2017 13:47
Baalu
>> Можно не извиняться. Строгая типизация - свойство языка Ада, и проверка соответствия данных типу заложена в язык.

Ну, вообще, строгая типизация - свойство C++, Java, C# и большинства языков с ООП. И там тоже проверки типов на уровне компиляторов. А контроль на допустимый диапазон значений с датчиков хорошо покрывается Unit тестами, и по времени исполнения так-же эффективен, как и примененные во встроенных в компилятор Range Checking.

Жаль, что на той-же Java писать real time приложение для работы с железом - самоубийство :) Приятный язык :)
Нууу...

Попробуйте объявить в C++ тип данных подобный данному типу на Ада, не создавая нового класса:

type x is range 2..10;

и присвоить переменной этого типа значение к примеру 11. И пусть компилятор обнаружит несоответствие типов.

Нет таких юнит-тестов, которые перекрывают все возможные сочетания диапазонов входных данных. Да и пишут эти юнит-тесты опять таки вчерашние студенты, снова возвращаемся к человеческому фактору
sx5
Старожил форума
10.03.2017 14:16
Termi Nemo
Нууу...

Попробуйте объявить в C++ тип данных подобный данному типу на Ада, не создавая нового класса:

type x is range 2..10;

и присвоить переменной этого типа значение к примеру 11. И пусть компилятор обнаружит несоответствие типов.

Нет таких юнит-тестов, которые перекрывают все возможные сочетания диапазонов входных данных. Да и пишут эти юнит-тесты опять таки вчерашние студенты, снова возвращаемся к человеческому фактору
фото
https://cloud.mail.ru/public/A ...

плюс, в догон, вы исходные тексты библиотек "именитых производителей софта" смотрели? там дохрена ассемблерных вставок. Тоже фото сделать, или этого хватит?
Termi Nemo
Старожил форума
10.03.2017 14:35
sx5
фото
https://cloud.mail.ru/public/A ...

плюс, в догон, вы исходные тексты библиотек "именитых производителей софта" смотрели? там дохрена ассемблерных вставок. Тоже фото сделать, или этого хватит?
Ваша ссылка не открывается. Имена "именитых производителей" в студию.

Далее, вам знакомо понятие кроссплатформенности? Как вы будете ее обеспечивать ассемблерными вставками?

Нет, если вы ПХП программер, можете не отвечать. Ветка вообще-то посвящена embedded системам.
sx5
Старожил форума
10.03.2017 14:37
извините вот фото
https://cloud.mail.ru/public/G ...
serg13b
Старожил форума
10.03.2017 14:38
Коллеги, с Юрчуком Геннадием Васильевичем кто-либо контактирует? Спрашиваю на "авось", потерялись в 90-е, делали с ним систему БСКД-87.
Termi Nemo
Старожил форума
10.03.2017 14:43
sx5
извините вот фото
https://cloud.mail.ru/public/G ...
Боже ты мой, это что, старый знакомый турбо-паскаль? Где там ассемблерные вставки? Похоже на функцию обработки данных формы, для нашего случая неинтересно.

Чтобы два раза не вставать, я скажу про "именитого производителя", а именно Texas Instruments. Из доки по программированию DSP процессора:

"The highly optimized C/C++ compiler that comes with the C6000 code generation tools is capable of generating assembly code that is very close in performance to the most optimized hand-written assembly code. Thus, for most applications, programming and optimizing in C/C++ code is efficient enough to meet the performance requirements of the application. Therefore, it is recommended that most applications be developed in C/C++"

Короткий перевод: C/C++ компилятор и так генерит высокопроизводительный ассемблерный код, близкий к написанному вручную, так что не заморачивайтесь с ассемблером.
sx5
Старожил форума
10.03.2017 14:43
Baalu
>> Можно не извиняться. Строгая типизация - свойство языка Ада, и проверка соответствия данных типу заложена в язык.

Ну, вообще, строгая типизация - свойство C++, Java, C# и большинства языков с ООП. И там тоже проверки типов на уровне компиляторов. А контроль на допустимый диапазон значений с датчиков хорошо покрывается Unit тестами, и по времени исполнения так-же эффективен, как и примененные во встроенных в компилятор Range Checking.

Жаль, что на той-же Java писать real time приложение для работы с железом - самоубийство :) Приятный язык :)
и что в нём приятного?
у каждого языка свои особенности

я когда с явы переводил исходные коды 3DES дешифратора загранпаспортов с чипами, уе..ся.
хотя на Си это выглядело ещё хуже))) особенно при сокращенной записи условных и математических выражений)))
sx5
Старожил форума
10.03.2017 14:50
Termi Nemo

Попробуйте объявить в C++ тип данных подобный данному типу на Ада, не создавая нового класса:
type x is range 2..10;
и присвоить переменной этого типа значение к примеру 11. И пусть компилятор обнаружит несоответствие типов.


пример приведен


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


какого вашего случая?
это объектный паскаль, не суть важно.
что у вас за комментариям подростковые с амбициями, "фу паскаль"
давайте также ассемблер - г..но и т.д.

VCL вы явно в глаза не видели. жаль что тот кто это создал теперь .NET родил...
Baalu
Старожил форума
10.03.2017 14:57
Termi Nemo
Нууу...

Попробуйте объявить в C++ тип данных подобный данному типу на Ада, не создавая нового класса:

type x is range 2..10;

и присвоить переменной этого типа значение к примеру 11. И пусть компилятор обнаружит несоответствие типов.

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

А в современном мире (не говорю о программировании железа, которое делается "на года") гораздо более важна гибкость. Может, например, поменяться тип датчика и диапазон станет 1..14? Что, будем пересобирать весь проект? Я бы не поленился написать дополнительный класс, реализующий динамический диапазон + Factory класс, для инициализации первого + загрузку характеристик датчиков и их ID в систему и сэкономил бы кучу сил и нервов в дальнейшем, чисто конфигурируя расположение нужных элементов.

Кстати очень показательный пример - CAD системы с возможностью просчета (эмуляции) схем, где характеристики элементов берутся из моделей от производителя. Там жесткость боком выйдет :)
sx5
Старожил форума
10.03.2017 15:08
Baalu
А в современном мире (не говорю о программировании железа, которое делается "на года") гораздо более важна гибкость.
....


теперь всё железо идет на вариациях Линукса, да с веб-интерфейсом. гибкости дофига, ошибок и непрозрачности тоже...
sx5
Старожил форума
10.03.2017 15:10
Baalu

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


мы сейчас как раз все на Altium переводим
123




 

 

 

 

← На главную страницу

Чтобы публиковать комментарии, вы должны войти на сайт.
Все форумы
Авиационный
Сослуживцы
Авторские

Реклама на сайте Обратная связь/Связаться с администрацией
Рейтинг@Mail.ru