In de
informatica en
theoretische taalkunde is een
formele grammatica een beschrijving van een
formele taal, een verzameling
strings (in deze context ook
zinnen genoemd) in een bepaald
alfabet. Er zijn twee categorieën te onderscheiden: de
generatieve grammatica's die beschrijven hoe een string uit de taal
gegenereerd kan worden, en de analytische grammatica's die beschrijven hoe men een string uit een taal kan
herkennen (analyseren).