Interpreter – czynnościowy wzorzec projektowy, którego celem jest zdefiniowanie opisu gramatyki pewnego języka interpretowalnego, a także stworzenie dla niej interpretera, dzięki któremu będzie możliwe rozwiązanie opisanego problemu.
Diagram UML Plik:Diagram UML klasy Interpreter.svg
AbstractExpression (wyrażenie abstrakcyjne) – deklaruje abstrakcyjną operację interpretera TerminalExpression (wyrażenie terminalne) – interpretuje wyrażenie zawierające jakiś symbol terminalny gramatyki NonterminalExpression (wyrażenie nieterminalne) – interpretuje wszystkie nieterminalne symbole gramatyki Context (kontekst) – zawiera globalną informację należącą do parsera, np. stos symboli Client (klient) – buduje drzewo składni z poprzednich typów wyrażeń i rozpoczyna operację interpretowania
Zastosowanie Omawiany wzorzec projektowy można wykorzystać w sytuacjach, gdy zdania, zapisane w pewnym interpretowalnym języku, mogą być reprezentowane jako drzewa składniowe oraz istnieje prosta gramatyka opisująca ten język. Jednakże brak doświadczenia programisty może utrudniać rozpoznanie, czy dany przypadek wymaga zastosowania tego wzorca.