Functional Parser of Markdown Language Based on Monad Combining and Monoidal Source Stream Representation

Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 779)

Abstract

The main goal of this work is to develop flexible and expressive methods of parsers construction based on modern techniques of structuring of effectful computations. We compare two approaches to describing effectful computations: monad transformers and extensible effects in respect to construction of parser combinator libraries. We develop two parser combinator libraries: one based on monad transformers and another on top of extensible effects, and Markdown-to-HTML translator with Open image in new window blocks based on first library.

Keywords

Functional programming Parser combinators Computational effects 

References

  1. 1.
  2. 2.
  3. 3.
    Mathjax, js-library to render latex in web. https://www.mathjax.org/
  4. 4.
    Lukyanov, G.: Parsing with monad transformers, source code. https://github.com/geo2a/markdown-monparsing
  5. 5.
    Lukyanov, G.: Parsing with extensible effects, source code. https://github.com/geo2a/ext-effects-parsers
  6. 6.
    Pretnar, M., Bauer, A.: Programming with algebraic effects and handlers. arXiv:1203.1539 [cs.PL] (2012)
  7. 7.
    Blaevic, M.: Adding structure to monoids. In: Haskell Symposium 2013, Boston, MA, USA, 23–24 September 2013 (2013)Google Scholar
  8. 8.
    Hutton, G., Meijer, E.: Monadic parser combinators. NOTTCS-TR-96-4 (1996)Google Scholar
  9. 9.
    Swords, C., Kiselyov, O., Sabry, A.: Extensible effects: an alternative to monad transformers. In: Haskell Symposium 2013, Boston, MA, USA, 23–24 September 2013 (2013)Google Scholar
  10. 10.
    Jones, M., Liang, S., Hudak, P.: Monad transformers and modular interpreters. In: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, CA (1995)Google Scholar
  11. 11.
    Wadler, P.: How to replace failure by a list of successes a method for exception handling, backtracking, and pattern matching in lazy functional languages. In: Jouannaud, J.-P. (ed.) FPCA 1985. LNCS, vol. 201, pp. 113–128. Springer, Heidelberg (1985).  https://doi.org/10.1007/3-540-15975-4_33 CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2018

Authors and Affiliations

  1. 1.Southern Federal UniversityRostov-on-DonRussia

Personalised recommendations