Rekursio

Säännöllisten kielten sulkeuma määrittelee jonkinlaisen rekursion:

a* = A->aA/e

-ei kovin ilmaisuvoimainen

Kontekstittomilla kieliopeilla voi kuvata paremmin rekursiota:

S->aSb/e

Voidaan toteuttaa aliohjelmalla S, joka kutsuu itseään:

-Jossain rekursion on päätyttävä!

procedure S(next);

begin

if (next=’a’) then

begin

next:=getnext;

S(next);

if (next<>’b’) then

Virhe;

next:=getnext;

end;


end;

Pääohjelmassa:

Next:=getnext;

S(next);