The OpenNET Project / Index page

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

Intel открыл код системы машинного обучения ControlFlag для выявления ошибок в коде

24.10.2021 19:13

Компания Intel открыла наработки, связанные с исследовательским проектом ControlFlag, нацеленным на создание системы машинного обучения для повышения качества кода. Подготовленный проектом инструментарий позволяет на основе модели, обученной на большом объёме существующего кода, выявлять различные ошибки и аномалии в исходных текстах, написанных на высокоуровневых языках, таких как C/C++. Система подходит для определения в коде различных видов проблем, от определения опечаток и неверного сочетания типов, до выявления пропущенных проверок значения NULL в указателях и проблем при работе с памятью. Код ControlFlag написан на языке С++ и открыт под лицензией MIT.

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

Для проверяемого кода выполняется похожий процесс определения шаблонов, которые сверяются с эталонным деревом принятия решений. Большие расхождения с соседними ветвями свидетельствуют о наличии аномалии в проверяемом шаблоне. Система также позволяет не только выявить ошибку в шаблоне, но и предложить исправление. Например в коде OpenSSL была выявлена конструкция "(s1 == NULL) ∧ (s2 == NULL)", которая встречалась в синтаксическом дереве всего 8 раз, в то время как ближайшая ветка со значением "(s1 == NULL) || (s2 == NULL)" встречалась около 7 тысяч раз. Система также выявила аномалию "(s1 == NULL) | (s2 == NULL)" которая встречалась в дереве 32 раза.

При анализе фрагмента кода "if (x = 7) y = x;" система определила, что обычно в операторе "if" для сравнения числовых значений используется конструкция "переменная == число", поэтому с большой вероятностью указание "переменная = число" в выражении "if" вызвано опечаткой. Такую ошибку выловили бы и традиционные статические анализаторы, но в отличие от них ControlFlag не применяет готовых правил, в которых трудно предусмотреть все возможные варианты, а отталкивается от статистики использования всевозможных конструкций в большом числе проектов.

В качестве эксперимента при помощи ControlFlag в исходных текстах утилиты cURL, которая часто приводится как пример качественного и проверенного кода, была выявлена незамеченная статическими анализаторами ошибка при использовании элемента структуры "s->keepon", который имел числовой тип, но сравнивался с булевым значением TRUE. В коде OpenSSL, помимо вышеупомянутой проблемы с "(s1 == NULL) ∧ (s2 == NULL)", также были выявлены аномалии в выражениях "(-2 == rv)" (минус был опечаткой) и "BIO_puts(bp, ":") <= 0)" ( в контексте проверки успешного завершения функции должно было быть "== 0"). Также сообщается, что применение ControlFlag позволило выявить в неконкретизированном проприетарном ПО нескольких сотен ошибок, приводивших к крахам и проблемам при работе с памятью.

  1. Главная ссылка к новости (https://www.linkedin.com/pulse...)
  2. OpenNews: IBM открыл CodeNet для систем машинного обучения, транслирующих и проверяющих код
  3. OpenNews: GitHub открыл наработки по применению машинного обучения для поиска и анализа кода
  4. OpenNews: Система машинного обучения для синтеза типового кода на языке Java
  5. OpenNews: Выпуск cppcheck 2.6, статического анализатора кода для языков C++ и С
  6. OpenNews: Facebook открыл код статического анализатора Mariana Trench
Лицензия: CC BY 3.0
Наводку на новость прислал Artem S. Tashkinov
Короткая ссылка: https://opennet.ru/56018-controlflag
Ключевые слова: controlflag, intel, code, debug
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (83) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, QwertyReg (ok), 19:22, 24/10/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –23 +/
     

     ....ответы скрыты (10)

  • 1.2, QwertyReg (ok), 19:31, 24/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –24 +/
    Ну а по теме - очередная подпорка к Сишке и двигание кроватей. Понятно, что на Си написано полно легаси, которое надо как-то обмазывать анализаторами, чтобы постоянно не вываливались overflow и use-after-free, но настанет день, когда люди перейдут к инструменту с изначально нормальной архитектурой и и чем скорее этот день настанет, тем лучше для IT.
     
     
  • 2.4, Аноним (4), 19:35, 24/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А есть какие-то предпосылки? :think
     
  • 2.8, Аноним1212 (?), 19:52, 24/10/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Так перепишите на свой раст, покажи этим Интелам как надо!
     
     
  • 3.9, QwertyReg (ok), 19:54, 24/10/2021 [^] [^^] [^^^] [ответить]  
  • –13 +/
    > Так перепишите на свой раст, покажи этим Интелам как надо!

    Вы там из криокамеры выходите, в 2k21 уже ОС написали на Rust.

     
     
  • 4.11, Аноним (11), 20:02, 24/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > написали

    У тролля, как всегда, проблемы со временем. Правильно: "пытаются написать, затыкая дыры утечки памяти".

     
     
  • 5.20, Аноним (20), 21:26, 24/10/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > У тролля, как всегда, проблемы со временем. Правильно: "пытаются написать, затыкая дыры
    > утечки памяти".

    Молодец, приплел раст и опустил ссылку - ведь опеннетным джЫнтельменам принято верить на слово ...

     
     
  • 6.48, Совершенно другой аноним (?), 09:26, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Вот новость: https://www.opennet.me/opennews/art.shtml?num=54316, а вот в новости про утечки:

    ;----------------------X8
    Из новшеств, добавленных в выпуске Redox 0.6, можно отметить:
    * Полностью переписана система управления памятью ядра (rmm, kernel memory manager). В новой реализации удалось избавиться от утечек памяти, которые создавали проблемы при использовании старого менеджера памяти. Кроме того, повышена стабильность поддержки многоядерных систем.
    ;----------------------X8

    Теперь верите?

     
     
  • 7.66, Аноним (-), 15:40, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    https gitlab redox-os org redox-os redox - issues 855 Умению читать опой Да, ... большой текст свёрнут, показать
     
     
  • 8.69, Совершенно другой аноним (?), 16:52, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Написали то, что было написано и по-английски https www redox-os org news rel... текст свёрнут, показать
     
     
  • 9.71, Аноним (-), 17:24, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну это было понятно, что чтецы опой не могут в английский и попытаются спрыгнуть... текст свёрнут, показать
     
     
  • 10.72, Совершенно другой аноним (?), 17:54, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    я не понимаю, почему Вы тычите мне это issue, когда сами разработчики говорят пр... большой текст свёрнут, показать
     
     
  • 11.75, Аноним (-), 19:06, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    когда сами разработчики Яснопонятно Кроме обыкновенного балабольства - ничего ... текст свёрнут, показать
     
     
  • 12.81, Совершенно другой аноним (?), 08:30, 26/10/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Не знаю, что Вы там угадали, но пока складывается такое ощущение, что Вы просто ... большой текст свёрнут, показать
     
  • 4.38, Аноним (38), 01:36, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    ОС означает прежде всего управление железом, то есть наличие драйверов. Сколько там драйверов на расте пишут производители железа?
     
     
  • 5.76, Аноним (-), 19:08, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > ОС означает прежде всего управление железом, то есть наличие драйверов. Сколько там
    > драйверов на расте пишут производители железа?

    Ты хочешь сказать, что Линукс до середины двухтысячных почти совсем не являлся ОС? Или вантузятники опять совсем-совсем не палятся?


     
     
  • 6.80, Аноним (38), 01:33, 26/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А как использовать ОС если она не поддерживает современного железа?(привет FreeBSD)
     
     
  • 7.85, Аноним (-), 11:50, 26/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > А как использовать ОС если она не поддерживает современного железа?(привет FreeBSD)

    А можно просто ответ на вопрос, без вот этого вот вечного юлежа?
    > (привет FreeBSD)

    Привет, вендузятники
    https://pic4a.ru/110/5We.png


     
     
  • 8.88, Аноним (38), 09:38, 27/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Железо какое 4х летней давности Как там wi-fi работает D И напоследок https... текст свёрнут, показать
     
     
  • 9.89, Аноним (-), 21:01, 27/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    И че Нормально работает Ты можешь хоть каждый год менять и радовать маркетолух... текст свёрнут, показать
     
     
  • 10.91, Аноним (38), 01:57, 28/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Пройдусь по пунктам 1 Насчет линков по поводу консолей у линукса своя ниша ... большой текст свёрнут, показать
     
     
  • 11.93, Анонимм (??), 14:29, 28/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Угу, угу На самых популярных консолях, т е PS 3,4,5, Nintendo Switch - фря, а ... большой текст свёрнут, показать
     
  • 2.24, Anonymous XE (?), 22:40, 24/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А откуда уверенность, судя по твоим другим постам, что этим инструментом станет именно Rust?
     
     
  • 3.30, QwertyReg (ok), 22:51, 24/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А откуда уверенность, судя по твоим другим постам, что этим инструментом станет
    > именно Rust?

    Найдите, пожалуйста, место в моём посте, где я упоминал Rust.

     
     
  • 4.61, Anonymous XE (?), 12:46, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    "Вы там из криокамеры выходите, в 2k21 уже ОС написали на Rust.", например. Ну ещё можно посмотреть в обсуждении новости о Rust.
     
  • 2.40, Аноним (40), 03:13, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Все приведённые в примере ошибки являются логическими, язык тут вообще не при чём.
     
  • 2.79, anonymous (??), 23:49, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Уже давно все энтерпрайзы перешли на Java, где пофиксены почти все опасные места C++. Остались только игроделы и финансисты с наносекундами.
     

  • 1.3, Нанобот (ok), 19:33, 24/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > (s1 == NULL) ∧ (s2 == NULL)

    И теперь програмисты должны переписать код просто потому, что глупая машина его не понимает?

     
     
  • 2.12, Аноним (11), 20:03, 24/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А если надо именно такую проверку сделать?!
     
     
  • 3.26, Anonymous XE (?), 22:43, 24/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Дообучить
     
  • 3.27, torvn77 (ok), 22:47, 24/10/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну если надо то человек ответственный за код знает что надо и так сделано не случайно.
     
  • 3.33, Аноним (33), 23:42, 24/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну конкретно в этом случае можно не выпендриваться и заменить ^ на !=
     
     
  • 4.41, Аноним (41), 05:36, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как и в случае "(s1 == NULL) | (s2 == NULL)" заменить конечно можно, но ценой производительности. OpenSSL пишут фанатики производительности, иначе бы давно уже выкинули бы весь Ассемблер. Причём в OpenSSL Ассемблер используется не для специфических инструкций, а ради нескольких процентов производительности, недостижимых для нынешних компиляторов.
     
     
  • 5.43, Ordu (ok), 06:17, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > ценой производительности

    Вовсе нет. Возьми компилятор и проверь. Этот случай -- либо ошибка программиста, либо откровенный тупняк и понимание компилятора на уровне первой половины 90-х.

     
  • 4.50, Нанобот (ok), 09:50, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    подозреваю, что у сабжа при проверке такого кода тоже истерика случится
     

  • 1.6, ыы (?), 19:47, 24/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сперва подумал что в кои-то веки написали правду:
    ... открыл код системы .... для выявления ошибок в коде

    Потом прочитал новость.... оказывается открыли для блага человечества...

     
  • 1.10, InuYasha (??), 20:00, 24/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Мало. Нужен ещё код анализатора для выявления ошибок систем машинного обучения. А потом зациклить их и получить что-нибудь идеальное.
     
     
  • 2.15, Аноним (15), 20:18, 24/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    для идеальности нужна мат модель и анализатор логики. Иначе как ни украшай статистику, она ей и останется. Тоесть реальные ошибки не видит, зато ругается на нестандартный синтаксис. Короче аттракцион.
     
     
  • 3.19, Аноним (19), 21:11, 24/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    анализатор логики анонима по яп, не глядя в код находит, на таких-то идеальных примитивах и надо обучать, а не норвиках и скоробогатовых.
     
  • 3.46, Ordu (ok), 07:01, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > для идеальности нужна мат модель и анализатор логики.

    О какой матмодели ты сейчас говоришь? О матмодели программы? То есть о спецификации программы, написанной на формальном языке? Это может помочь, но во-первых, есть ограничения такого подхода, во-вторых это переход с C/C++ на язык описания спецификаций.

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

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

    Человеку удаётся справиться с этим, потому что он сам себе модель программиста, писавшего код. А статистику всю нейросетки в его голове считают.

    ИИ сейчас подошёл вплотную к тому, чтобы реализовать нужную статистику. А это автоматически означает, что какая-никакая модель программиста у ИИ уже есть. Остался один шаг -- сделать эту модель каузальной, а не корреляционной. Но это, я полагаю, произойдёт после того, как хайп на deep-learning спадёт: все самым натуральным образом сначала тянутся за низковисящими фруктами и лишь когда они кончатся, начинают чесать репу: как достать остальные?

    Но я к тому, что с этой перспективы, статистический поиск багов -- это шаг в нужном направлении. Либо мы движемся в направлении выдачи компилятору всё большего количества информации о задумке программиста (а это всякие расты, или даже формальные языки спецификаций программ), либо мы учим ИИ угадывать эту задумку по тому, что есть. И вот это второе, естественно напрашивается делать так, как это делает человек, то есть статистически.

     
  • 2.44, Ordu (ok), 06:23, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, не надо. Это как с вероятностью вероятности. Когда это понятие приходит в голову впервые, первая реакция тренированной психики включает в себя мысль о необходимости бесконечной рекурсии: вероятность вероятности вероятности ... вероятности. Но если присмотреться, то хоть вероятность вероятности и полезное понятие, но уже третий уровень бесполезен. На третьем уровне уже нет никакой неопределённости, потому что вся неопределённость была описана на первых двух этажах.
     

  • 1.14, Онаним (?), 20:10, 24/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А, так вот откуда meltdown взялся.
     
  • 1.18, YetAnotherOnanym (ok), 20:47, 24/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > имеющегося массива кода

    Фраза "все так пишут" заиграла новыми красками.
    Кстати, а ответы со stackoverflow эта штука умеет использовать? А если при "формировании эталонного дерева принятия решений" возникнет неоднозначность, она сможет сама спрашивать там совета?

     
     
  • 2.28, torvn77 (ok), 22:49, 24/10/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Фраза "все так пишут" заиграла новыми красками  

    Это да, было бы хорошо прикрепить к тем или иным вариантам или веткам то, как код такого типа оценивает эксперт.

     

  • 1.21, Аноним (21), 21:42, 24/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Да давайте уже пилите квантовый компьютер. Чтобы подавал на вход суперпозицию из всех возможных наборов входных данных. И смотрел, что будет.
     
     
  • 2.29, torvn77 (ok), 22:51, 24/10/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    А на выходе бы получал суперпозицию всех возможных результатов и потом бы гадал какой же из них правильный?
     
     
  • 3.31, Антифрактал (?), 23:11, 24/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    улыбнул
     

  • 1.34, Аноним (34), 00:03, 25/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ребята из Intel ME похоже не знали и не узнают что такая штука появилась в соседнем отделе...
     
     
  • 2.35, ты клоун (?), 00:39, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ребята из Интел и знают и умеют всяко больше тебя.
     
     
  • 3.45, john_erohin (?), 06:56, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    такое вполне возможно.
    но: почему у них периодически всплывает всякая гадость ?
     
     
  • 4.90, ты клоун (?), 23:38, 27/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Наверное потому что их процы одни из самых распространённых и популярных(как бы это не бесило амд-фантёлок) в мире и в их коде не роются только самые ленивые. Вот и всё. Всякие например эльбрусы в мире нафик никому не упали, соответственно ничё не всплывает, потому-что не ищут. Неужели так трудно простейшую логическую цепочку создать?
     
     
  • 5.92, john_erohin (?), 06:44, 28/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    поправка: их код закрыт. гадость ищут посторонние люди практически наощупь.
    представьте, насколько легче и быстрее искать, имея на руках спецификации ?
    а еще - насколько легче их устранить заранее ?
     

  • 1.39, vitalif (ok), 02:49, 25/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > неконкретизированном проприетарном ПО

    не надо интелу стесняться говорить "в нашем собственном говнокоде")

     
  • 1.47, животнае (?), 08:15, 25/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    производители статических анализаторов у себя внутри - "давай глянем как оно в сравнении с нашим и дополним своим модулем от интола если что".
     
     
  • 2.55, Аноним (-), 11:15, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Лысый из ПиВаСа тебя одобряет.
     
     
  • 3.68, животнае (?), 16:38, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    так у него на сайте в его профиле написано - "Лучше 10 раз пересобрать, чем один раз подумать."
     

  • 1.51, Sw00p aka Jerom (?), 10:27, 25/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >была выявлена незамеченная статическими анализаторами ошибка при использовании элемента структуры "s->keepon", который имел числовой тип, но сравнивался с булевым значением TRUE.

    А в чем проблема если язык это позволяет?

     
     
  • 2.52, Совершенно другой аноним (?), 10:34, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >>была выявлена незамеченная статическими анализаторами ошибка при использовании элемента структуры "s->keepon", который имел числовой тип, но сравнивался с булевым значением TRUE.
    > А в чем проблема если язык это позволяет?

    Ну, как-бы, если числовое, то там может быть, например, не только 0 и 1, а например, и 2, 3 и т.д. А сравнение, насколько я понял, происходило, с конкретным TRUE (например 1).

     
     
  • 3.59, Sw00p aka Jerom (?), 12:03, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Ну, как-бы, если числовое, то там может быть

    ну и как быть? на что заменить? если там сравнение двух чисел, пихнет 2 или 3 результат сравнения будет ложным, к чему это приведет - проблема программиста.

     
     
  • 4.60, Совершенно другой аноним (?), 12:32, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >>Ну, как-бы, если числовое, то там может быть
    > ну и как быть? на что заменить? если там сравнение двух чисел,
    > пихнет 2 или 3 результат сравнения будет ложным, к чему это
    > приведет - проблема программиста.

    Например заменить на "!= 0", уже, как минимум, будет нечто похожее тому посылу, который был изначально в коде.

     
     
  • 5.63, Sw00p aka Jerom (?), 13:27, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    так TRUE и есть 1, то есть число, типа булеан как такогого в сях нет. Типы, только в голове у програсмиста.
     
     
  • 6.64, Совершенно другой аноним (?), 13:39, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > так TRUE и есть 1, то есть число, типа булеан как такогого
    > в сях нет.

    к сожалению, или к счастью, тип _Bool уже есть, причём, если не путаю, ещё со времён C99.

    Но тут вопрос в другом, чисто логически если "s->keepon" числовой, то там вряд ли будет интересовать значения "1" и "не 1", а скорее, имхо конечно, будет интересовать значения "0" и "не 0".

     
     
  • 7.67, Sw00p aka Jerom (?), 16:05, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > к сожалению, или к счастью, тип _Bool уже есть, причём, если не
    > путаю, ещё со времён C99.

    Это макрос разворачивающийся в 0 и 1 целочисленную.

    > Но тут вопрос в другом, чисто логически если "s->keepon" числовой, то там
    > вряд ли будет интересовать значения "1" и "не 1", а скорее,
    > имхо конечно, будет интересовать значения "0" и "не 0".

    тут без разницы, от 0 отталкиваемся или от 1. Таким же макаром, можно за TRUE считать любое целое положительное число большее чем 0, а за FALSE меньшее (отрицательное) или равное 0. И если в "s->keepon = 2" то проблем нет, расцениваем как TRUE. И с точки зрения анализатора ворнингов тут не должно быть, если компилятор допустил такое.


     
     
  • 8.70, Совершенно другой аноним (?), 16:56, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    не совсем, это тип В который может разворачиваться bool, если включить через st... текст свёрнут, показать
     
     
  • 9.73, Sw00p aka Jerom (?), 18:36, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Дело не во многозначности TRUE, а в неявном приведении int к bool который и раз... текст свёрнут, показать
     
  • 9.74, Sw00p aka Jerom (?), 18:41, 25/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    суть в том, что почему анализатор считает ошибкой то, что для компилятора норма ... текст свёрнут, показать
     
     
  • 10.82, Совершенно другой аноним (?), 08:37, 26/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Тут, как-бы не совсем статический анализатор, а эдакая себе система, которая мож... текст свёрнут, показать
     
     
  • 11.84, Sw00p aka Jerom (?), 11:48, 26/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    если это подобие ИИ, еще нужно пройтись в обратном порядке по пути принятия реше... текст свёрнут, показать
     
     
  • 12.87, Совершенно другой аноним (?), 12:30, 26/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Там у них для обучения предлагается три Dataset-а, 100M, 450M и 9G Возможно в D... текст свёрнут, показать
     

  • 1.54, Аноним (-), 10:56, 25/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Статистический анализатор - это хорошо. Это не модное нынче непереобучаемое свёрточное дерьмо.
     
     
  • 2.86, Sw00p aka Jerom (?), 11:52, 26/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >нынче непереобучаемое свёрточное дерьмо.

    так это пол беды, когда можно еще экспертами переобучить, куда хуже, когда принятия решение основано на парламентском большинстве, все так пишут - и ты так пиши:)

     

  • 1.58, Аноним (58), 11:57, 25/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Да просто акции интел упали более чем на 10,5% за день. Надо что-то делать.
     
  • 1.83, Аноним (83), 10:08, 26/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ..
    [-l source_language_number]                (default: 1 (C), supported: 1 (C), 2 (Verilog)
    ..

    и где там c++ ? п#зд#ны из штеуда...

     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру