LINUX.ORG.RU

Открыт исходный код статического анализатора Infer

 , ,


3

4

Компания Facebook опубликовала исходные коды статического анализатора Infer, который используется внутри компании для выявления ошибок в исходном коде программ без их непосредственного запуска.

В настоящее время Infer умеет обнаруживать следующие проблемы в программах, написанных на C, Java и Objective-C:

  • разыменование NULL-указателей;
  • утечки памяти и ресурсов.

Исходный код Infer написан на языке OCaml и распространяется на условиях лицензии BSD.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: CYB3R (всего исправлений: 3)

Ответ на: комментарий от migesok

не напишут умный анализатор кода на каком угодно языке.

Ага! То есть есть некий волшебный язык, дающий сразу +10 к анализистости штоле? Тебе не приходило в голову что «универсальными» языки и называют за всеприменимость?

matumba ★★★★★
()
Ответ на: комментарий от matumba

Написание такого проекта на _промышленных_ языках будет походить на Тур де Франс.

Ну и теоретическая база просто прекрасно описана на ML, а окамл среди них самый популярный, компилируется в нативный код, хорошо взаимодействует с сишными библиотеками.

у них же был какой-то проект на Ди

Сравнение с Ди тут вообще некорректно.

olibjerd ★★★★★
()
Ответ на: комментарий от matumba

Очевидно же, C# и Java. Оба относительно просты, императивны, изучаются новичками в течении недели. Нанять спецов по таким языкам - проще ковыряния козявки.

Да, но ты ведь сам обозначил требование к языку - «на котором пишется не долбокод». Новички на ц-решётке или джаве просто по определению напишут долбокод.

anonymous
()
Ответ на: комментарий от matumba

Не напишут не потому, что язык не позволяет, а их квалификация.

olibjerd ★★★★★
()
Ответ на: комментарий от matumba

Я так понимаю, ты хочешь поспорить с тем, что в мэйнстриме не нужно пользоваться маргинальными языками

Я не собираюсь с тобой спорить. Я говорю о том, что есть некоторый круг задач, которые можно успешно решать с использованием малораспространенных технологий. Более того, в мире существует далеко не одна коммерческая компания, которая заколачивает бабло с помощью борщеты и маргинальщины.

ymn ★★★★★
() автор топика
Ответ на: комментарий от olibjerd

Борщехлебы так убедительно бухтят о преимуществах борщеязыков над промышленными языками, но почему-ио так и не написали ни одной полезной строчки кода.

anonymous
()
Ответ на: комментарий от anonymous

И все эти борщекомпании суперзасекречены

Конечно нет. Более того, ты и сам можешь нагуглить их названия.

ymn ★★★★★
() автор топика
Ответ на: комментарий от matumba

Все правильно, только еще Python и JavaScript.

anonymous
()
Ответ на: комментарий от matumba

Не выгоднее ли иметь пять мастеров, которые починят ЛЮБОЙ крепёж, чем 50 «каждый сам себе мастер»?

Эти пять мастеров должны обладать высокой квалификацией, такой, что собой затмят 50 подмастерий. На практике, как правило, так и есть. Любой квалифицированный программист знает десяток языков.

Время экспериментов прошло, сейчас не 70-ые, новых «ЛИСП"ов не будет. Языки устоялись и теперь настало время пилить сами инструменты, чтобы максимально облегчить разработку.

А новые лиспы и не нужны. Сегодняшняя братия и существующие осилить не может. Всё кукарекает, что там скобок много...

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

... На самом же деле, лисп - прекрасный инструмент для генерации своих языков для конкретных задач. К большому сожалению, все сейчас одурачены «повторным использованием на базе библиотек». Сейчас, когда надо решить какую-то задачу, программист начинает искать библиотеки, ну, или эти ваши фрэймворки. Без них большинство программирования и не мыслит. Решение задачи путём написания «прямого» кода считается «изобретением велосипеда» и осуждается одураченными красноглазиками. Т.е., отрасль поощряет не искусство программирования, а повтороное использование уже изобретённого велосипеда. Фобия написания чего-то своего, внушённая адептами разных ООП, являет в результате то, что написание новых языков для конкретных задач вытесненно этими вашими глючными библиотэками для убогих языков мэйнстрима. :-)

anonymous
()
Ответ на: комментарий от matumba

не напишут умный анализатор кода на каком угодно языке.

Ага! То есть есть некий волшебный язык, дающий сразу +10 к анализистости штоле?

Не волшебный и не +10, а ML и +5.

tailgunner ★★★★★
()
Ответ на: комментарий от ymn

Это, конечно, — холивар, но называются они — «хаскель»... :)

gns ★★★★★
()

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

anonymous
()
Ответ на: комментарий от olibjerd

Забавно. То есть, в 4.03 они обещают бета-версию, и, может быть, ее можно будет признать вполне не бетой.

Ну будем посмотреть.

gns ★★★★★
()
Ответ на: комментарий от gns

У Синопсиса (Coverity) интерфейс удобный + встроенный багтрекер. До этого состояния Infer еще очень долго пилить.

XVilka ★★★★★
()
Ответ на: комментарий от XVilka

Это такой сарказм был, если кто не понял.

gns ★★★★★
()
Ответ на: комментарий от matumba

Вопрос: не дурак ли ты, что наделал десять РАЗНЫХ крепежей и теперь молишься, чтобы оно не упало?

Молиться, чтобы не упало, я буду только если скрепил изолентой абсолютно всё. А если там, где надо — клеем, там, где надо — шурупом, там, где надо — изолентой, там, где надо — гвоздём... и так далее, то держаться будет хорошо.

Не выгоднее ли иметь пять мастеров, которые починят ЛЮБОЙ крепёж, чем 50 «каждый сам себе мастер»?

Э-э-э, конечно, а при чём тут? Да, выгоднее нанять пятерых, который могут разобраться в любом языке за ограниченное время, чем специалистов пасиплюсплюс.

Miguel ★★★★★
()
Ответ на: комментарий от matumba

Во-вторых, «быстрее» может быть только язык черепашки для рисования, все остальные языки - универсальные и отличаются степенью низкоуровневости и богатства библиотек.

Бред. На Erlang пишется быстрее, чем на C; на Scala — быстрее, чем на Erlang (а уж рефакторится и подавно). Потому что языки — разноуровневые, и это не библиотеками определяется.

Miguel ★★★★★
()

C++ не работает? Почему на сайте говорят что только для Андроида и iOS?

vertexua ★★★★★
()
Ответ на: комментарий от anonymous

Дятел, clang давно все это умеет.

Так умеет, что уже даже соц. сеть это «умеет» придумывает :-)

anonymous
()
Ответ на: комментарий от anonymous

Кого волнуют придумки наркоманов-борщехлёбов?

Борщехлёбы на гороховый суп переходят :-)

anonymous
()

Просмотрел тред мельком. Splint называли? Просто по ходу с 2010 года заброшенный анализатор умеет больше, чем этот пресловутый Infer...

northerner ★★★
()
Последнее исправление: northerner (всего исправлений: 1)
Ответ на: комментарий от northerner

Splint называли? Просто по ходу с 2010 года заброшенный анализатор умеет больше, чем этот пресловутый Infer...

Так и хочется спросить «а если против хода?».

tailgunner ★★★★★
()

разыменование NULL-указателей;

утечки памяти и ресурсов.

Это все? Разве шланг не умеет обнаруживать разыменование NULL-указателей? Для второго профайлер есть.

Freyr69 ★★★
()
Ответ на: комментарий от yurikoles

Ну да, а «9 женщин смогут родить ребёнка за 1 месяц».

9 детей за 9 месяцев. Косая аналогия. Разработка даже так не умеет масштабироваться.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.