Skip to content

Research language for array processing in the Haskell/ML family

License

Notifications You must be signed in to change notification settings

cybernetics/dex-lang

 
 

Dex Test status

Dex (named for "index") is a research language for typed, functional array processing. 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. Contributions welcome!

Setup

  • Install stack
  • Install LLVM 9, e.g. apt-get install llvm-9-dev on Ubuntu/Debian. For macOS, there's some guidance here.

Building

  • Build Dex: make
  • Run tests: make tests
  • Set up a dex alias (e.g. in .bashrc) alias dex="stack exec dex --"

Running

  • Traditional REPL: dex repl
  • Execute script: dex script examples/pi.dx
  • Live-updated notebook display dex web examples/pi.dx (html) or dex watch examples/pi.dx (terminal).

License

BSD-3

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

About

Research language for array processing in the Haskell/ML family

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Haskell 90.7%
  • Python 5.8%
  • C 0.9%
  • Makefile 0.8%
  • JavaScript 0.5%
  • TeX 0.4%
  • Other 0.9%