• Vstup: G = (N, T, P, S); First(X) & Empty(X) pro
  každé X Î N È T; x = X1X2…Xn, kde x Î (N È T)+
• Výstup: First(X1X2…Xn)
• Metoda:
• First(X1X2…Xn) := First(X1)
• Používej následující pravidlo, dokud bude možné měnit množinu First(X1X2 … Xk-1 Xk …Xn):
• if Empty(Xi) = {e} pro i = 1,…,k-1, kde k £ n
  then přidej všechny symboly z First(Xk) do First(X1X2…Xn)
Algoritmus: First(X1X2…Xn)
Ilustrace:
X1
X2
Xk-1
…
Xn
Xk
…
 e
a Î First(Xk)
e
e
e
…
… 
a
a Î First(X1X2…Xn)
24/57
! Pozn.: First(e) = Æ