The front-ends are where the source language is parsed up until GENERIC trees are handed down to the MiddleEnd. GCC has front ends for the following languages:
Other front-ends are available outside of gcc's SVN repository:
cil1 Lego.NET for Microsoft .NET (indirectly supporting C#, J#, VB.NET, etc)
Old front-ends which were removed for one reason or another:
Chill (no-one interested to integrate it in gcc3)
G77, the old Fortran 77 front end (unmaintainable, replaced by GNU Fortran)
There's also a mythical creature, a PL8 front-end developed by IBM to design the zSeries (s390) processors. PL8 is the language used for the firmware in the zSeries processor; and because the microcoded instructions in the newest zSeries actually execute non-microcoded instructions from the very same processor, IBM compiled these microcoded instructions using a PL8 front-end together with the existing s390 backend.
Information about writing new front-ends can be found on WritingANewFrontEnd.