ctags (from Darren Hiebert) generates tag files from source code in C, C++, Eiffel, Fortran and Java to be used with vi, its derivatives, emacs and several other editors.
etags (from Emacs sources) generates tag files from source code in Pascal, Cobol, Ada, Perl, LaTeX, Scheme, Emacs Lisp/Common Lisp, Postscript, Erlang, Python, Prolog and most assembler-like syntaxes.