View on GitHub

OCamlverse

Documenting everything about OCaml

Edit

Compilers, Typecheckers, and Parsers

Because OCaml is one of the best tools for creating compilers, typecheckers, etc, you’ll find a wide variety of projects made in OCaml.

Languages and Compilers:

  • Reason: Friendly syntax & toolchain for OCaml allowing both compilation to javascript and native executables.
  • Morbig: Parser for a POSIX-compliant shell.
  • cDuce: a modern XML-oriented functional language with innovative features.
  • Compcert C Compiler: C Compiler supporting most of the ISO C90 and C99 / ANSI C features.
  • Eff Programming Language: functional language with typed handlers for exceptions as well as other computational effects such as state or I/O.
  • Hack Programming Language
  • Haxe Programming Language
  • Mezzo Programming Language: a programming language in the ML tradition, which places strong emphasis on the control of aliasing and access to mutable memory.
  • OCaml-Java: OCaml to Java bytecode compiler.
  • Opa Programming Language
  • Rhine: A Lisp on LLVM written in OCaml.
  • tis-interpreter: An interpreter for finding subtle bugs in programs written in standard C
  • Slipshow: A text-based tool for making presentations with scrolling as an alternative to traditional slides.
  • Stan: A programming language for probablistic modeling, which is transpiled to C++ by an OCaml program.

Parsers and Lexers

  • Angstrom: Parser combinators targetted at fast protocols, built for speed and memory efficiency
  • Sedlex: a modern, encoding-agnostic (read: Unicode-supporting) lexer generator.
  • Menhir: An LR(1) parser generator for OCaml.
  • Nice Parser: Remove boilerplate from OCaml parser generators using Menhir and Sedlex.
  • ocamllex/ocamlyacc: lex and yacc C-based implementation for OCaml. Were the go-to solution for many years.
  • Opal: Self-contained monadic parser combinators for OCaml.
  • Obelisk: produce readable LaTeX, HTML, or plain-text EBNF-style documentation for your grammar.

Type Checkers

  • Flow: A typechecker for Javascript written by Facebook.
  • Pyre: A typechecker for Python written by Facebook.

Systems

  • mpst: Multiparty Session Types. A communication library guaranteeing important properties.

Miscellaneous

  • pp-loc: PPX processor that generates nice error messages, just like the OCaml compiler.

Articles: