IBM images. (computer languages) (column) Will Fastie.
I enjoy writing "Images," and it's been nice to get so many encouraging letters. In November, however, I blew it. This month my readers let me know it--so much for fame and fortune.
The problem was my benchmarked study of languages for the PC. Although mostly accurate, my work could have been somewhat more complete and I did, in fact, make a few mistakes. I think all the language system manufactures deserve fair treatment, so I've completed the study and corrected my mistakes. Table 1 is a new list of the language systems tested, and the results of the compilation, linkage, and execution of the Sieve of Eratosthenes Prime number program.
My first oversight was pointed out by a reader from new Jersey, James Holtman, who wrote to tell me that my time for IBM Pascal was accurate but misleading. Mr. Holtman correctly pointed out that Pascal does a considerable amount of run-time checking, especially in the Sieve because of the array references. In his version of the program, mr. Holtman included a compiler directive to disable the checking and obtained a time of 10 seconds, considerably faster than may reported 76 seconds and also faster than the fastest time I recorded. I modified my version to include the directive and obtained a time of 12 seconds. The difference in time is explained by a slight difference in the two versions: in mine, a loop is used to initialize the array while mr. Holtman calls the library routine FILLC. The times are excellent in either case, but FILLC is obviously a better approach. Sincere thanks to Mr. Holtman for his insight.
One thing is still true of Pascal: the executable file is very large at over 32,000 bytes. Only Fortran was larger, and it was twice the size.
Also on the subject of Pascal, Professor Scott Owen from Atlanta University wrote to tell me of his Sieve benchmarks of the UCSD p-system. The p-code version (that's an interpreted version) ran in 188 seconds in Pascal. A native code version (complied for the 8086/88) required 49 seconds. Professor Owen also benchmarked Fortran, but had to change the program to avoid a LOGICAL test. That version executed in 280 seconds, and a Pascal version revised to match the Fortran change required 288 seconds.
Professor Owen was rather excited about the performance. But he also wanted to point out that the UCSD p-system comes with a built-in full-screen editor which he considers excellent. He correctly points to the total integration of the p-system, and to the full compatibility with other hardware environments, such as Apple.
Let me digress for a second. The Professor was, I think, a little hurt that I did not include the p-system in my evaluation. He wrote that I "ignored" it, and he is quite correct. Although I am familiar with the p-system (my department was an early licensee of UCSD), I do not think it is of broad general interest. Software developers are very interested, and rightly so. But the vast majority of users will not have the system due to its cost, and the vast majority of users will probably never use a system implemented with it. IBM has on several occasions offered my a review copy, but I have declined. My attention will continue to be focused on PC-DOS, because I contend that 95% of all IBM PCs will be installed with it.
I appreciate the work Professor Owen did to prepare and report the Sieve results for the p-system.
The second oversight was with Basic. In the version I used, the numeric precision defaulted to single precision floating point. If a DEFINT A-Z statement is added at the beginning of the program, dramatic improvements appear in the compiled version. microsoft called me on this one. I think the results in Table 1 are self-explanatory, and really impressive. My statement in November that the Basic Compiler could improve performance was grossly understated in light of these new results.
I apologize to IBM and Microsoft for my misrepresentations. I hope none of you has been inconvenienced. Other Language Issues
One language I failed to mention in November is Janus from Rr Software. This language is a subset of Ada, the new "official" DOD language. I am not a fan of ada, and I don't know the language very well, so I procrastinated. In the meantime, a new update arrived, and guilt set in.
From Table 1 you can see that the language system performed rather well. Both the size of the object module and the size of the executable file are reasonable by comparison, and the execution time is right up there. Ada, like Pascal, does extensive run-time checking, but the version of the Sieve I used (provided by Rr Software as a sample package) included the necessary Pragmas (the Ada term for compiler directives) to disable the checks (I'll not make that mistake again!).
I am generally impressed with the professional level of effort RR Software has made with Janus. The system is complete and the document is above average. The manual will not teach you Ada, as the expected audience is knowledgeable programmers, but a list of books is provided as a guide to the primary references.
The system includes its own linker, assembler, and disassembler. Two versions of the compiler are supplied, one for single sided disks and one for double sided disks or hard disks. I think that's a little confusing, but the document contains explicit instructions, so it is not a problem.
All this software is delivered on four disks. The installation procedure for single sided disks involves breaking out the files onto six disks for general use. This turns out to be very complicated, and took me about 90 minutes. The instructions were actually wrong on this point, because I needed seven disks. The main problem is that a given working disk may require files from more than one of the distribution disks, but the document does not describe which distribution disks are needed to construct each working disk. I found this very irritating, and I suggested to RR a way to automate the process. Granted, only experienced programmers are likely to use this system, but I think they will appreciate a quick and clear installation.
The product appears to be stable. Don't forget that this is a subset of Ada, so be careful if you are considering the language to meet a government requirement. Some of the more difficult Ada concepts are not implemented. For a complete review of Janus, see the January issue of Creative Computing.
I got an interesting call about the C compilers mentioned in November. Lattice called me to explain why their executable file was so large. They pointed me to the specification of C in the Kernighan and Ritchie book which says that uninitialized static and external arrays are guaranteed to be zero. Lattice thus builds the large array of the Sieve program as part of the object file and sets each entry to zero.
I wondered whether C86 from Computer Innovations was deficient in this regard, since the files were half the size of the Lattice files. George Eberhardt told me that his arrays are also guaranteed to be zero, but that the initialization takes place at execution time. This leads to a smaller file to keep on disk and a smaller file to load--important considerations on small floppy disks. I prefer the C86 approach. I just wish George would finish the code generator and optimizer; he will readily admit that his current code generation model leaves something to be desired.
I continue to be interested in C compiler technology, and I'll report on new compilers as I have the opportunity to test them. When I have five or six, I'll compare them all head-to-head. My interest stems from the fact that a very strong de facto standard exists for C, to the extent that programs written in the language are very portable. In addition, the language can be used in such a way that code generation is very good to excellent; the nature of C makes it ideal for systems programming.
Portability has been widely touted as a strength of Pascal, but my professional experience belies this. Every manufacturer's version of Pascal has a set of extensions designed to complement their machine and to implement separate compilation. This latter issue is important: the original definition of Pascal did not include a way to have more than a single source module (this was on purpose, by the way) and no generally accepted standard has emerged. The closest thing to a standard is the UCSD p-system, now marketed by SoftTech Microsystems. News and Micro Reviews
What's a "micro" review, you say? Well, it's too small to be one of my famous "mini" reviews, that's all.
Here's an item that really should be in my "My Face Is Red" department, but I checked my notes and I reported accurately. A letter from Wang corrected my October pricing of two Wang products for the Professional Computer. I said that the 5Mb hard disk drive was $2000 and that MultiPlan was $500. These prices were given to me by a Wang representative in their booth at NCC. The correct prices are $3500 (what a disappointment!) and $300, Respectively.
Anchor Pad international has announced the availability of their security product for the IBM PC. The device secures the PC to a surface to prevent theft. The manufacturer claims that a system so protected must be virtually destroyed before it can be removed from the restraint and then, of course, it loses its value to the thief. The three-tiered system shown in Photo 1 costs approximately $445 including installation. I had a look at this equipment at Comdex, and it is rugged.
There are several new programs from M.A.P. Systems, distributed by Indigo Data Systems, Inc. and available in Computerlands. One, Print-It, I have used, and I think it is the best screen dump program available. If you think back to the December column in which I reviewed a number of games, you will recall that sample pictures were included for most. These images were obtained from this screen dump program. What I like best is that it prints the entire character set from the Monochrome Display as well as graphics images from the Color/Graphics Adapter. The program becomes a permanent part of PC DOS and is invoked by pressing Shift PrtSc. Retail price is $44.95.
Two other M.A.P. System products are Spool-It, a printer spooler program at $44.95, and Color-It, at $49.95. The former product allows a section of memory to be set aside as a buffer for print requests. When you direct output to the printer, it is written to this buffer and the computer is quickly freed for the next task while the spooler prints from the buffer. Color-It is a screen print program for the IDS 80 or 132 Prism printer that allows color images to be printed. I've seen some sample printouts, and they look great. The program will also support the IDS 460/560 with the bit graphics option for black and white dumps.
Laboratory Microsystems, Inc. has announced some new products for the PC. The PC/Forth Debugger allows tracing and single-stepping of Forth programs, along with a dynamic display of the parameter and return stacks and the trace audit. Ten breakpoints are supported. PC/GEN is a utility program for the creation of new character fonts for the video display. The Color/Graphics Adapter is required. Finally, PC/Forth + is an upward compatible version of PC/Forth that removes the 64K address space restriction and allows the entire available address space of the 8088 to be used for dictionary space. No prices were available, and the products were to have been available by last November.
IBM announced some new products in October. Two payroll products were announced, one from Peachtree ($595) and one from BPI Systems ($425). The Peachtree Payroll system can post to the IBM Personal Computer Peachtree General Ledger. The BPI Payroll can post to the BPI General Accounting system and to another newly announced product, the BPI Job Cost ($550).
Also from IBM is a new game, Adventure in Serenia ($35) by On-Line Systems, Inc. In this adventure, the user has to save a captured princess who has been kidnapped by an evil wizard.
From Intelligent Statements comes Ken Uston's Profe$$ional Blackjack. This is the ultimate computerized blackjack game, and includes such amenities as the house rules for more than 70 major casinos and an extensive instruction manual which describes Mr. Uston's system. The program is designed to teach the user how to play winning blackjack; Mr. Uston made a fortune playing blackjack with his system.
Datamost has two games for the PC. The first is Space Strike, a Space Invaders clone which is pretty good. At the higher levels of play it is tough. The other is Pig Pen which I found somewhat boring. A Pac-Man variant, the object is to leave dots behind and avoid being slaughtered on the tusks of wild pigs. This game just can't compare with Snack Attack II.
I neglected to include the address for Emerging Technology with my November column. It is included this month. The company manufactures the Edix program editor and the Wordix text processor. I apologize for the omission.