реклама на сайте
подробности

 
 
5 страниц V  < 1 2 3 4 5 >  
Reply to this topicStart new topic
> Embedded C++, Кто какие библиотеки использует?
_Pasha
сообщение Sep 8 2012, 09:14
Сообщение #31


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(dxp @ Sep 8 2012, 08:54) *
А что это вот такое:
Код
C++-code requires significant additional costs on verification staff


Какой смысл стоит за этой фразой? У меня вариант такой: "У нас нет специалистов достаточной квалификации, способных понимать и сопровождать С++ код, поэтому пишите на С".


Они под MISRA сидят, вероятно. Это ужасно, но, говорят, что надёжно.
Go to the top of the page
 
+Quote Post
dxp
сообщение Sep 8 2012, 09:31
Сообщение #32


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (_Pasha @ Sep 8 2012, 16:14) *
Они под MISRA сидят, вероятно. Это ужасно, но, говорят, что надёжно.

Конечно, надёжно, когда самые могучие возможности С, такие как, например, адресная арифметика, запрещены. Ещё надёжнее вообще не писать код. У меня друг работал 8 лет в крупной успешной телекоммуникационной чешской компании, подробно рассказывал про тамошние дела. Действительно, доходило до того, что отдельным подразделениям, преимущественном состоящим из местных чехов, корпоративно запрещали, например, использовать STL, т.к. использовалось это без должного понимания, что приводило к ужасному неработоспособному, несопровождаемому коду. Но те в массе только рады были. DSP группе, где он работал, не запрещали. sm.gif

MISRA - привязать себя к стулу, чтобы не упасть. Но в один прекрасный момент упасть вместе с ним. Это весьма больнее.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
halfdoom
сообщение Sep 8 2012, 09:45
Сообщение #33


Профессионал
*****

Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072



Цитата(dxp @ Sep 8 2012, 08:54) *
Какой смысл стоит за этой фразой?


Эти ребята усердно пытались уговорить переписать все на Аде - это у них база. Я не очень хорошо знаю этот язык, но по их утверждениям его встроенные возможности позволяют избегать большого числа ошибок (какие-то модули верификации). Вдобавок, С используется по причине наличия огромного количества библиотек, а С++ вызывает чуть ли не ужас. Насколько я понял, после нескольких серьезных проколов именно с С++, специалистов по нему из штата исключили.
Go to the top of the page
 
+Quote Post
dxp
сообщение Sep 8 2012, 10:02
Сообщение #34


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (halfdoom @ Sep 8 2012, 16:45) *
Эти ребята усердно пытались уговорить переписать все на Аде - это у них база. Я не очень хорошо знаю этот язык, но по их утверждениям его встроенные возможности позволяют избегать большого числа ошибок (какие-то модули верификации). Вдобавок, С используется по причине наличия огромного количества библиотек, а С++ вызывает чуть ли не ужас.

Спасибо, интересно.

QUOTE (halfdoom @ Sep 8 2012, 16:45) *
Насколько я понял, после нескольких серьезных проколов именно с С++, специалистов по нему из штата исключили.

Ну, почти та же история, что и в той чешской компании. Разница только в том, что там подошли дифференцировано - у кого получается, тем разрешили. Точнее не так - у кого не получается, тем запретили. Уже когда-то говорил, повторю - у С++ есть только один серьёзный объективный недостаток - этот язык сложный.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
mikeT
сообщение Sep 8 2012, 10:33
Сообщение #35


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 6-02-08
Из: Новосибирск
Пользователь №: 34 789



Заинтересовало упоминание языка Ада в задачах, где требуется надежность и т.д. В свое время читал "общеразвивающую" инфу про то, что этот язык был специально создан по заказу МО США именно для сложных, высоконадежных систем, например, для ПО на каких-нибудь крылатых ракетах, истребителях...

Полез сейчас в инет посмотреть (ради любопытства) "а на чем написано ПО для А-380, F-35?" Нашел инфу про F-35, про А-380 искать пока лень.

Но насчет ПО для F-35 я был несколько удивлен, хотя и ожидал чего-то подобного. Если коротко, то на С++. Один из слайдов документа (ссылка ниже) содержит фотографию Joint Strike Fighter (F-35 Lightning II) и ниже подпись со стрелочкой, указывающей на самолет, "C++ inside".

SafetyCriticalC++Presentation.pdf

На других ресурсах по этой же теме (софт для F-35) приводятся данные что первоначально там была "солянка" из Ады, С, С++, ассемблера, но потом было решено все 100% кода перевести на С++.

Документ достаточно интересный и, мне кажется, заставляет задуматься насчет использования С++ в эмбеддед и холиварах типа С vs. С++.
Go to the top of the page
 
+Quote Post
halfdoom
сообщение Sep 8 2012, 11:22
Сообщение #36


Профессионал
*****

Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072



Цитата(mikeT @ Sep 8 2012, 13:33) *
SafetyCriticalC++Presentation.pdf
Документ достаточно интересный и, мне кажется, заставляет задуматься насчет использования С++ в эмбеддед и холиварах типа С vs. С++.

Ничего нового, очередная демонстрация известных проблем обоих языков и костылей для их решения. Правда, что имел в виду автор под фразой "C is insufficiently specified" остается загадкой.

Цитата(_Pasha @ Sep 8 2012, 12:14) *
Они под MISRA сидят, вероятно.

Нет, MISRA ни разу не упоминалась. По данным контрразведки еще одна российская фирма и поляки претендуют на этот контракт, если здесь кто есть из них, может дополнят (hint: директор той фирмы весьма колоритный ирландец).
Go to the top of the page
 
+Quote Post
SSerge
сообщение Sep 8 2012, 13:28
Сообщение #37


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(mikeT @ Sep 8 2012, 17:33) *
и ниже подпись со стрелочкой, указывающей на самолет, "C++ inside".

Это покруче будет:
Прикрепленное изображение

По теме.
Если у программера в голове кю вместо мозгов - ни MISRA, ни ADA не поможет, всё равно не полетит.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
Marto
сообщение Sep 8 2012, 18:15
Сообщение #38


Частый гость
**

Группа: Свой
Сообщений: 103
Регистрация: 17-05-09
Из: Ижевск
Пользователь №: 49 190



Цитата(alx2 @ Sep 7 2012, 10:16) *
А что именно? Мне кроме исключений (которые можно отключить при компиляции) ничего в голову не приходит...



RTTI - даже на декстопе забавная штукаsm.gif


--------------------
Шизоидный холерик
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Sep 9 2012, 00:58
Сообщение #39


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (alx2 @ Sep 7 2012, 14:16) *
Почему у Вас new/delete потянули дополнительные 260 килобайт, ума не приложу.

А вот и я не знаю... но стоит убрать эти операторы, как код становится 40 кБ...

С другой стороны, не зря же свои менеджеры памяти "выдумывают", значит проблема есть...

З.Ы. Компилятор у меня Code Sourcery...


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
sasamy
сообщение Sep 9 2012, 22:30
Сообщение #40


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(dxp @ Sep 8 2012, 06:49) *
Сегодня С++ - мэйнстрим в embedded, это факт.


Смотря что называть в embedded мэйнстрим - в вашем понимании - возможно, про это я уже намекал, в моем - нет sm.gif
http://techcrunch.com/2012/09/05/eric-schm...ations-per-day/
и С++ в ядре Linux нет и не будет, потому что он там не нужен, а для middleware основной язык Java (хотя надо признать С++ там тоже есть) . Есть проекты которые переходят с С на С++ - например GCC начал миграцию, но это либо далеко не embedded мэйнстрим или далеко не такие значимые проекты чтобы называть их мэйнстримом.

PS и телеком тоже понятие растяжимое
http://www.rsdn.ru/article/erlang/GettingS...dWithErlang.xml

Сообщение отредактировал sasamy - Sep 9 2012, 23:21
Go to the top of the page
 
+Quote Post
alx2
сообщение Sep 10 2012, 05:11
Сообщение #41


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(haker_fox @ Sep 9 2012, 05:58) *
А вот и я не знаю... но стоит убрать эти операторы, как код становится 40 кБ...
Но Вы-то, в отличие от нас, узнать это можете - достаточно заглянуть в map-файл...
Вы, надеюсь, использовали nothrow-версию оператора new?
А вот с такими реализациями:
Код
void * operator new(size_t n) throw() { return malloc(n); }
void operator delete(void *p) { free(p); }
тоже тянет 260 кбайт?

Цитата(haker_fox @ Sep 9 2012, 05:58) *
С другой стороны, не зря же свои менеджеры памяти "выдумывают", значит проблема есть...
К языку программирования это не имеет никакого отношения. Язык C++ позволяет использовать любой менеджер памяти (включая использование нескольких менеджеров одновременно - для разных объектов разных). Свой менеджер памяти может потребоваться писать по тысяче разных причин - это зависит от решаемой задачи. И необходимость писать свой менеджер не означает, что все прочие существующие менеджеры плохи. Это всего лишь означает, что они не подходят для данной конкретной задачи. При этом для другой задачи какой-то из них может подойти гораздо лучше, чем "выдуманный" Вами. Но это совсем другая тема - не о языках программирования...


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение Sep 10 2012, 05:25
Сообщение #42


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Ada, насколько я знаю, очень хороший язык.
Ну а erlang я всем рекомендую освоить хотя бы на начальном уровне - очень сильно меняет взгляд на построение надёжного софта. По сложности освоения примерно соответствует питону.
C++ против C - это старый холивор. В принципе, C++ можно использовать, но нужно резко и жёстко ограничить подмножество используемых технологий. Я бы, например, разрешил только STL, классы только для описания модулей, никакого наследования кроме как от интерфейсов. Ну и если позволяют ресурсы, то использовать другой язык.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Sep 11 2012, 05:56
Сообщение #43


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (alx2 @ Sep 10 2012, 13:11) *
Но Вы-то, в отличие от нас, узнать это можете - достаточно заглянуть в map-файл...
Вы, надеюсь, использовали nothrow-версию оператора new?

Я не знаю crying.gif
Использовал так
CODE
int* p = new int[ 1000 ];

QUOTE (alx2 @ Sep 10 2012, 13:11) *
А вот с такими реализациями:
CODE
void * operator new(size_t n) throw() { return malloc(n); }
void operator delete(void *p) { free(p); }
тоже тянет 260 кбайт?

Попробую...
QUOTE (alx2 @ Sep 10 2012, 13:11) *
Но Вы-то, в отличие от нас, узнать это можете - достаточно заглянуть в map-файл...
Вы, надеюсь, использовали nothrow-версию оператора new?

Честно говоря, никогда не пользовался map-файлом... видимо пришло время)

Спасибо!


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Sep 12 2012, 13:54
Сообщение #44


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



В общем new (std::nothrow) объем кода не уменьшает...(((


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Sep 12 2012, 14:13
Сообщение #45


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(haker_fox @ Sep 12 2012, 16:54) *
В общем new (std::nothrow) объем кода не уменьшает...(((


haker_fox, а какие у вас объёмы получаются?
Почему бы не сравнить свои исходники/либы/скрипты с вариантами которые не генерят большой код.
Go to the top of the page
 
+Quote Post

5 страниц V  < 1 2 3 4 5 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 09:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01491 секунд с 7
ELECTRONIX ©2004-2016