Obliczanie dla k =1 First Zbiór First możemy określić dla symbolu terminalnego, symbolu nieterminalnego oraz ciągu symboli. Jeśli x jest symbolem terminalnym wtedy First(x) = {x}. Dla symbolu nieterminalnego X używamy następującego algorytmu: definiujemy funkcję add_rule_first która dodaje do zbioru podanego jako parametr początkowe symbole możliwych wyprowadzeń z produkcji. Jako parametr może mieć indeks od którego symbolu produkcji zaczynamy – do obliczania First jest zawsze równy zero a większy od zera dla Follow. jeśli produkcja jest postaci → ε wtedy dodajemy ε do zbioru wynikowego jeśli jest produkcja postaci → aα wtedy dodajemy a do zbioru wynikowego jeśli jest produkcja zaczynająca się z symboli nieterminalnych i nieterminalnych, dodajemy do zbioru wynikowego symbole z tego zbioru nieterminalnego bez ε, jeśli nie zawiera ε przerywamy pętlę, gdy zawiera, idziemy do następnego symbolu produkcji. gdy wszystkie symbole zawierają ε, wtedy dodajemy ε do zbioru wynikowego. funkcja zwraca false/true w zależności czy zbiór wynikowy został zmodyfikowany