Archive for October, 2026

Programmer PROLOG a I’m

October 25, 2026

One of the most obscure things I’ve done: for a few months I was a PROLOG programmer. PROLOG is a programming language which basically does things backward. More about that later.

In 1986 I was looking for a summer job while home from college. Without any leads, I resorted to the newspaper classified ads, and answered an ad for people to conduct telephone surveys.

The job consisted of sitting in a room with a dozen or two other people, each with a phone and a PC running MS-DOS, and calling through a list of phone numbers. For some surveys, the phone numbers were randomly generated lists, and most of them weren’t valid residential numbers. For other surveys, the numbers were for existing customers of the client. When we got someone who agreed to take the survey, a GWBASIC program on our PC displayed a multi-screen form with the questions we’d read to them and fields to enter their answers.

After a couple of weeks on the phones, the company found out that I was a computer programmer. Their senior analyst had written the survey software and some other programs that analyzed the results, but they needed some improvements. One of the needs was for a more maintainable front end, which a couple of high school girls and I rewrote in True BASIC to replace the spaghetti code and two-letter variable names with something structured and documented.

The other need was for better data analysis tools. The senior analyst became intrigued by the idea of writing a new analysis program in Borland’s Turbo PROLOG (running on MS-DOS). He didn’t have time to pursue it, so he delegated the project to me.

I had read about PROLOG, but now I had to learn it. Turbo PROLOG came with a rather large sample application, a geography database. I studied it for awhile and read the manual.

PROLOG is an automated solution finding engine. You define some transformation rules to use and a terminating condition. Then you give it some starting data, and the PROLOG engine decides which rules to apply successively to build up a solution that ends up at the terminating condition.

I think I got a prototype working, but it hurt my brain not knowing what the program was going to do and having to work backward from the desired result instead of forward. Exception handling and correctness checking ended up being intractable problems. We stuck with BASIC.

The photo below is of an MS-DOS PC which that employer lent me to continue working part-time while I was at college, because I didn’t take any photos in their office.



Create your own website, free on WordPress.com.Create your own website.
Start free