Hacker News new | ask | show | jobs
by wickedchicken 5019 days ago
Mildly unrelated, but I wanted to point out the awesomeness of the K-map[1] for handling simple minimization problems like these.

Unfortunately, once your dimensions get large it becomes difficult for humans to visualize the optimizations, which is where Espresso[2][3] comes in handy.

[1] http://en.wikipedia.org/wiki/Karnaugh_map

[2] http://embedded.eecs.berkeley.edu/pubs/downloads/espresso/in...

[3] ftp://ftp.cs.man.ac.uk/pub/amulet/balsa/other-software/espresso-ab-1.0.tar.gz

2 comments

Ooh, espresso. There was also a tool called eqntott for converting boolean logic expressions in a human-readable form into the truth tables that Espresso takes as input. The source code was written in an archaic dialect of C, but here's a resurrected version that should compile on modern compilers:

http://code.google.com/p/eqntott/

I haven't touched this code since 2008, so beware of grues, but I remember it being a really slick system for minimizing boolean logic when you combine eqntott with espresso. Just the thing for an electrical engineering student who's sick of doing K-maps, which described me nicely at the time.

"This program was originally written at Berkeley in the early 80s"

This phrase gives me the same feeling I'd get from finding an old Thomas Bangalter track or something.

Trivia - some core parts of espresso are/were part of specmarks, which are used to evaluate computer designs and implementations.
+1 to espresso. Too bad there aren't any "native" bindings in many languages, but in many cases piping it through stdin/stdout works well enough.