Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите найти программные инструменты для анализа кода!


kull ©   (2002-03-11 17:42:00) 

Народ! Помогите кто может!

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

Я пошарил по поисковикам но почти все для языков типа С++ Java.

Хотелось бы еще что-нибудь для Object-Pascal...


kull   (2002-03-12 12:07:00) [1]

Да программа для контроля правильной работы с памятью есть:
Memory Sleuth 2 - отличная штука ловит и память и ресурсы неосвобожденные.

Залез на http://www.peganza.com/- да действительно pascal analazer неплохая штука, но глючная.


mio   (2002-03-12 11:50:00) [2]

Утечки памяти можно ловить и без помощи MemCheck, который, конечно, написан умными людьми, но - уж очень хитро. Можно просто переопределить менеджер памяти и - считать кол-во обращений к Get/FreeMem, объемы, ну, и т.д. и т.п.


Alx2   (2002-03-12 10:29:00) [3]

Про "узкие" места в программе - Intel VTune


Андрианов Владимир   (2002-03-11 21:38:00) [4]

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


Фэ   (2002-03-11 19:33:00) [5]

Поищи CodeRush от Eagle Software.
Это не совсем то, что ты хочешь, но великолепный фоновый и организующий инструмент к Delphi&Builder (набор экспертов и пр.).
В том числе - оценка стиля программирования.
Не перестарайся на этом пути, однако.


vuk   (2002-03-11 19:29:00) [6]

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

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


kull   (2002-03-11 19:18:00) [7]

И еще.


> а мысли он, как я уже говорил, читать не умеет


Все мысли пишутся в виде кода, который обрабатывает компилятор (он кстати тоже является анализатором). Ведь для того и существует язык программирования. А если мыслю не выразить в виде алгоритма о и нечего анализировать. И не стоит переоценивать людей которые пишут анализируемый код, и недооценивать людей, пишущих инструменты для анализа.


kull   (2002-03-11 19:10:00) [8]


> vuk

Спасибо!
Посмотрю что это.


vuk   (2002-03-11 19:04:00) [9]

>процессе их деятельности появляются учаски кода выполняющие в
>принципе одно и тоже
Все это знакомо, только вот один и тот же по смыслу (или близкий по смыслу) код может выглядеть настолько по-разному у двух разных людей, что ни один анализатор исходников не поможет, а мысли он, как я уже говорил, читать не умеет.
Хотя, возможно, есть кое-что, что может решить часть проблем - http://www.peganza.com/


kull   (2002-03-11 18:56:00) [10]


> vuk

Это все верно.
Но стандарт программирования не поможет если код уже написан - это лишь профилактика.
И к тому же при следовании стандартам и определенному стилю, все равно можно написать жуткий код.

Вот еше пример: Повторяющийся код.
Есть несколько разработчиков.
И в процессе их деятельности появляются учаски кода выполняющие в принципе одно и тоже. Неплохо было бы свести это все в одну функцию. Это вариация на тему констант (если надо будет поменять алгоритм...).


vuk   (2002-03-11 18:43:00) [11]

Это не к качеству кода относится, а к стилю программирования и грамотной организации кода. Это лечится не программами, а выправлением этого самого стиля у программиста, введением стандартов на оформление кода и т.д.


kull   (2002-03-11 18:32:00) [12]


> vuk

Вот самый простой вариант.

Например есть код:

1.
------------------------------------
begin
.....
form1.caption := "title1";
.....
form2.caption := "title1";
.....
end;

2.
------------------------------------
const
title = "title1";
begin
.....
form1.caption := title;
.....
form2.caption := title;
.....
end;
-----------------------------------------------

Если потребовалось поменять "title1" на "title2"?

в первом случае:

Надо менять в двух местах. А если таких мест много да еще в разных файлах большого проекта.

во втором случае:

изменяется только строка с константой.


Поиск таких мест (первый вариант) более чем реален и не надо угадывать мысли програмиста.

И это не единственный пример как повысить качество и гибкость кода...
Вот для анализа таких (и других) штук я и хотел бы найти софт.


vuk   (2002-03-11 18:16:00) [13]

>хотелось бы и для анализа и оценки качества
Что есть критерий качества и как Вы хотите оценить качество кода без его выполнения? Те же утечки памяти только при выполнении всплывают... Программа Ваши мысли читать не будет...


kull   (2002-03-11 18:08:00) [14]


> vuk

Спасибо! Я посмотрел.
Но почти все для тестирования и отладки, а хотелось бы и для анализа и оценки качества...


vuk   (2002-03-11 17:51:00) [15]

Посмотрите http://www.automatedqa.com/


Наверх

Титульная страница Поиск, карта сайта Написать письмо