rdempste@Daisy.EE.UND.AC.ZA (Rob Dempster) (06/27/91)
I am about to teach a Pascal course to a large group of students and would like to use software to partially evaluate the practical work done by the students. Does anyone know of public-domain or shareware which will assist me in this task. The software should typically monitor the programmers use of indentation, variable names of a reasonable length, comments and the like. Access to the source code of the software would be advantageous.
davidr@hplsla.HP.COM (David M. Reed) (06/29/91)
I have a couple of such programs on my HP-UX system (one for checking C code,
and one for checking Pascal). Unfortunately I do not have, nor do I know
where exists, the source code; so the version I have only runs on an HP
9000/300.
From the "readme" document:
HP Labs - Software Engineering Laboratory
Pascal Style and Metric Analyzer - Version A.00.02
Description:
The input is one or more syntactically correct Pascal
module or program. PMETRIC outputs the results of the style
analysis and HP metric statistics to the terminal.
Background:
PMETRIC is a program modeled after a paper by Michael J.
Rees, Automatic assessment aids for Pascal programs, SIGPLAN
Notices 17(10), October 1982.
Interpreting results:
PMETRIC returns two sets of information.
(A) HP metric statistics - this is the information the
Corporate Metric Council is collecting on software
projects in HP.
1) Compiler directives
2) Non-commented source
3) Whole comment lines
4) Number of blank lines
5) Total number of lines
in addition to the metrics requested by the CMC:
6) Number of modules
7) Number of identifiers
8) Part and Whole comment lines
(B) Pascal style analysis - makes 9 measurements on the
Pascal source and returns a style rating based on a
weighting table customizable by the user.
The 9 measures are:
1) Average number of characters per line
2) Percent comment lines
3) Percent indentation
4) Percent blank lines
5) Percent spaces in line
6) Average module length
7) Number reserved words used
8) Average identifier length
9) Number of gotos (note! negative score on this one)
For each measurement the following is displayed:
Mark - raw measurement
Delta - improvement to achieve a maximum score
( + need to add, - need to reduce)
Measures - describes the measurement taken
Score - weighted score
Max - maximum weighted score for this measurement
Total Score - sum of all weighted scores (max = 100)
Sample:
Compiler directives 53
Non-commented source 1301
Whole comment lines 785
Number of blank lines 140
------
Total number of lines 2279
Number of modules 56
Number of identifiers 499
Part & Whole comment lines 926
marks delta measures score Max
27.6 - 2.6 Average # characters per line : 7.3 15.0
24.6 - 15.6 Percent comment lines : 6.4 10.0
47.5 + 0.0 Percent indentation : 12.0 12.0
6.1 + 8.9 Percent blank lines : 0.0 5.0
9.4 + 5.6 Percent spaces in line : 0.0 8.0
23.2 + 0.0 Average module length : 20.0 20.0
55.0 + 0.0 Number reserved words used : 10.0 10.0
8.3 + 0.7 Average identifier length : 12.7 20.0
0.0 + 3.0 Number labels & gotos : 0.0 -20.0
------
Total Score 67.5
Customization:
PMETRIC files:
pmetric - executable binary program
pmetric.dict - reserve word list (must be sorted)
pmetric.wght - weight table for the 9 measurements
pmetric.dict :
You can add or delete reserve words from the dictionary but
remember to keep it sorted. PMETRIC will look for in the
current directory for pmetric.dict before it will look in
/usr/contrib/lib/pmetric.dict.
etc....