The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

07.07.2017 10:43  Обзор проблем в коде на C/C++, вызванных неопределённым поведением компилятора

Джон Регир (John Regehr), профессор университета штата Юта, участвующий в разработке Clang и занимающийся исследованиями в области неопределённого поведения программ, подготовил полезный для разработчиков обзор ситуаций, при которых поведение программы становится неопределенным и приводит к получению проблем с использованием памяти и указателями при сборке разными компиляторами. В статье не только описаны возникающие проблемы, но и предложены способы для их выявления, а также оценена эффективность применения для обнаружения неопределённого поведения типовых отладочных инструментов, таких как Address Sanitizer (ASAN), UndefinedBehaviorSanitizer (UBSan), MemorySanitizer (MSan), ThreadSanitizer (aka TSan) и Valgrind.

  1. Главная ссылка к новости (https://blog.regehr.org/archiv...)
  2. OpenNews: Дэниэл Бернштейн выступил с инициативой создания Си-компилятора для защищённого ПО
  3. OpenNews: Оптимизация кода компилятором может привести к появлению проблем безопасности в приложениях
  4. OpenNews: В DNS-сервере BIND устранен серьёзный сбой, возникший из-за изменений в оптимизаторе GCC
  5. OpenNews: Разработчики Mozilla столкнулись с проблемой производительности в GCC 4.5
  6. OpenNews: Линус Торвальдс выступил с резкой критикой GCC 4.9.0
Лицензия: CC-BY
Тип: английский / Практикум
Ключевые слова: undefinedbehavior, debug, memory, gcc, clang
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, A.Stahl, 11:12, 07/07/2017 [ответить] [смотреть все]
  • +30 +/
    Во-первых -- 3 галлона пива господину Регеру за очень краткие и ёмкие кусочки кода.
    Во-вторых г-н Регер показал, что UB это обычно результат наркоманского кода.
    Арифметика указателей? Ок, все мы её в той или иной мере используем, но нужно знать и меру.
    Самое важное правило (все новички о нём знают[сами для себя и выводят], а вот люди с опытом часто забывают) -- код должен быть простым и понятным. В 21 веке компиляторы лучше оптимизируют под платформу чем человек. Поэтому нужно писать простой и понятный код. Эффективный код -- удел компилятора. Да, некоторые моменты (обход прямоугольной матрицы и т.п.) до сих пор актуальны, но это не усложняет код и вполне вписывается в концепцию здравого смысла.
     
     
  • 2.2, Zoolander, 11:38, 07/07/2017 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    Как думаете, почему профессионалы подвержены болезни усложнения кода У них крыш... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.3, Iaaa, 11:45, 07/07/2017 [^] [ответить] [смотреть все]  
  • +3 +/
    Тоже вижу слишком часто неоправданное усложнение Может не солидно , что я как... весь текст скрыт [показать]
     
  • 3.4, A.Stahl, 12:04, 07/07/2017 [^] [ответить] [смотреть все]  
  • +15 +/
    Многие профессионалы сталкиваются с ситуацией, когда они сами пишут и проектируют.
    Соответственно они это делают как им удобно.
    Вот, например, я -- терпеть не могу шаблоны. STL использую, но сам не пишу. Это такой мой "бзик". Также я не уловил прелесть смартпоинтеров. У меня и с обычными указателями никаких проблем нет. Нахрена мне умные?
    А вот теперь представь, что я  -- тимлимд (а я на плюсах ~10 лет пишу, так что опыт имеется и на такую должность вполне могу упасть). И как себя будет чувствовать молодёжь, которая ни асма ни Си не нюхала? Я со своими требованиями буду для них "придурок, усложняющий код, когда можно написать auto". И они будут правы. И я буду прав. Вот так.
    Это разница в поколениях и мировоззрениях. Классическая проблема отцов-сыновей.
     
     
  • 4.7, Crazy Alex, 12:15, 07/07/2017 [^] [ответить] [смотреть все]  
  • +3 +/
    А exception safety, move semantics, вот это всё - тоже игноришь Их без умных ук... весь текст скрыт [показать]
     
     
  • 5.11, A.Stahl, 12:50, 07/07/2017 [^] [ответить] [смотреть все]  
  • +9 +/
    Исключения не люблю, а вот move semantics почти не нужно если у тебя всё хорошо с обычными указателями. Если писать в Ява-стиле, то да -- эта штука реально спасает. Сишнику это не очень критично. У сишника не часто бывают нюансы когда ты "передаёшь эстафету" и умираешь:) Да и сишник всегда может передать указатель и забыть/забить.
    Но да, иногда эта штука крута и прикольна. Но ничего такого.
     
     
  • 6.17, Crazy Alex, 13:57, 07/07/2017 [^] [ответить] [смотреть все]  
  • +3 +/
    Создать объект и отдать его контейнеру - это редкая операция А если нет - то ли... весь текст скрыт [показать]
     
     
  • 7.21, A.Stahl, 15:04, 07/07/2017 [^] [ответить] [смотреть все]  
  • +4 +/
    Я обычно передаю указатель Редко бывает, когда объект нужен много кому и непоня... весь текст скрыт [показать]
     
     
  • 8.26, Crazy Alex, 15:36, 07/07/2017 [^] [ответить] [смотреть все]  
  • +/
    А у меня - как-то через раз Лежит себе вектор указателей на объекты, чему-то од... весь текст скрыт [показать]
     
     
  • 9.29, Аноним, 15:58, 07/07/2017 [^] [ответить] [смотреть все]  
  • +5 +/
    Код является простым когда простой инспекцией удается выловить границы жизни объ... весь текст скрыт [показать]
     
     
  • 10.31, A.Stahl, 16:15, 07/07/2017 [^] [ответить] [смотреть все]  
  • +6 +/
    Красиво казал. Меня там минусуют, но они не совсем понимают суть. Я не против новых "фишек", просто некоторые нюансы мне не нравятся. Не более того.
    Я просто стараюсь оставлять код очевидным. Очевидным даже для сишников (я и сам такой), а не только для плюсовиков, которые следят за последними стандартами.
    Я не против. И никогда не использовал положение чтобы что-то запрещать. Просто некоторые вещи я не использую (даже не не использую, а избегаю использовать). Не более того.
     
     
  • 11.54, Crazy Alex, 21:58, 07/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Фишка в том, что очевидный для сишников и очевидный для плюсовиков - вещи ра... весь текст скрыт [показать]
     
     
  • 12.60, Аноним, 22:33, 07/07/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    Это лишь ваше представление которое основано, к сожалению, на незнании или малоо... весь текст скрыт [показать]
     
     
  • 13.69, Crazy Alex, 01:40, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Ох как забавно Подход узнаем как должно работать и реализуем сразу велосипед... весь текст скрыт [показать]
     
     
  • 14.74, Аноним, 04:17, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Очень забавно потому что вот это - вменяемый разработчик вообще на любом языке ... весь текст скрыт [показать]
     
  • 12.80, pripolz, 11:34, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    броо А вообще я редкостный хейтер всего кроме Си хотя писал на 100 языках... весь текст скрыт [показать]
     
     
  • 13.100, Vkni, 17:51, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    А вы и так не знаете, не переживайте Даже пишущий на ассемблере не знает, как о... весь текст скрыт [показать]
     
     
  • 14.124, Аноним, 01:44, 09/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Это и не нужно, во-первых Во-вторых речь не о машинном исполнении была Ложное ... весь текст скрыт [показать]
     
     
  • 15.127, Vkni, 02:08, 09/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Ну да, на каком-то уровне приходится останавливаться Ну можно остановиться на а... весь текст скрыт [показать]
     
     
  • 16.129, Аноним, 02:46, 09/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Зачем вообще вы снова асм тянете, я не пойму Вот люди пишут на java и не парятс... весь текст скрыт [показать]
     
     
  • 17.130, Vkni, 02:56, 09/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Ветка такая См несколько комментов выше ... весь текст скрыт [показать]
     
     
  • 18.133, Аноним, 05:48, 09/07/2017 [^] [ответить] [смотреть все]  
  • +/
    В 12 54 Crazy Alex написал свое ОГРАНИЧЕННОЕ понимание программирования в Си... весь текст скрыт [показать]
     
     
  • 19.135, Vkni, 07:29, 09/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Я писал недавно зарегистрировавшемуся товарищу на букву p ... весь текст скрыт [показать]
     
     
  • 20.140, Аноним, 16:14, 09/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Точно, сообщение 12 80 от пользователя pripolz Но это не меняет ситуацию с пост... весь текст скрыт [показать]
     
  • 11.61, Аноним, 22:41, 07/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Я не кравиво сказал, а рассказал как оно обстоит в реальном программировании У ... весь текст скрыт [показать]
     
  • 10.52, Crazy Alex, 21:45, 07/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Умные указатели сложность, в общем, не особо прибавляют, если дать себе труд раз... весь текст скрыт [показать]
     
     
  • 11.59, не программист, 22:23, 07/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Я хорошо знаю и умею использовать умные указатели и для меня это уже пройденный ... весь текст скрыт [показать]
     
     
  • 12.68, Crazy Alex, 01:31, 08/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Единственная Ситуация, когда от них больше вреда, чем пользы - это когда в про... весь текст скрыт [показать]
     
     
  • 13.71, Аноним, 03:55, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Вы вообще программировали что-нибудь серьезное Когда вы будете думать о том как... весь текст скрыт [показать]
     
  • 6.58, Аноним, 22:19, 07/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    А как же Вы обрабатываете ошибки Я Плюсы знаю неплохо, но пишу на чистом Си Пр... весь текст скрыт [показать]
     
     
  • 7.81, pripolz, 11:52, 08/07/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    я всю обработку ошибок кладу в макрос, в котором и печать в лог номера строки ко... весь текст скрыт [показать]
     
     
  • 8.119, Аноним, 22:47, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Ну, у Вас по сути примерно такая же обработка ошибок, как и у нас А про плюсови... весь текст скрыт [показать]
     
  • 8.121, Vkni, 23:54, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Их должно быть несколько, если выделяются сразу несколько ресурсов И не перепут... весь текст скрыт [показать]
     
     
  • 9.126, pripolz, 02:08, 09/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    инициализация нулями спасёт мир for int i 0 i 5 i if f i ... весь текст скрыт [показать]
     
     
  • 10.128, Vkni, 02:14, 09/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Это костыль под конкретный случай Взять какую-нибудь другую структуру и опа ... весь текст скрыт [показать]
     
  • 10.131, pripolz, 03:29, 09/07/2017 [^] [ответить] [смотреть все]  
  • +/
    упс, не по теме написал Сори ... весь текст скрыт [показать]
     
  • 9.136, Аноним, 09:15, 09/07/2017 [^] [ответить] [смотреть все]  
  • +/
    У нас на метки с освобождением ресурсов и восстановлением уходит до половины тел... весь текст скрыт [показать]
     
  • 5.13, yet another anonymous, 12:56, 07/07/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    Бред ... весь текст скрыт [показать]
     
     
  • 6.18, Crazy Alex, 14:00, 07/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Говорю же - можно, но морока Придётся самому отслеживать все случаи, когда надо... весь текст скрыт [показать]
     
     
  • 7.22, yet another anonymous, 15:05, 07/07/2017 [^] [ответить] [смотреть все]  
  • +/
    move не имеет к _ptr отношения _ptr подразумевают move при достаточно полно... весь текст скрыт [показать]
     
     
  • 8.23, Crazy Alex, 15:31, 07/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Нет Подразумевалось умные указатели радикально упрощают реализацию move-семант... весь текст скрыт [показать]
     
     
  • 9.35, yet another anonymous, 17:18, 07/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Т е второй вариант Мне нравится такой подход неявно подразумевается вполне оп... весь текст скрыт [показать]
     
     
  • 10.53, Crazy Alex, 21:51, 07/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Оно везде так Называется best practices Использование ничего-то отличающегос... весь текст скрыт [показать]
     
  • 4.25, kai3341, 15:35, 07/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Или ещё вариант на этапе проектирования закладывается больше гибкости и универс... весь текст скрыт [показать]
     
  • 4.34, anonymous, 17:13, 07/07/2017 [^] [ответить] [смотреть все]  
  • –3 +/
    Они будут правы А вот вы не будете Будете старым пердуном, который не успевает... весь текст скрыт [показать]
     
     
  • 5.82, pripolz, 12:30, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Почитайте книгу Современный и эффективный С Там автор докажет вам, что auto... весь текст скрыт [показать]
     
     
  • 6.97, anonymous, 17:32, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Правда Может вы что-то не так вычитали А если так, то замените auto на что-то ... весь текст скрыт [показать]
     
  • 6.99, Vkni, 17:46, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Можно ссылку ... весь текст скрыт [показать]
     
     
  • 7.105, pripolz, 19:29, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Там ниже в беседе кидали на магаз О-Райли Effective Modern C Майерса ... весь текст скрыт [показать]
     
     
  • 8.110, Vkni, 19:57, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    А-аа, Майерс Просто modern C - это в разные времена совершенно разное ... весь текст скрыт [показать]
     
  • 3.5, Crazy Alex, 12:08, 07/07/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    1 Профессионалы часто пишут что-то большое, и долго Со временем качество кода ... весь текст скрыт [показать]
     
     
  • 4.66, Алконим, 01:23, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Если будет падать качество кода, то упадёт и скорость разработки, и проект упрёт... весь текст скрыт [показать]
     
     
  • 5.76, Вареник, 08:08, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Любой проект постепенно обрастает заплатками и требует специальных мер от команд... весь текст скрыт [показать]
     
  • 5.77, Вареник, 08:13, 08/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Написать модуль по спеку - не совсем жизненный цикл проекта Тот же проект пото... весь текст скрыт [показать]
     
  • 5.79, Аноним, 11:22, 08/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Полностью поддерживаю В нашей команде качество кода растёт со временем Во-перв... весь текст скрыт [показать]
     
  • 3.9, Аноним, 12:30, 07/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Желание того что-бы их код работал так как они решили, а не как вздумается компи... весь текст скрыт [показать]
     
  • 3.117, anonymous, 22:26, 08/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    я за 15 лет вокруг как раз вижу что становясь профессионалами люди начинают упро... весь текст скрыт [показать]
     
  • 2.14, Аноним, 13:15, 07/07/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Скажи это новым появляющимся языкам программирования или таким языкам как C , у ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.30, Анончик, 16:04, 07/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Ну, в этом есть и один плюс - C либы екзешники из-за этого очень легко восстано... весь текст скрыт [показать]
     
     
  • 4.36, Аноним, 17:29, 07/07/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    Я про JIT говорил Первоначальная компиляция в CIL как и у Java в их промежуточ... весь текст скрыт [показать]
     
  • 4.37, _, 17:54, 07/07/2017 [^] [ответить] [смотреть все]  
  • –4 +/
    У нормальных людей есть исходники с комментами, дока, и мэйл лист с аффтарами Н... весь текст скрыт [показать]
     
     
  • 5.57, Анончик, 22:13, 07/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    RE занимаются не только вантузятники и не только на вантузе ... весь текст скрыт [показать]
     
  • 2.24, Ivan_83, 15:32, 07/07/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Это не отменяет 100500 вариантов написания popcnt, для начала, которые хер компе... весь текст скрыт [показать] [показать ветку]
     
  • 2.33, Comdiv, 16:53, 07/07/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Это проблема восприятия маленьких понятных примеров Для того, чтобы показать пр... весь текст скрыт [показать] [показать ветку]
     
  • 1.6, Crazy Alex, 12:13, 07/07/2017 [ответить] [смотреть все]  
  • +/
    Ещё один с "С/С++"? То, о чём он говорит, ловится любым приличным современным линтотулзом для плюсов, потому что сейчас на плюсах так писать вообще не принято.
     
     
  • 2.10, RazrFalcon, 12:34, 07/07/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Каким образом линтер ловит выход за пределы массива и use after free?
     
     
  • 3.19, Crazy Alex, 14:29, 07/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Очень просто - ругается на попытки использовать сишные массивы и голые сишные ук... весь текст скрыт [показать]
     
     
  • 4.145, Анонимный Алкоголик, 10:20, 10/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Ну то есть никак не находит выход за пределы массива Что показывает практическу... весь текст скрыт [показать]
     
  • 2.15, A.Stahl, 13:26, 07/07/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    >потому что сейчас на плюсах так писать вообще не принято.

    Ну это ты загнул.

     
     
  • 3.20, Crazy Alex, 14:36, 07/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Не загибал https github com isocpp CppCoreGuidelines blob master CppCoreGuid... весь текст скрыт [показать]
     
  • 3.28, Ordu, 15:46, 07/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Нет, это не он загнул Просто кто-то отстал от развития практик применения C л... весь текст скрыт [показать]
     
     
  • 4.38, A.Stahl, 18:02, 07/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    >boost

    Это отдельная тема. Специфическая тема. Не моя тема.

     
     
  • 5.41, Ordu, 18:42, 07/07/2017 [^] [ответить] [смотреть все]  
  • +3 +/
    При чём здесь моя или не моя Из наблюдений за копошением вокруг разных язык... весь текст скрыт [показать]
     
     
  • 6.43, yet another anonymous, 19:09, 07/07/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    Хмм Что-то в вашей позиции есть интересное По крайней мере, даже Страуструпу... весь текст скрыт [показать]
     
     
  • 7.45, A.Stahl, 19:58, 07/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Пинок инженера инженеру это всегда хорошо Хотя я и не рад смотря куда развивают... весь текст скрыт [показать]
     
     
  • 8.62, Аноним, 22:59, 07/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Плюсы с самого начала были не до конца продуманным костылем Почитайте труды кри... весь текст скрыт [показать]
     
     
  • 9.85, pripolz, 14:01, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Можно поподробнее Авторство, ссылочку С удовольствием бы почитал, интересуюсь ... весь текст скрыт [показать]
     
     
  • 10.94, Аноним, 17:08, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    К сожалению я не могу дать вам ссылок, т к не нашел и не сохранил Я это читал ... весь текст скрыт [показать]
     
  • 10.98, Vkni, 17:43, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Unix Haters Handbook, страница 203 и далее Но надо понимать, что сейчас ЦэПэПэ ... весь текст скрыт [показать]
     
  • 6.87, pripolz, 14:06, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален Рекоммендую к прочтению код какого-нибудь авторитетного ... весь текст скрыт [показать]
     
     
  • 7.88, Ordu, 14:29, 08/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    gt оверквотинг удален Да-да, я знаю Всё можно написать на ассемблере Но заче... весь текст скрыт [показать]
     
     
  • 8.90, pripolz, 14:43, 08/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Чтобы кода было меньше, а технологий больше Вообще все любители высокоуровневых... весь текст скрыт [показать]
     
     
  • 9.91, Ordu, 15:32, 08/07/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    На ассемблере будет меньше кода Ха Ты попробуй писать на ассемблере Или на C ... весь текст скрыт [показать]
     
     
  • 10.92, pripolz, 16:02, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    именно так На си будет меньше кода Ты себя-то называешь умным человеком Речь ... весь текст скрыт [показать]
     
     
  • 11.101, Vkni, 17:53, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Только если не использовать ООП и шаблоны там, где это не надо Ручная эмуляция ... весь текст скрыт [показать]
     
     
  • 12.103, pripolz, 18:38, 08/07/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    1 Фишки Glib не пересекаются с фишками компилятора С вообще начнём с этого ... весь текст скрыт [показать]
     
     
  • 13.111, Vkni, 20:07, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Тем не менее, их эмуляции классов можно было бы сделать на С проще Вместо пре... весь текст скрыт [показать]
     
  • 12.116, Аноним, 22:24, 08/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Практика показывает что ненадо чуть менее чем везде ... весь текст скрыт [показать]
     
  • 11.107, Ordu, 19:49, 08/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Ты специально учился где-то демагогии или самоучкой Очень похоже на второе спе... весь текст скрыт [показать]
     
  • 7.102, Vkni, 17:55, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Если держать себя в руках, то на ООП на С получится лучше, т к не надо вручну... весь текст скрыт [показать]
     
     
  • 8.104, pripolz, 19:21, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    1 то, что ты называешь возможностями я называю ограничениями 2 Пример очень п... весь текст скрыт [показать]
     
     
  • 9.112, Vkni, 20:09, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Вот конкретно здесь мы его неоднократно поднимали с CrazyАлексом, arisu и д р С... весь текст скрыт [показать]
     
  • 4.39, _, 18:16, 07/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Опыи фортрана, лиспа, кобола и кучи других - выкинули Ну в таком ключе С тоже... весь текст скрыт [показать]
     
     
  • 5.42, Ordu, 18:54, 07/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Я не совсем понял к чему это Но опыт фортрана, лиспа, кобола и кучи других непр... весь текст скрыт [показать]
     
     
  • 6.44, yet another anonymous, 19:13, 07/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Да, Степанов свои идеи сначала на Lisp е реализовывал C как мультипарадигменн... весь текст скрыт [показать]
     
  • 4.47, Аноним, 20:22, 07/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Можно пару-тройку ссылок на литературу хотя хватит и имен названий, отсутсвие п... весь текст скрыт [показать]
     
     
  • 5.50, Crazy Alex, 21:31, 07/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Из того, что я видел - лучше всего именно гайд под редакцией Страуструпа Саттера... весь текст скрыт [показать]
     
     
  • 6.55, Аноним, 22:00, 07/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Благодарю. Будем посмотреть.
     
  • 5.56, Ordu, 22:09, 07/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Мейерс http shop oreilly com product 0636920033707 do... весь текст скрыт [показать]
     
  • 5.65, Аноним, 23:19, 07/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Очень рекомендую к просмотру, т к без нормальной критики вы не поймете язык пол... весь текст скрыт [показать]
     
     
  • 6.67, Crazy Alex, 01:24, 08/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Как бы наоборот Для того, кто не поварился в плюсах с пол-года хотя бы этот тек... весь текст скрыт [показать]
     
  • 6.72, Vkni, 03:58, 08/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Там, мягко говоря, далеко не всё описано И по шаблонам с STL он как-то очень сл... весь текст скрыт [показать]
     
     
  • 7.75, Аноним, 04:21, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Согласен и поэтому автор предусмотрительно написал ... весь текст скрыт [показать]
     
  • 4.73, Vkni, 04:02, 08/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Лучшая практика применения современного C - это можешь на нём не писать - не ... весь текст скрыт [показать]
     
     
  • 5.83, Ordu, 12:33, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    И чё с того Ты в курсе что предпочтения в эргономике тренируются Они не просто... весь текст скрыт [показать]
     
     
  • 6.93, Vkni, 16:43, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Зачем нужно видеть красоту в примерах из boost а, где в глазах просто рябит от с... весь текст скрыт [показать]
     
     
  • 7.108, Ordu, 19:54, 08/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Для того, чтобы использовать C максимально эффективно Может быть другие отказ... весь текст скрыт [показать]
     
     
  • 8.113, Vkni, 20:16, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Кто это вам сказал Это потому, что вы не хотите видеть другие причины С другой... весь текст скрыт [показать]
     
     
  • 9.114, Ordu, 20:58, 08/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Опыт десятков и сотен тысяч программистов, которые писали на C в различных сти... весь текст скрыт [показать]
     
     
  • 10.115, Vkni, 21:57, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Я совершенно не уверен в том, что статистика наведена правильно Вообще, руковод... весь текст скрыт [показать]
     
     
  • 11.120, Ordu, 23:43, 08/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Да, это заговор ZOG Они подтасовывают данные, пишут лжеруководства и вообще вво... весь текст скрыт [показать]
     
     
  • 12.122, Vkni, 00:09, 09/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Это не заговор Просто некоторые люди варятся в одном и том же добре уже довольн... весь текст скрыт [показать]
     
     
  • 13.123, Ordu, 01:14, 09/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    А Ну да Наконец-то всем на радость Мы теперь нашли слова такие Те что лучше о... весь текст скрыт [показать]
     
     
  • 14.125, Vkni, 01:57, 09/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Конечно, import uses open значительно лучше Они ведь подразумевают развитую сис... весь текст скрыт [показать]
     
     
  • 15.138, Ordu, 14:04, 09/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Видимо, опыт опыту рознь ... весь текст скрыт [показать]
     
     
  • 16.141, Vkni, 16:22, 09/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Разумеется - я и другие языки знаю.
     
  • 15.148, yet another anonymous, 11:35, 10/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Превед, GOLD ... весь текст скрыт [показать]
     
     
  • 16.162, Vkni, 07:45, 12/07/2017 [^] [ответить] [смотреть все]  
  • +/
    С этой точки зрения разницы между ld и ld gold нет Одна, в целом, фигня ... весь текст скрыт [показать]
     
  • 4.84, pripolz, 12:50, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален Ещё через 5 лет стиль ещё сильнее отточится на 200 ст... весь текст скрыт [показать]
     
     
  • 5.86, Ordu, 14:05, 08/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Да Программирование не стоит на месте, развивается Методов всё больше Какой к... весь текст скрыт [показать]
     
     
  • 6.89, pripolz, 14:32, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    программирование стоит на месте Хорошие программы, взрывающие мозг - это bash, ... весь текст скрыт [показать]
     
     
  • 7.96, Vkni, 17:20, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Очень, очень костная штука Хиндли-милнер, несчастный, был открыт за 20 двадцат... весь текст скрыт [показать]
     
  • 7.106, Ordu, 19:32, 08/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Если тебе так кажется, то разуй глаза и посмотри по сторонам Даже алгоритмы сор... весь текст скрыт [показать]
     
     
  • 8.109, Vkni, 19:57, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Ага Потому, что формулы разные По крайней мере для евклидовой метрики ... весь текст скрыт [показать]
     
  • 8.132, pripolz, 04:53, 09/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Именно так, совершенно непонятно При чём тут принудительная связь между данными... весь текст скрыт [показать]
     
     
  • 9.134, Vkni, 05:55, 09/07/2017 [^] [ответить] [смотреть все]  
  • +/
    В C это можно сделать разными методами и использовать ООП совершенно не обязат... весь текст скрыт [показать]
     
     
  • 10.137, pripolz, 11:11, 09/07/2017 [^] [ответить] [смотреть все]  
  • +/
    а в рантайме такой темплейт подхватит заранее неизвестный тип фигуры ... весь текст скрыт [показать]
     
     
  • 11.142, Vkni, 16:39, 09/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Нет, конечно Но основная проблема тут не в языке, а в предметной области - у ва... весь текст скрыт [показать]
     
  • 9.139, Ordu, 14:50, 09/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Ты путаешь каноны ООП с канонами C Современный C не любит наследование и с ... весь текст скрыт [показать]
     
     
  • 10.143, Аноним, 18:26, 09/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Очередная порция словесного поноса.
     
  • 10.144, pripolz, 23:33, 09/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Исключительно забавное заявление Во первых потому, что ООП - это шаблон проект... весь текст скрыт [показать]
     
     
  • 11.150, Vkni, 14:59, 10/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Окститесь, 20 лет прошло с тех пор ... весь текст скрыт [показать]
     
     
  • 12.151, pripolz, 18:24, 10/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    То есть, современный С не просто не любит наследование, а ДАВНО не любит насле... весь текст скрыт [показать]
     
     
  • 13.152, yet another anonymous, 20:06, 10/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Ещё более забавно См Elements of Programming by A Stepanov ... весь текст скрыт [показать]
     
  • 13.153, Vkni, 03:05, 11/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Хуже - ОЧЕНЬ ДАВНО не любит наследование Если бы не Степанов с STL, а дальше Ал... весь текст скрыт [показать]
     
     
  • 14.154, pripolz, 12:14, 11/07/2017 [^] [ответить] [смотреть все]  
  • +/
    А шаблоны, несмотря на ряд косяков синтаксис, отсутствие раздельной компиляции ... весь текст скрыт [показать]
     
     
  • 15.155, Vkni, 12:21, 11/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Во-первых, нет Он понятен только до определённого момента - пара ступеней вложе... весь текст скрыт [показать]
     
     
  • 16.156, pripolz, 13:30, 11/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Ни разу в жизни не сталкивался Вообще шаблоны - большая редкость Применение ша... весь текст скрыт [показать]
     
     
  • 17.157, anonymous, 14:01, 11/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    В каком чудном мире вы живете PS Это же вы где-то в этой теме сказали, что про... весь текст скрыт [показать]
     
     
  • 18.158, pripolz, 14:25, 11/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Было преувеличение Если по порядку, то Dark Basic, Visual Basic 98 VB6 , Free ... весь текст скрыт [показать]
     
     
  • 19.161, Vkni, 02:25, 12/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Ну почти всё закрыто. Не хватает JavaScript'а, языков семейства ML и Пролога.
     
  • 19.163, anonymous yet another, 08:29, 12/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Дневник молодого поэта Всю ночь писал стихи о любви Закрыл тему ... весь текст скрыт [показать]
     
  • 14.160, anonymous yet another, 23:06, 11/07/2017 [^] [ответить] [смотреть все]  
  • +/
    А вот это уже мешки синтаксического сахара Так и до диабета недалеко ... весь текст скрыт [показать]
     
  • 9.149, Анонимный Алкоголик, 11:48, 10/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Вы не поняли Речь была о том, что в языке вам не хватает средства выразить неки... весь текст скрыт [показать]
     
  • 5.118, Vkni, 22:28, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Haskell, классы типов и т д instance Show Double where show d Проблем... весь текст скрыт [показать]
     
  • 5.147, Анонимный Алкоголик, 11:12, 10/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    - Когда захотите, изложите как полагается Выдающееся может получиться желание... весь текст скрыт [показать]
     
  • 4.146, Анонимный Алкоголик, 10:39, 10/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Совершенно верно Вон Наплодилось вас, проталкивателей стилей Норовящих по... весь текст скрыт [показать]
     
  • 1.16, Игорь, 13:56, 07/07/2017 [ответить] [смотреть все]  
  • –1 +/
    Полезно, спасибо!
     
  • 1.27, manster, 15:45, 07/07/2017 [ответить] [смотреть все]  
  • –1 +/
    И все таки почему например chromium начинает притормаживать, захлебываться и с трудом возвращать память при открытии ~+10 вкладок.
     
     
  • 2.40, _, 18:18, 07/07/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –3 +/
    Потому что по сложности современный браузеры вплотную приблизились к операционны... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.46, Аноним, 20:21, 07/07/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    Абсолютная чушь Вдумайся в значение слова браузер что означает обозреватель ... весь текст скрыт [показать]
     
     
  • 4.48, anomymous, 21:17, 07/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Ойййй Для начала хотелось бы посмотреть на полноценную динамику в офисном реда... весь текст скрыт [показать]
     
     
  • 5.63, Аноним, 23:02, 07/07/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    Вы кроме WordPad что-нибудь встречали?
     
  • 4.49, Соня, 21:24, 07/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Тем не менее вся эта webня выглядит ужасающе сложно Даже потрясающе сложно для ... весь текст скрыт [показать]
     
     
  • 5.64, Аноним, 23:06, 07/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Это для вас лично Скрипты - это вообще огромный туnой костыль В целом там ниче... весь текст скрыт [показать]
     
     
  • 6.78, angra, 09:01, 08/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Тебя совсем не смущает, что аллокаторы памяти были созданы для многих десятков О... весь текст скрыт [показать]
     
     
  • 7.95, Аноним, 17:13, 08/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Столь дилетантская попытка сравнения позорна для технического ресурса Вы дейтви... весь текст скрыт [показать]
     
     
  • 8.159, Соня, 19:19, 11/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Много всего что по отдельности не сложно, но со странным поведением и так далее, да?
    Типа как скопировать настройки столетнего компьютера где использовали костыли, поверх них ещё костыли, потом ещё костыли для частичной нейтрализации эффекта тех костылей, прикручивали новые вещи разными странными способами, так? Я правильно понял?
    Но там нет особенно непонятных идей, сложных алгоритмов и всего такого?
    Вся сложность в этой массе и всех возможных способах её работы, сложной логике получившейся ...получившегося продукта.
    Все так?
     
  • 2.51, Crazy Alex, 21:36, 07/07/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    Потому что современные браузеры - безумная попытка сделать рантайм для GUI-при... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.70, manster, 03:04, 08/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Нет, с пару тройкой вкладок все относительно хорошо Проблемы начинаются когд... весь текст скрыт [показать]
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor