We introduce a new way of specifying graphs: through languages, i.e., sets of strings. The strings of a given (finite, prefix-free) language represent the vertices of the graph; whether or not there is an edge between the vertices represented by two strings is determined by the pair of symbols at the first position in these strings where they differ. With this new,``positional'' or lexicographic, method, classical and well-understood ways of specifying languages can now be used to specify graphs, in a compact way; thus, (small) finite automata can be used to specify (large) graphs. Since (prefix-free) languages can be viewed as trees, our method generalizes the hierarchical specification of particular types of graphs such as cographs and VSP graphs. Our main results demonstrate an intrinsic relationship between the fundamental operations of language concatenation and graph substitution. ]