home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol080 / sample.doc < prev    next >
Text File  |  1985-02-09  |  5KB  |  102 lines

  1.           Explanation of SAMPLE Programs
  2.  
  3.     If you like to compare speed records for your
  4. software and/or hardware against other people's, here are
  5. two more "benchmark" programs (or rather, two versions of
  6. the same program), in six different languages (a source
  7. file, in ASCII, for each language -- SAMPLE/*.* -- and the
  8. "COM" files generated by S-BASIC, BDS C, and Pascal/Z, in
  9. case you want to test those on your machine and don't have
  10. the compilers). You can, if you like, use these to prove
  11. that your compiler (Pascal/Z, in this case) is the best,
  12. since each version ran fastest in Pascal/Z. Actually,
  13. though, that wasn't the point of this exercise at all, since
  14. it was something I worked up as a simple demonstration (for
  15. new, prospective computer users) of the differences between
  16. different high-level languages. The main advantage of this
  17. "SAMPLE" program is that it is so simple that it is very
  18. easy to translate it between different languages and do the
  19. same things in each one. As a result, though, it should not
  20. be taken very seriously as a benchmark comparison, since
  21. most of the features of any language will not be tested.
  22.     With that disclaimer on record, here are the results
  23. I obtained compiling and running the different versions on
  24. my own system (a North Star Horizon-2, with the standard
  25. 4-MHz Z-80; all languages, including North Star BASIC,
  26. running under control of CP/M 2.2). In the table below, "run
  27. times" (all in seconds) are given for "Version 1" (as the
  28. programs were submitted), with an empty loop (all operations
  29. in the loop commented out); and "Version 2", which is
  30. obtained by removing the comment or "REM" indicators inside
  31. the loop in each program. "Compile time" is the time
  32. required to convert the source program (Version 1, in each
  33. case, since the times were almost the same here) to a
  34. running program, with all steps under automatic control of a
  35. ".SUB" file (note, however, that if you want to actually do
  36. this with the Pascal/Z program, you will have to change its
  37. name to "SAMPLE.PAS", since, as noted in the "ARTIL/Z.PAS"
  38. program, the Pascal/Z compiler, assembler, and/or linker
  39. will not accept some types of legal CP/M file names, and
  40. this is another example of one that wasn't accepted).
  41.  
  42.           Results of SAMPLE Program Tests
  43.  
  44. Language       Run time (1)    Run time (2)    Compile time
  45. ========       ============    ============    ============
  46. North Star BASIC   35.6       157.0         0
  47. CBASIC-2       16.2        43.8        27.9
  48. S-BASIC        12.5        24.6        55.0
  49. BDS C            0.9         6.4        34.2
  50. Pascal/M        4.1         9.0        40.4
  51. Pascal/Z        0.7         3.6       111.9
  52.  
  53.     You may draw your own conclusions from these data.
  54. Some of my own are:
  55.     (1) Don't bother with any version of BASIC; even a
  56. version that compiles to machine code (S-BASIC) is
  57. significantly slower than any of the "good" languages (and
  58. notice, in the program listings, that I had to use some
  59. tricks that weren't in the manuals to get even that good a
  60. performance out of the BASIC's). CBASIC, if written in the
  61. normal way (without using the integer variable tricks shown
  62. in the program), is so much slower than even an interpreter
  63. BASIC (North Star) that it might more properly be referred
  64. to as an "encoder", rather than a compiler -- maybe useful
  65. if you're selling programs that you don't want modified, but
  66. otherwise not much use.
  67.     (2) Among the "good" languages, Pascal/Z is slightly
  68. faster, for both versions, than BDS C, even though both
  69. produce machine-code programs; looks like a slight plus for
  70. Pascal/Z, especially for Version 2 of the program.
  71.     (3) As expected, Pascal/Z is significantly faster
  72. than Pascal/M, although the advantage is much less for
  73. Version 2 (only a factor of 2.5), where the program actually
  74. has to do something. In my experience with other programs,
  75. especially ones with lots of disk activity, the differences
  76. can be even smaller.
  77.     (4) On the other hand, running speed isn't
  78. everything. The third column dramatically demonstrates what
  79. most of you probably know already to be Pascal/Z's worst
  80. "feature" -- waiting for a program to be compiled is like
  81. waiting for Godot. I don't know if there is any easy way for
  82. Ithaca to improve that, but unless you write programs which
  83. run perfectly the first time, the length of the compile-time
  84. cycles can almost make you forget that when that program
  85. FINALLY runs right, it will run a few seconds faster than
  86. the other guy's.
  87.  
  88.     These opinions, of course, are mine alone, not those
  89. of anyone else in the Pascal/Z Users' Group; and while the
  90. speed comparisons may be of interest, I still think that a
  91. better use of these programs is in their demonstration of
  92. how different languages handle the same job. I hope they are
  93. of some use, for either purpose.
  94.  
  95.             Jim Bearden
  96.             Cancer Center, University of Hawaii
  97.             1236 Lauhala Street
  98.             Honolulu, Hawaii 96813
  99.  either purpose.
  100.  
  101.             Jim Bearden
  102.             Cancer Center, University of HawN##╩▓ ═*┬ Ç═>╬═H<╟7╩▓ 7═    !╬═$ 87═┬ ■N╚■Y┬í╬═%╔:Ä■ô2┬▓ :É■?╩▓ ■K╩ò═┬ !  ":É■D╩═∩("!δ*%═h.>╥