DOT is a declarative language for describing graphs such as network diagrams, trees, or state machines. (DOT is a declarative language because we say what the graph connections are, not how to build the graph.) It’s a generically useful graphing tool, particularly if you have a program that needs to generate images. For example, ANTLR’s -atn option uses DOT to generate state machine visualizations.
To get a feel for the language, imagine that we want to visualize a call tree graph for a program with four functions. We could draw this by hand, or we could specify the relationships with DOT as follows (either by hand or automatically by building a language application that computed the relationships from a program source):