I was a long-time member of ACM's AdaTEC and then SIGAda, but I have yet to work on an Ada project. The only access I've had to an Ada compiler (aside from a one-week course I took in 1987) was an early Meridian compiler - running under MS-DOS on an XT clone! The compiler was surprisingly quick and it came with a good library. I wrote several simple utility programs, nothing fancy, from which the samples below are drawn.
- A package of miscellaneous utility functions.
- A command line option processing package.
- A more(1) program in Ada.
Thanks to a book by Daniel McCracken, ALGOL was actually one of the first languages of which I had a reading knowledge. I later used it in the file structures course and the assembly language course at the University of Maryland; everyone else used FORTRAN. Norwegian University ALGOL (NU-ALGOL) was the compiler. The manual had a list of compile-time error codes and descriptions, including the following:
ERROR NUMBER MESSAGE POSSIBLE PROBLEM 22 Too many errors - compilation suppressed Have you read the programmer's guide? 27 Internal error The user has totally confused the compiler. Correct all other errors and try again. 40 *Warning* Do you want to compare constants? Possible punching error.
(Written in 1995, although some of the complaints are still valid.) I'm disillusioned with C++. In spring of 1995, a small team was formed to develop a telemetry data generator in C++. With great fervor, I jumped into developing C++ versions of various packages in my C General Purpose Library. Some of the insights I had while working on the C++ library I decided to retrofit in the C library; the networking packages, in particular, were redone. During the summer, all but one of us on the team were pulled off to work on other tasks.
Why was I disillusioned?
- A C++ implementation of multi-precision longwords.
In the database course at the Univerity of Maryland, we wrote COBOL programs to access the Univac DMS 1100 CODASYL database. It was a great course (taught by Dr. Michael Brodie) and COBOL wasn't bad. Alas, I have no samples of my work - it was a long time ago!
- Not my latest and greatest FORTRAN code, but this function made it easy to write full-screen, VT100 "GUI"s for a number of applications I wrote.
Pascal? I could take it or leave it. Most of my upper-level computer science courses used Pascal; e.g., the data structures course, the compiler course, etc. I remember from the compiler course that string handling was a chore. The operating systems course used PDP-11 assembly language, but I would first write the programs in a Pascal-like PDL and then translate them to assembly language.
A readable C!
- A central task that handled I/O from multiple sources.
- Commands that the TIRJOB task understood.
- Memory diagnostics code.
- Power-up/Reset firmware.