[comp.lang.modula2] QuickMod, TopSpeed Compilers Compared

FELLOWS@UNB.CA ("David M. Fellows") (07/04/90)

    I have just finished an evaluation of the TopSpeed and
QuickMod compilers as tools for use in an introductory
programming course.  My recommendation is to use QuickMod.  We
shall see next fall how it performs under load.

    The information obtained may be of interest to this list.  A
brief summary is given here, an electronic copy of the complete
report can be requested by email to

    fellows@unb.ca
and giving a return email address. Ask for report TR90-01 "An
evaluation of PC-based Modula-2 Compilers".

    A printed copy of the report can be obtained by writing
(regular mail) to me at the address below.

EXCERPTS FROM THE REPORT:

        Fast compilation, good error diagnostics and robustness,
and convenient editing were the prime factors considered in this
evaluation.  Debugger performance was played down because I think
that students learn more by doing their own diagnostic output.



        The products evaluated were Stony Brook QuickMod and
TopSpeed Modula 2 (versions 1.14 and 2.0).  The shareware
product, FST Modula, was given early consideration but was
rejected because run-time errors produce only a hex dump of
the machine state.

QuickMod
     The minimum hardware requirements are 512 K RAM and 2-360 K
floppy diskdrives.  640 K RAM is required to work with programs
with many modules or large arrays.  640 K is also needed to use
the debugger from within the environment.  720 K floppy disks are
likely to be much more "comfortable" than 360 K disks.  QuickMod
is usable from 2-360 K floppies or 1-720 K floppy.  Individual
users will be "happier" with a hard disk.  DOS 3.0 is apparently
the earliest version of DOS that the system reliably works with.

        The QuickMod runtime library includes a fairly close
implementation of the library described in Wirth's report.  It
also includes a number of modules specific to MS-DOS and the IBM-
PC.  These were not tested, but appear to provide useful
functions.

TopSpeed Modula-2.  Versions 1 and 2.

        Version 1 is now available only to the education market.
Version 2 is the current commercial product.  Version 2 has more
glitz an improved interface to other DOS programming tools and is
a lot bigger, slower and more expensive than version 1.

        TopSpeed is an optimizing compiler.  The design criteria
were evidently fast execution and compatibility with other DOS
programming tools generally.  It has an air of "being all things
to all people".  Version 1's stated minimum hardware requirements
are 2-360K floppy diskettes.  This configuration was not tested
since  my other tests indicate that a hard disk would be required
for satisfactory operation on an individual machine.  640K RAM is
required in practice.  DOS 3.0 or later is required.  Version 2
requires a hard disk.

        The TopSpeed runtime library is quite different from the
"standard" one.  This produced some problems in running textbook
problems "off the shelf".  An implementation of Wirth's InOut
module (and others) is provided in source form.

3.      Evaluation

        Evaluation was done in two phases.  The first was an
informal evaluation of the usability of the system.  This was
done by entering, debugging and running a total of 4 programs and
noting problems, features, etc.  The second was a performance
test of the systems installed on a JANET network.

3.1     Usability
Typical student-sized programs were liberally seeded with errors:
typing, deliberate syntax, undeliberate logic.  The utility of
the systems in diagnosing them was assessed.  TopSpeed Modula-2,
Version 2 was not given a full test, but it appears to be
essentially the same as Version 1 for our purposes.

        TopSpeed generally has very good syntax error messages.
QuickMod has even better ones.  Both systems place the user back
in the editor with the cursor positioned at the first error at
the end of a compile which fails.  Subsequent errors are located
by pressing the PF8 key.  TopSpeed allows you to skip backwards
as well as forwards, QuickMod does not.

        Both systems use "Wordstar-like" editors.  I don't
particularly like either, but both are adequate for the job.  The
TopSpeed editor has more flexibility with respect to windows - up
to 4, arbitrarily sized and placed.  QuickMod will retain as many
files as will fit in RAM.  The windows can be switched to display
any file in memory very quickly.

        Both compilers have options for generating code to check
for subscripts out of range, use of nil pointer, etc.  These are
specified using menu selection and, for TopSpeed, by using
"magic" comments.  TopSpeed required a magic comment in each
module to turn on pointer checking.  This was disaster prone.

        My overall impression, gained while debugging the test
programs, was that QuickMod provided a more robust working
environment.  I crashed the machine several times, requiring a
power-off re-boot, while using TopSpeed; never while using
QuickMod.  I attribute this in part to the better pointer
checking in QuickMod.

        My overall impression was that the TopSpeed menu and
editing interface is somewhat better than the QuickMod interface.
The difference is not large, there are good and bad points to
each.

3.2     Performance

        The primary benchmark used for performance evaluation
was the following sequence of actions applied to a single
module program.

        1. Load system and program (Timed)
        2. Modify the program with a null-effect modification
           (Not timed)
        3. Run the program ("make", compile, link and execute)
           (Timed to start of execution)
        4. Run the program again (Timed to start of execution).
        5. Edit the program to induce errors.  ("VAR" changed
           to "VAOR") (Not timed)
        6. Run the resulting program.  (Timed to placement of
           cursor in file for error correction).
        7. Exit system (Timed)

This benchmark was run on these configurations:

        1. A true IBM PC-XT
        2. A diskless IBM-PC (8088 processor) served by the
           JANET E-cluster file server.
        3. An IBM PS-2 Model 25 (8086 processor) served by the
           JANET E-cluster file server.
For the tests of configurations 2 and 3 the network was otherwise
idle.  The file server is an AT-class machine with 90 megabyte
disk drives.

        Each compiler was setup to include the most protection,
diagnostic, and safety features.  Optimization was inhibited for
the TopSpeed compilers.

        The results of this test are summarized in Table 3.2.1


                           Table 3.2.1

                      Compilation Benchmarks


                        Load    Run     Run     Compile Exit
                        System          Again   time    System
                                                error
____________________________________________________________
PC-XT
        QuickMod        10      6.3     1.0     5.6     NM
        TopSpeed V1.14   9.4    31      1.2     14      NM

8088/JANET
        QuickMod        18      19      1.0     6.6     13.5
        TopSpeed V1.14  18      82      2.5      8       8
        TopSpeed V2     41      200     10      NM      14

8086/JANET
        QuickMod        14.5    15      0.5     5.5     11
        TopSpeed V1.14  13.5    73      4.0     46       6
        TopSpeed V2     28      139      9      28       8


Notes:  1.  All times in seconds
        2.  NM - Not Measured



A secondary benchmark was run to determine program execution
speeds.  This consisted of timing the execution of a selection
sort procedure sorting from 100 to 500 random long integers.  The
measured portion of this benchmark does no I/O.

        The results are summarized in table 3.2.3.  Some
measurements of WATFOR77 executing the same algorithm coded in
Fortran are also shown for comparison.  In each case full
diagnostics, no optimization was specified.

                           Table 3.2.3

            Execution Speed Benchmark Times (seconds)

        Number of elements   Top Speed   QuickMod   WATFOR77
          sorted                 V1.14
        ________________________________________________________
           100                     0.7        0.9        2.5
           200                     1.8        2.4        8.5
           250                     2.9        3.8       NM
           400                     7.1        9.2       NM
           500                    10.8       14.2       NM

        The TopSpeed compiler is much slower at compiling than
the QuickMod compiler.  Most of the difference can be attributed
to disk activity.  This disk activity will put a severe strain on
the JANET network and file server.

        As Table 3.2.3 shows, the compiled code from TopSpeed is
about 30% faster than QuickMod.  In our application this
difference is not nearly as significant as the compile times.

3.3     Summary

        Table 3.3.1 attempts to quantify and summarize my
impressions of the two systems.  Version 2 of Top Speed is not
considered because it is noticeably poorer in performance than
its cheaper predecessor.  The scale is 0-10, high numbers are
better.

                           Table 3.3.1

                        Summary Comparison

                                    Top Speed          QuickMod
                                      V1.14
        ______________________________________________________
        editor                           7                7
        menus, selection sequences       8                6
        libraries                        6                9
        error messages                   8               10
        robustness                       5                8
        debugger                         8                7
        "making" speed                   3                8
        hardware resources required      5                7
        per student disk space           7                5
        ______________________________________________________
        Total (90 max)                  57               67

4.0     BUSINESS CONSIDERATIONS

    The following information is paraphrased from the vendors
advertisments and promotional literature.  It is obvoiusly
subject to change.  License fees are to students or educational
institutions.

        TopSpeed Modula-2 pricing is as follows (US$):
        V1.17 (incl. debugger) $60 direct to students, incl.
                shipping
        Site license:   $500    first 10
                         $30    each additional

                                         100 stations $3200.00

        V2.0    $130 direct to students including shipping

        Site license:   $995    first 10
                         $50    each additional

                                         100 stations $5495.00


        Stony Brook QuickMod - Pricing (US$):

        $40 each on orders of 20 or more for students

        Site license:   $ 250  up to 10
                        $1000  up to 50
                        $2500  unlimited (on university's
                                                machines)
                                 (10 copies of documentation)

                                         100 stations $2500.00

APPENDIX

Supplier Addresses


        QuickMod:

                Stony Brook Software
                187 E. Wilbur Rd., Suite 9
                Thousand Oaks, CA 91360
                U.S.A.
                (805) 496-5837


        TopSpeed:

                Jenson & Partners International
                1101 San Antonio Road, Ste. 301
                Mountain View, CA 94043
                U.S.A.
                USA 1-800-543-5205
                Canada 1-800-543-8452
                Europe (01) 253-4333




David M. Fellows
Professor,
Faculty of Computer Science
University of New Brunswick
P. O. Box 4400
Fredericton, N. B., Canada
E3B 5A3

Telephone: 506 453 4566