In the field of computer science, a binary decision diagram (BDD) or branching program, like a negation normal form (NNF) or a propositional directed acyclic graph (PDAG), is a data structure that is used to represent a Boolean function. On a more abstract level, BDDs can be considered as a compressed representation of sets or relations.
Wikipedia Article: http://en.wikipedia.org/wiki/Binary_decision_diagram
Introduction to Binary Decision Diagrams, Henrik Reif Andersen [PDF]: http://www.cs.unb.ca/~gdueck/courses/cs4835/bdd97.pdf
Fun With Binary Decision Diagrams, Donald Knuth [Video]: http://myvideos.stanford.edu/player/slplayer.aspx?coll=ea60314a-53b3-4be2-8552-dcf190ca0c0b&co=18bcd3a8-965a-4a63-a516-a1ad74af1119&o=true