BeFunge – ezoteryczny język programowania opracowany w 1993 roku przez Chrisa Pressey’a.

Programy w nim, w odróżnieniu od większości języków programowania, są zorganizowane w dwuwymiarowej tablicy. Instrukcje „strzałkowe” (< > ^ v) powodują przeniesienia sterowania, a pętle są tworzone poprzez zorganizowanie sterowania „w kółko”. Każda instrukcja w BeFunge jest oznaczana pojedynczym znakiem.

W języku BeFunge program wykonuje się czytając instrukcje, poruszając się po dwuwymiarowym obszarze. Zatem „licznik programu” składa się z dwóch liczb, oznaczających współrzędne na tablicy programu. Natomiast do przenoszenia i przechowywania wszelkich danych służy stos (obsługiwany zresztą na podobnych zasadach co w językach Forth i False).

W 1998 Chris rozszerzył język, dodają nowe funkcje. Dlatego pierwotna wersja nazywana jest często BeFunge-93.

Kompilatory BeFunge Autorem BeFunge jest Chris Pressey, który stworzył ten język w 1993, w zamierzeniu jako język o niezwykle trudnym do napisania kompilatorze.