En parser er et dataprogram (eller komponent), som analyserer en datastrøm, for at få frem en tolkning af denne i et vist formelt sprog. Processen kaldes syntaksanalyse, syntaktisk analyse eller parsning. En mulig metasyntaks der kan beskrive et formelt sprog syntaks er Backus-Naur form eller Udvidet Backus-Naur form.
Syntaktisk analyse er den proces, der skaber en syntaktisk struktur – et parsetræ – af en følge af symboler. Syntaksanalysen bygger på information som genereres af en leksikalisering.
Parseren anvendes indenfor mange dataprogrammer hvor noget input behøver tolkning, eksempelvis til kommandoindtastning eller indlæsning af datafiler. Parsere anvendes også indenfor sprogteknologi til at tolke den grammatiske struktur hos naturlige sprog.
Kontekstfri grammatik er den dominerende formalisme for grammatiker til både naturlige sprog og anden data, eftersom denne formalisme tillader konstruktion af effektive parsere. Kontekstfrie grammatiker beskrives ofte på Backus-Naur-form eller Udvidet Backus-Naur form.
Indenfor sprogteknologi anvendes almindeligvis kontekstfrie grammatiker (også kaldet frasestrukturgrammatiker) eller dependensgrammatiker.[1]
To eksempler på dataprogrammer, der genererer programkode til en parser er yacc og GNU bison.