Comparing revisions for page Unparsing and parsing in Haskell

Back to history list
  == Headline ==

Lecture [[Script:Unparsing and parsing in Haskell | Parsing and unparsing]] as part of [[Course:Lambdas in Koblenz]]

== Description ==

Various data structures, e.g., term- or tree-based representations, can be rendered as text by means of [[unparsing]]. (Unparsing is very similar to what's called [[pretty printing]].) The other way around, the structure underlying some text can be recovered by means of [[parsing]] so that the result can be processed as a tree or another data structure. In both cases, we assume some [[syntax]] for the underlying a textual representation. This syntax can be also be made explicit in the form of a [[grammar]]. We put suitable Haskell [[combinator library|combinator libraries]] to work for the implementation of [[unparser]]s and [[parser]]s.

== Concepts ==

* [[Unparsing]]
** [[Unparser]]
** [[Pretty printing]]
** [[Pretty printer]]
* [[Syntax]]
** [[Concrete syntax]]
** [[Abstract syntax]]
** [[Grammar]]
*** [[Context-free grammar]]
* [[Parsing]]
** [[Parsing problem]]
** [[Syntax tree]]
** [[Parse tree]]
** [[Acceptor]]
** [[Parser]]

== Technologies ==

* [[Combinator library|Combinator libraries]]
** [[Technology:HughesPJ]]
** [[Technology:Parsec]]

== Features ==

* [[Feature:Unparsing]]
* [[Feature:Parsing]]

== Contributions ==

* [[Contribution:hughesPJ]]
* [[Contribution:haskellAcceptor]]
* [[Contribution:haskellParsec]]

== Metadata ==

* [[memberOf::Course:Lambdas in Koblenz]]
* [[linksTo::https://userpages.uni-koblenz.de/~romes/archive/2022-07-10-frpendsOn::Scrip.ht:Functors_and_friendsml]]