google-research/dex-lang Research language for array processing in the Haskell/ML family


Dex (named for “index”) is a research language for array processing in the
Haskell/ML family. The goal of the project is to explore:

  • Type systems for array programming
  • Mathematical program transformations like differentiation and integration
  • User-directed compilation to parallel hardware
  • Interactive and incremental numerical programming and visualization

To learn more, check out our
workshop paper
or these example programs:

Please note that Dex is an experimental research project at an early stage of
development. We welcome contributions. There’s plenty of work to do!


  • Install stack
  • Install LLVM 7, e.g. apt-get install llvm-7-dev


  • Build Dex: make (on non-Linux run make all-non-linux)
  • Run tests: make tests
  • Set up alias (e.g. in .bashrc) alias dex="stack exec dex --"


  • Traditional REPL: dex repl
  • Execute script: dex script example/tutorial.dx
  • Notebook interface: dex web example/tutorial.dx



This is an early-stage research project, not an official Google product.