Een parser (van het Engelse to parse, ontleden, en het Latijnse pars, deel) is een computerprogramma, of component van een programma, dat de grammaticale structuur van een invoer volgens een vastgelegde grammatica ontleedt (parset). Een parser converteert de ingevoerde tekst in een datastructuur. Vergelijk het met het invullen van een formulier met gegevens op de voorgegeven plaats in een voorgegeven tekstformaat, zoals bloktekst.
Het resultaat van een bewerking met een parser wordt meestal een boomstructuur: de syntaxisboom genoemd.
Een parser heeft twee taken wat betreft zijn invoer:
- Het controleren of de gegeven invoer de correcte structuur heeft, en
- het omzetten van de tekst in een gestructureerde representatie die voor de computer begrijpelijk is.
De gestructureerde representatie van een tekst die de parser oplevert wordt een concrete syntaxisboom genoemd (of: CST, van concrete syntaxtree). Deze dient vervolgens als invoer voor een ander computerprogramma (of een andere module van hetzelfde programma) voor verdere analyse en verwerking, zoals semantische analyse, of het genereren van code door een compiler.
Een parser kan ook gebruikt worden om natuurlijke talen te analyseren. Over het algemeen is dit veel moeilijker dan het analyseren van een computerbestand, omdat er behoorlijk wat inconsequentie kan zitten in natuurlijke talen.
Een voorbeeld van het parsen van een expressie:
(a + b) × 1
kan omgezet worden in de volgende boomstructuur:
Zie ook
Externe links
- (en) Demonstration of Parsing Algorithms Drie Java-applets die recursive-descent, LL(1) en shift-reduce-parsing demonstreren