Partager via


Boolean KMAP reduction code released after 23 years!

Yes, I know its been a while since I have posted anything and way past due to post my update on my fusion-io card testing (I now have 6 memory devices in my R710 - 2 cards are duo). I will hopefully get to that in the next couple of weeks as I am using all my spare time to try to finish my dissertation that has been in the work for a few years now, in fact the dissertation is focused on a problem I first became enamored with solving over 25 years ago.

My community involvement metric needs to improve, so am posting some code from the archives...The code is slightly out of date, completed in December, 1988. I was going to wait until the 25th anniversary of the program, but just could not resist.

The attached listing is how we used to code in the prehistoric era before cell phones when PCs were limited to 640K of RAM. The days before indoor plumbing and paved roads when most humans still lived in caves and dinosaurs roamed the earth…

The .txt file attachd contains the compiler listing of a COBOL program I wrote for a school project that could find the optimal expression for up to 1024 Karnaugh expressions with up to 10 min-terms including “don’t cares” in a couple minutes. That was on a DEC VAX “mini-computer” about the size of a refrigerator with as I recall about 3MB of RAM and processed at 1 MIPs, or about 40 times slower than the average cell phone. Fortunately, VAX/VMS included virtual memory management - the size of the compiled image was probably close to the size of total memory on the machine. Here's an article that explains Karnaugh expressions:

Here’s a picture of what it looked like: https://hampage.hu/vax/kepek/sokvax.jpg

The instructor did not appreciate this project and gave me a “C”. He did not believe it could work and had argued with me that computers could not perform logic, they could only do calculations, therefore no software program could perform a Karnaugh map reduction. I think the fact that I chose to do this in COBOL didn’t help either, since as many other academians he expressed disdain for the language.

And yes, the code actually worked. You can read about Karnaugh maps at wikipedia - https://en.wikipedia.org/wiki/Karnaugh_map. The code utilizes aspects from Quine McCluskey method.

 Bob

bool.lis.txt