Skip to content
An encoding of Ordered Linear Types in OCaml
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
README.md
clean.sh
example.ml
make.sh
oLT.mli
olt_stream.ml
olt_stream.mli
olt_tree.ml
olt_tree.mli
tree.ml
tree.mli

README.md

An encoding of Ordered Linear Types in OCaml

A proof-of-concept implementation of Ordered Linear Types in OCaml, for tree-processing programming [1]. For much more serious implementation, see [2] which translates OLT-typed OCaml code into plain OCaml one.

[1] Koichi Kodama, Kohei Suenaga, and Naoki Kobayashi, "Translation of Tree-processing Programs into Stream-processing Programs based on Ordered Linear Type," Journal of Functional Programming, 18(3), pp.331-371, 2008. A copy is available at http://www-kb.is.s.u-tokyo.ac.jp/~koba/publications.html

[2] X-P. X-P is a translator of tree-processing-style XML processing programs into stream-processing programs. http://www.fos.kuis.kyoto-u.ac.jp/~ksuenaga/x-p/

Build

./make.sh

Files

  • tree.ml[i]: Definition of trees
  • oLT.mli: The signature shared by multiple OLT implementations.
  • olt_stream.ml[i]: An OLT implementaton which takes a stream of tree nodes as input, and a tree as output.
  • example.ml: Examples

In addition to that, olt_tree.ml[i] provides alternative implementation that does not use streams.

You can’t perform that action at this time.