Last Updated: March 23, 2017

Definition - What does Parser mean?

A parser is a compiler or interpreter component that breaks data into smaller elements for easy translation into another language. A parser takes input in the form of a sequence of tokens or program instructions and usually builds a data structure in the form of a parse tree or an abstract syntax tree.

Techopedia explains Parser

A parser is commonly used as a component of an interpreter or a compiler. The overall process of parsing involves three stages:

  1. Lexical Analysis: A lexical analyzer is used to produce tokens from a stream of input string characters, which are broken into small components to form meaningful expressions.
  2. Syntactic Analysis: Checks whether the generated tokens form a meaningful expression. This makes use of a context-free grammar that defines algorithmic procedures for components. These work to form an expression and define the particular order in which tokens must be placed.
  3. Semantic Parsing: The final parsing stage in which the meaning and implications of the validated expression are determined and necessary actions are taken.

A parser's main purpose is to determine if input data may be derived from the start symbol of the grammar. If yes, then in what ways can this input data be derived? This is achieved as follows:

  • Top-Down Parsing: Involves searching a parse tree to find the left most derivations of an input stream by using a top-down expansion. Examples include LL parsers and recursive-descent parsers.
  • Bottom-Up Parsing: Involves rewriting the input back to the start symbol. This type of parsing is also known as shift-reduce parsing. One example is a LR parser.

Parsers are widely used in the following technologies:

  • Java and other programming languages
  • HTML and XML
  • Interactive data language and object definition language
  • Database languages, such as SQL
  • Modeling languages, such as virtual reality modeling language
  • Scripting languages
  • Protocols, such as HTTP and Internet remote function calls
Share this: