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 [ответить] [смотреть все]    [к модератору]
  • +31 +/
    Во-первых -- 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 [^] [ответить] [смотреть все]    [к модератору]  
  • +16 +/
    Многие профессионалы сталкиваются с ситуацией, когда они сами пишут и проектируют.
    Соответственно они это делают как им удобно.
    Вот, например, я -- терпеть не могу шаблоны. 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 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Это лишь ваше представление которое основано, к сожалению, на незнании или малоо... весь текст скрыт [показать]
     
     
  • 13.69, Crazy Alex, 01:40, 08/07/2017 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Ох как забавно Подход узнаем как должно работать и реализуем сразу велосипед... весь текст скрыт [показать]
     
     
  • 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 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Я не кравиво сказал, а рассказал как оно обстоит в реальном программировании У ... весь текст скрыт [показать]
     
  • 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 [^] [ответить] [смотреть все]     [к модератору]  
  • –5 +/
    У нормальных людей есть исходники с комментами, дока, и мэйл лист с аффтарами Н... весь текст скрыт [показать]
     
     
  • 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 [^] [ответить] [смотреть все]     [к модератору]  
  • +4 +/
    При чём здесь моя или не моя Из наблюдений за копошением вокруг разных язык... весь текст скрыт [показать]
     
     
  • 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-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor