ZX Spectrum+       V druhé polovině osmdesátých let jsem, stejně jako mnoho jiných studentů, měl počítač ZX Spectrum. A protože jsem zápasil s matematikou (jako většina ostatních), ocenil jsem jeho jednoduché grafické možnosti zobrazení grafů funkcí.

      Tato úloha mi připadala podstatná, protože funkce a proměnné jsou v matematice velmi důležité. Vlastně celý vesmír může být popsán (s určitou nepřesností) s použitím rovnic. A rovnice to je v podstatě jen tvrzení, že se nějaká funkce rovná nule.

      S použitím Spectra jsem vytvořil program pro tvorbu grafů funkcí snadno. Stačilo zapsat funkci jako textový řetězec a zabudovaný interpret Basicu vypočítal všechny hodnoty. Bylo to jednoduché: interpret analyzoval každou řádku znovu a znovu a okamžitě vykonával jednotlivé příkazy. Jednoduchost však byla vykoupena příslušně dlouhou dobou výpočtu.
      Jednoho dne se však objevily počítače PC a také Turbo Pascal. Všechno se rázem zdokonalilo – výkon, grafika i programování... ale vyvstal neočekávaný problém.
      Pascal, jako kompilovaný jazyk, nebyl sám o sobě schopen vypočítat hodnotu funkce, zadané jako textový řetězec.
      Proč? Protože kompilátor přeloží předem celý program do strojového kódu a pouze tento přeložený strojový kód je tím, co uživatel spouští. Takže během výpočtu se již nic neanalyzuje a daný řetězec je jen a jen řetězec. Když jsem si tedy chtěl zobrazit funkci, musel jsem spustit kompilátor Pascalu, zapsat funkci do zdrojového kódu a nakonec přeložit a spustit program. Funkce pak byla okamžitě zobrazena, protože byla analyzována předem, během překladu programu. To ale nebylo zrovna moc praktické. Potřeboval jsem napsat vlastní parser, schopný analyzovat matematické funkce za běhu programu. Potřeboval jsem vytvořit syntaktický analyzátor matematických výrazů. Syntan.