DOT Language
digraph finite_state_machine { rankdir = LR; node [shape = circle]; 0; node [shape = doublecircle]; 2; node [shape = plaintext]; "" -> 0 [label = "start"]; node [shape = circle]; 0->1 [label="a"]; 1->2 [label="b"]; }