Skip to main content

Peganza Pascal Analyzer review

Got messy code? Clean it up with Peganza Pascal Analyzer

The tree-based navigation system is easy to use

Our Verdict

Perganza is worth the asking price just for that all-important Warnings category


  • Worth it for the Warnings category

    Picks up oft-repeated errors


  • Metrics category not useful

    Reports silly things

Peganza Pascal Analyzer, as the name suggests, is a code analyser aimed specifically at Pascal (Delphi) developers. Unlike profilers - which are in the business of measuring the run-time performance of an application - the Peganza Analyzer is interested in the static structure of your code. You might perhaps think that not much information can be produced from such an analysis but you'd be surprised.

The analyser runs as a separate application, but can optionally be integrated into the Delphi IDE. When working with a new project, you're asked for the main project file - usually the .DPR file - a number of other questions about the type of analysis you want to perform, and then the analysis gets under way. Even with a relatively modest project, the amount of information generated is often rather overwhelming.

Once the analysis is complete, you'll see an Explorer-style window with a tree-based navigation pane on the left and content information on the right.

Peganza Analyzer is great for tracking down the sort of oft-repeated errors made by new Delphi developers. A classic mistake is to forget to call the base destructor within the destructor of a derived class, something that's done through the 'inherited' keyword.

Miss this, and your program will compile and run just fine, but will leak memory every time an instance of that class is destroyed. From this simple example, you ought to appreciate how a static analyzer like Peganza complements a run-time profiler.

That said, there are many things Peganza reports which are just plain silly. Pascal isn't a case-sensitive language, so it's possible to refer to a variable as 'TimeDelay' or as 'Timedelay' - the compiler won't mind. But Perganza does.

In addition, there's a lot of metrics information that tells you things like which of your subroutines have the most parameters; again - who cares? And Perganza strangely refers to subroutines as 'Subprograms'. You can mostly ignore the metrics category; there's nothing useful there.

But for our money, Perganza is worth the asking price just for that all-important Warnings category. Get all those warnings down to zero, and your project will be in good shape. Dave Jewell