Справедливости ради, современные компиляторы немного умеют в статический анализ и находят ошибки, которые могут произойти в рантайме
Например, pycharm даже даёт советы по правильному количеству пустых строк и по правильной длине комментариев.
Ну тут особо умным быть не надо, кури РЕР 8 и все будет хорошо, как говорится. И вообще это не "современные компиляторы", это "современные среды разработки" так делают.
"даже"? сукаблять, ты походу из тех долбоебов, которые описание к играм делают наподобие: "там можно спиздить ДАЖЕ туалетную бумагу", а на деле получается что только бумагу и можно спиздить. трейлерные педерасты. я не знаю как это назвать. но рчеь даже не об этом. ты реально считаешь подсчет пустых строк и колчиество символов в коментарии реально сложной аналитической проблемой? ты ваще олень? сложнее хеллоувролд писал ченить? с какого сегмента рынка? ты ваще кто по разработке? хуль такой дерзкий? россума знаешь, не? while раз, или списком в глаз?
ты совсем дурачок что ли?
Походу он и есть тот тех лид что пиздит стаю обезьян.
Сами компиляторы мало умеют.
Есть специализированные статические анализаторы. Для C и C++ - бесплатный Clang Static Analyzer, если готов платить, то наш PVS-Studio тот же. Если вообще богатый буратино - Coverity от Синопсиса. Последний и в динамический умеет.
Есть специализированные статические анализаторы. Для C и C++ - бесплатный Clang Static Analyzer, если готов платить, то наш PVS-Studio тот же. Если вообще богатый буратино - Coverity от Синопсиса. Последний и в динамический умеет.
Если б компилятор все отлавливал, всякие qa да и куча девелоперов не нужна была б. С работой бы справлялась стая обезьян с томом Страуструпа и нещадно пизженая тех лидом.
Т.е ничем не отличалось бы от реальности, так?
Протестую! В статически типизированном языке (не уверен, что среди компилируемых есть другие) компилятор будет находить ошибки типов. И чем более "крутая" в языке система типов, тем большего количества логических и прочих ошибок можно избежать. Например, у вас есть метод, который ищет в базе пользователя и возвращает что-то вроде Optional, а другой метод принимает User. Хочешь не хочешь, это придется обработать. Вот, минус один потенциальный NullReferenceError.
Кроме того, как выше заметили, современных компиляторы (тот же gcc/g++) очень продвинутые и находят большое количество возможных косяков. Например: некорректное обращение к массивам статических размеров, если это можно вычислить, неправильные форматные строки, многие случаи неправильных указателей, могут ругаться на устаревшие небезопасные методы итп итд.
Кроме того, как выше заметили, современных компиляторы (тот же gcc/g++) очень продвинутые и находят большое количество возможных косяков. Например: некорректное обращение к массивам статических размеров, если это можно вычислить, неправильные форматные строки, многие случаи неправильных указателей, могут ругаться на устаревшие небезопасные методы итп итд.
Ну, вообще-то компилятор тупо выполняет свою работу по трансформации одного кода в другой. И все бы ничего, но синтаксические ошибки не дают ему этого сделать, вот он и ругается
ты так это подаешь, как будто компилятор – какой-то перекодировщик просто.
к счастью, существуют не только синтаксические ошибки, и ради них конечно языки программирования и изобретаются. сиречь, ошибки системы типов, ошибки целостности любых ссылок или скоупов.
к счастью, существуют не только синтаксические ошибки, и ради них конечно языки программирования и изобретаются. сиречь, ошибки системы типов, ошибки целостности любых ссылок или скоупов.
Бывают ситуации пострашнее.
"Поле foo может быть финальным".
А может и не быть, ёпта.
А может и не быть, ёпта.
Чтобы написать коммент, необходимо залогиниться