Der rekursive Abstieg ist eine Methode, die im Compilerbau angewendet wird. Ein Compiler, der diese Technik benützt, gehört zu den schnellsten Compilern überhaupt. Die Voraussetzung für den rekursiven Abstieg im Compilerbau ist, daß es sich bei der Grammatik der Programmiersprache um eine LL1-Sprache handelt. Werden neue Sprachen entwickelt, so ist es kein Problem eine LL1-Sprache zu erstellen. Viele ältere Programmiersprachen sind jedoch keine LL1-Sprachen (z.B. 'C') und daher nicht für diesen Algorthmus geeignet.

Als Beispiel für den rekursiven Abstieg ist hier eine kleine Grammatik angeschrieben und der dazugehörende Teil des rekursiven Abstiegs.

Vereinfachte Grammatik für arithmetischer Ausdrücke:

S = E ";".
E = T {"+" T}.
T = P {"*" P}.
P = ident | number.

Der dazugehörige Syntaxanalysator mit rekursivem Abstieg (in Pascal)

Procedure S ();
begin
    success := true;
    { Nächstes Symbol lesen }
    NewSymbol(symbol, value);
    { Überprüfen ob es sich um einen Ausdruck handelt,
      wenn nicht sofort zurückkehren }
    E;
    if not success then
        return;
    { Handelt es sich bei dem Symbol um einen ";" }
    if symbol <> semicolon then
        begin
        success := false;
        return;
        end;
    NewSymbol(symbol, value);
    { Handelt es sich bei dem Symbol um einen eof }
    if symbol <> eof_Symbol then
        begin
        success := false;
        return end;
        end;
end; { S }