digraph shells { size="7,8"; node [fontsize=24, shape = plaintext]; 1972 -> 1976; 1976 -> 1978; 1978 -> 1980; 1980 -> 1982; 1982 -> 1984; 1984 -> 1986; 1986 -> 1988; 1988 -> 1990; 1990 -> future; node [fontsize=20, shape = box]; { rank=same; 1976 Mashey Bourne; } { rank=same; 1978 Formshell csh; } { rank=same; 1980 esh vsh; } { rank=same; 1982 ksh "System-V"; } { rank=same; 1984 v9sh tcsh; } { rank=same; 1986 "ksh-i"; } { rank=same; 1988 KornShell Perl rc; } { rank=same; 1990 tcl Bash; } { rank=same; "future" POSIX "ksh-POSIX"; } Thompson -> Mashey; Thompson -> Bourne; Thompson -> csh; csh -> tcsh; Bourne -> ksh; Bourne -> esh; Bourne -> vsh; Bourne -> "System-V"; Bourne -> v9sh; v9sh -> rc; Bourne -> Bash; "ksh-i" -> Bash; KornShell -> Bash; esh -> ksh; vsh -> ksh; Formshell -> ksh; csh -> ksh; KornShell -> POSIX; "System-V" -> POSIX; ksh -> "ksh-i"; "ksh-i" -> KornShell; KornShell -> "ksh-POSIX"; Bourne -> Formshell; edge [style=invis]; 1984 -> v9sh -> tcsh ; 1988 -> rc -> KornShell; Formshell -> csh; KornShell -> Perl; }